Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Как написать компьютерный ВИРУС.doc
Скачиваний:
4
Добавлен:
30.10.2018
Размер:
1.16 Mб
Скачать

2.3 Алгоритм работы резидентного

COM - вируса

Рассмотрим один из возможных алгоритмов работы ре-

зидентного COM - вируса .

По своей сути резидентный вирус отличается от обы-

чной резидентной программы только тем, что он раз-

множается сам по себе, независимо от желания поль-

зователя.Значит,построить его можно по той же схе-

ме, по которой пишутся обычные TSR - программы .Но

сначала выясним,что должны делать секция инициали-

зации вируса и его резидентная часть .

Итак :

Секция инициализации выполняет следующие действия:

1. Получает управление при запуске зараженной про-

граммы .

2. Проверяет, установлена ли в память резидентная

часть вируса .

3. Восстанавливает в памяти компьютера исходные

три байтa этой программы .

4. Если резидентная часть не установлена,выполняю-

тся следующие действия :

a.) Отыскивается свободный блок памяти достато-

чного для размещения вируса размера .

б.) Код вируса копируется в найденный блок па-

мяти .

в.) В таблице векторов прерываний соответству-

ющие вектора заменяются точками входа в ви-

русные обработчики .

г.) Выполняется переход на начало зараженной

программы ( на адрес CS : 100h ).После это-

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

В том случае, если резидентная часть вируса уже

находится в памяти, он просто передает управление

зараженной программе .

Резидентная часть выполняет следующие действия :

1. Анализирует все вызовы системного прерывания

INT 21h с целью выявить переход оператора в новый

каталог или смену текущего диска .

2. Если обнаружится смена текущего диска или ката-

лога, резидентная часть должна :

а.) Сохранить исходное состояние вычислительной

системы .

б.) Найти на диске подходящий COM - файл .

в.) Записать тело вируса в конец этого файла .

г.) Заменить первые три байта заражаемой про-

граммы командой перехода на вирусный код,

сохранив предварительно исходные три байта

в своей области данных.

д.) Восстановить исходное состояние вычислите-

льной системы и передать ей управление .

Если оператор не будет менять текущий католог или

диск, вирус, очевидно, ничего заразить не сможет .

Как вы уже заметили, заражением файлов занимается

исключительно резидентная часть ! Секция инициали-

зации нужна только для инсталляции вируса в па-

мять .Кроме того, в отличие от обычной резидентной

программы, в вирусе эта секция записывается в па-

мять вместе с резидентной частью . Иначе при за-

писи ее в заражаемый файл возникли бы серьезные

трудности .

Из рассказанного в этом пункте легко сделать вы-

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

устроен сложнее обычного .Вместе с тем, в его на-

писании нет ничего магического, и вы без труда

разберетесь в следующей программе .