Для компиляции вирусного кода нам понадобится транслятор FASM, бесплатную Windows-версию которого можно найти на сайте http://flatassembler.net/. Остальные трансляторы (MASM, TASM) тут непригодны, поскольку используют совсем другой ассемблерный синтаксис.
ОК, скачиваем http://flatassembler.net/fasmw160.zip, распаковываем архив и набираем "fasm.exexcode.asm" в командной строке. Если все сделано правильно, на диске должен образоваться файл xcode.exe. Запустим его на выполнение с ключом "--*" за которым следует имя предполагаемой жертвы, например, notepad.exe ("xcode.exe --* notepad.exe"). Появление следующего диалогового окна свидетельствует об успешном внедрении. В противном случае, у нас ничего не получилось и первым делом необходимо убедиться в наличии прав доступа к файлу. Захватывать их самостоятельно наш вирус не собирается. Во всяком случае пока… Напомните мне, чтобы вернуться к этому вопросу в следующий раз.
Рисунок 2 файл успешно заражен
Запускаем зараженный notepad.exe на исполнение. В доказательство своего существования вирус тут же выбрасывает диалоговое окно, а после нажатия на "ОК" передает управление оригинальному коду программы.
Рисунок 3 реакция зараженного файла на выполнение
Чтобы не у пользователя не случился инфаркт, из финальной версии вируса это диалоговое окно лучше всего удалить, заменив его своей собственной "начинкой". Тут все зависит от наших намерений и фантазии. Можно перевернуть экран, похитить пароли или обложить пользователя трехэтажным матом, послав его на хрен.
Зараженный файл обладает всеми необходимыми репродуктивными способностями и может заражать другие исполняемые файлы. Взять хотя бы "Пасьянс" — "notepad.exe ??* sol.exe". Естественно, заражать файлы через командную строку ни один нормальный пользователь не будет и процедуру поиска очередной жертвы в вирусное тело мы должны добавить самостоятельно.