Как написать вирус

Сегодня, внезапно (!), нам предстоит серьезный разговор. А то кто-то мог подумать, что у меня тут все хихи да хаха, а вот хер.

Сегодня мы будем выяснять, как же надо писать вирус PE-файлов, само собой для Windows (а стало быть и Vista). Почему про вирус, почему здесь, и почему я?

А все потому, что я сам его недавно написал, само собой в учебных целях. И при написании самого простого вируса, я столкнулся с такой проблемой — хрен знает как это сделать! Все статьи датированны старыми годами, теми в которых я еще играл в StarCraft, Fallout, GTA 2 и бед не знал.
Кстати, сейчас я тоже в это все играю время от времени и не знаю бед, но статья не о том.

Так вот, не знал я совершенно с чего начать написание вируса. Само собой язык для написания — ассемблер. А дальше что?
Дабы помочь кому-то на этом нелегком пути написания учебного, совершенно безвредного вируса, я и создал этот пост. Тут я по шагам распишу, что лично я делал, чтобы все получилось. Пока не забыл.

0. Этот пункт подразумевает, что вы не знаете ассемблера. Или знаете его из рук вон плохо — как я. Тогда, изучаем вот этот цикл статей, он небольшой, но очень познавательный, написано так, что и моя бабушка поймет — основы ассемблера и использования MASM. При этом открываем вот этот справочник в отдельную вкладку, и не закрываем неделю. Как только увидели непонятную команду в коде, в статье, приснилась во сне — тут же бегом туда смотреть.

Еще ньюанс — команды там все само собой верные, как и все остально. Но там описана работа в TASM‘е, нам же, как современным программистам (если кто вам сказал что ассемблер умер и никому не нужен — распечатайсте листинг бинарника вашего браузера на листках формата А4 и дайте этой пачкой ему по голове), нужен MASM. Очень часто, если не нашли смысл нужного непонятного слова в справочнике по ссылке выше, найти его можно тут — MSDN Search . Окошко для поиска — наверху, язык — английский.

1. Итак, движемся ближе к вирусам. Для начала неплохо будет освоить немого теории. При этом статьи брать желательно начиная с самых старых, чтобы не смотреть на исходники новых полиморфных вирусов, длиной в тысячи строк кода, как баран на новую залупу. Со времен Windows 98 в структуре PE файлов ничего сильно не поменялось, и начинать все укладывать в голову лучше с основ. Для этого вполне подойдет вот этот цикл статей опять же с отличного сайта WASM.RU. Тут есть вся информация, которая необходима для понимания механизмов работы инфекторов PE-файлов. Читаем.

2. В процессе чтения вы скорее всего начнете задумываться — а как же все это заставить работать на моем компьютере? Тварь я в конце концов дрожащая, или скомпилировать право имею?
Имеете. Для этого вам понадобится софт.

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

Затем нам нужен редактор, чтобы куда-то вводить код. Я пользовался вот этой средой RadAsm. Скачиваешь, устанавливаешь programming pack чтобы использовать MASM, а потом еще и language pack, если хочешь чтобы все было по-русски. Ну что, похоже на высокоуровневую среду, не првда ли? И список тебе функций, и много вкладок, и визуальные элементы всякие, и Build All.
Это все написано на ассемблере для тех кто пишет на ассемблере, и это приятно.

Среда RadAsm

Среда RadAsm

Следующее, что понадобится обязательно — дебаггер. Использовать будем OllyDbg. Кстати, весь софт, который я предлагаю в этой статье — совершенно бесплатный. Есть инструменты получше, но этого нам вполне хватит (а когда вы его впервые откроете, то поймете, что вам его хватит даже с верхом). Качать по ссылке выше, в установке ничего сложного.

Дебаггер OllyDbg

Дебаггер OllyDbg

И последнее, что необходимо — HEX-редактор, которым вам будет удобно смотреть исполняемые файлы, сравнивать их друг с другом, и быть может немного изменять. Их великое множество в сети, как платных, так и free. Выбор не принципиален, вот ссылка для скачивания.

3. Итак, на данном этапе у вас установлен весь необходимый софт и вы вовсю познаете статьи, которые я дал выше. Это и есть самый плодотворный этап, когда ваш ум впитывает максимальное количество знаний, узнает многое о структуре PE-файла, о разных дискрипторах и механизмах заражения. Что нам потребуется далее?

Далее нам потребуется поближе познакомится с «современными» наработками хорошего человека из этого цикла статей (общим числом три). Здесь читать все не обязательно, но только в том случае если вы четко понимаете, о чем идет речь. Если нет — читать и понимать обязательно. Тут более продвинутые техники, которые появились с тех пор, как вышел тот, основной цикл. Стало быть — читаем.

4. Если вы все еще не поняли на основе этих материалов, как написать вирус (я тоже не понял), то последнее что вам потребуется — вот этот сайт с огромной коллекцией исходников. Тут множество исходных кодов самых разных вирусов, некоторые из них неплохо закомментированы. Большинство из них у меня на Windows Vista не заработало, но тем не менее, изучение исходников — это как раз тот последний этап, который приводит к написанию своего вируса. Скачивайте, смотрите, пробуйте в дебаггере, изучайте как реализованы те или иные элементы — таким образом вы сможете написать вирус, который не только будет безвреден, его также не будет видеть антивирус, это несложно.
vxheaven

5. Вот пожалуй и все. В статье я описал, как писал вирус я, и что мне для этого потребовалось. Если что-то непонятно и нужно расписать дополнительно — оставляйте комментарии, я распишу.
Не вредите никому вашим кодом и творите уже наконец добро.

Как написать вирус: 20 комментариев

  1. Meshif

    спасибо. уже человек 200 прочитало эту запись, ты один оставил коментарий.
    а я ведь старался, писал. уважаю!!

  2. valer4ik

    присоединяюсь к Night_Dog — все очень содержательно и подробно — будем постигать.

  3. Meshif

    2алекс
    Если уж использовать комп, чтобы деньги зарабатывать, то не автоматическим спамом, криворукий мудак

    специально удалять не буду, по сотне таких комментов в день получаю

  4. Алексей

    Привет. Спасибо за старание. Я вот пытаюсь скачать чернобыль, очень нужно. Ты не подскажешь где есть???

  5. kirill

    Очень грамотно — поступательно и с сылочками. =)

    Кстати вопрос по ходу… я тут услышал где-то что… ммм… короче в html коде набор символов пишешь… и этот набор символов воспринимается виндой как команды. Где об этом можно почитать?

    Спасиб большое!

  6. Shaman

    Спасибо большое за такие подробности! Очень помог! Теперь можно и осваивать прочитанное. Однозначно 10баллов по 5-ти бальной

  7. vasya

    че за лажа?
    А сегодня, ребята, я расскажу вам как написать вирус. Вот статьи — читайте бля… Зашибись!
    Спасибо, но эти статьи мы нагуглить можем и сами, как и эту. Если уж нечего написать, так и нехера!

  8. Алекс

    Думаю автору не стоит обращать внимание на высказывание некоторых му…ов, на то они и МУ…КИ!!!!

  9. Антон

    Автору респект. Даже 5 лет спустя, статья актуальность не сколько не потеряла.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *