Как начинается распространение вируса
Работа вируса в зараженной программе
Получив управление при старте зараженной программы, вирус выполняет следующие действия:
- Восстанавливает в памяти компьютера исходные три байтa этой программы.
- Ищет на диске подходящий COM - файл.
- Записывает свое тело в конец этого файла.
- Заменяет первые три байта заражаемой программы командой перехода на свой код, сохранив предварительно исходные три байта в своей области данных.
- Выполняет вредные действия, предусмотренные автором.
- Передает управление зараженной программе. Поскольку в COM - файле точка входа всегда равна CS:100h, можно не выполнять сложных расчетов, а просто выполнить переход на этот адрес.
Если же подходящих для заражения COM - файлов найдено не было, то вирус просто осуществляет переход на начало зараженной программы, из которой он и стартовал.
После этого зараженная программа выполняется, как обычно.
Сам вирусный код выполняется очень быстро и для пользователя ЭВМ этот процесс остается незаметным. Стоит заметить, что п.5 может вообще не выполняться. Существуют вирусы, которые никак не проявляют себя, кроме размножения (например, VIENNA 534). Вместе с тем есть и такие, которые способны нанести определенный вред файлам или диску. Например, вирус ANTI_EXE мешает нормально работать с EXE - файлами, DARK AVENGER записывает бессмысленную информацию в случайные сектора диска, а ONEHALF шифрует сектора на винчестере один за другим. Все зависит от изобретательности автора.
Очевидно, чтобы вирус распространился, его нужно внедрить в вычислительную систему. Делается это так:
- Автор разрабатывает вирусную программу. Обычно для этой цели используется язык ассемблера, так как программы, написанные на нем,выполняются очень быстро и имеют малый размер. Хотя есть вирусы, написанные на языке TURBO C и даже на TURBO PASCAL.
- Исходный текст программы компилируется, и из него создается исполняемый файл (обычно типа COM). Этот файл предназначен для того, чтобы " выпустить вирус на свободу". Назовем программу, записанную в этом файле, запускающей.
- Запускающая программа выполняется на машине, которую необходимо заразить.
- Выпущенный на свободу вирус выполняет действия, описанные в 1.3. Различие заключается только в выполнении п.1. А именно - при восстановлении в памяти исходных трех байтов программы на их место записывается команда перехода, передающая управление коду завершения запускающей программы. Таким образом, при выполнении п.6 управление будет отдано операционной системе, а на диске образуется зараженный файл. При копировании этого файла на другие компьютеры и их запуске вирус начнет распространяться.
Итак, займемся изготовлением COM - вируса...