Как начинается распространение вируса

Работа вируса в зараженной программе

Получив управление при старте зараженной программы, вирус выполняет следующие действия:

  1. Восстанавливает в памяти компьютера исходные три байтa этой программы.
  2. Ищет на диске подходящий COM - файл.
  3. Записывает свое тело в конец этого файла.
  4. Заменяет первые три байта заражаемой программы командой перехода на свой код, сохранив предварительно исходные три байта в своей области данных.
  5. Выполняет вредные действия, предусмотренные автором.
  6. Передает управление зараженной программе. Поскольку в COM - файле точка входа всегда равна CS:100h, можно не выполнять сложных расчетов, а просто выполнить переход на этот адрес.

Если же подходящих для заражения COM - файлов найдено не было, то вирус просто осуществляет переход на начало зараженной программы, из которой он и стартовал.

После этого зараженная программа выполняется, как обычно.

Сам вирусный код выполняется очень быстро и для пользователя ЭВМ этот процесс остается незаметным. Стоит заметить, что п.5 может вообще не выполняться. Существуют вирусы, которые никак не проявляют себя, кроме размножения (например, VIENNA 534). Вместе с тем есть и такие, которые способны нанести определенный вред файлам или диску. Например, вирус ANTI_EXE мешает нормально работать с EXE - файлами, DARK AVENGER записывает бессмысленную информацию в случайные сектора диска, а ONEHALF шифрует сектора на винчестере один за другим. Все зависит от изобретательности автора.

Очевидно, чтобы вирус распространился, его нужно внедрить в вычислительную систему. Делается это так:

  1. Автор разрабатывает вирусную программу. Обычно для этой цели используется язык ассемблера, так как программы, написанные на нем,выполняются очень быстро и имеют малый размер. Хотя есть вирусы, написанные на языке TURBO C и даже на TURBO PASCAL.
  2. Исходный текст программы компилируется, и из него создается исполняемый файл (обычно типа COM). Этот файл предназначен для того, чтобы " выпустить вирус на свободу". Назовем программу, записанную в этом файле, запускающей.
  3. Запускающая программа выполняется на машине, которую необходимо заразить.
  4. Выпущенный на свободу вирус выполняет действия, описанные в 1.3. Различие заключается только в выполнении п.1. А именно - при восстановлении в памяти исходных трех байтов программы на их место записывается команда перехода, передающая управление коду завершения запускающей программы. Таким образом, при выполнении п.6 управление будет отдано операционной системе, а на диске образуется зараженный файл. При копировании этого файла на другие компьютеры и их запуске вирус начнет распространяться.

Итак, займемся изготовлением COM - вируса...