"Игорь Коваль. Как написать вирус" - читать интересную книгу автора

беремся .
Поскольку вирус будет заражать файлы в резидентном
режиме,он будет пользоваться DTA активной в данный
момент программы,что приведет к ее разрушению.Что-
бы этого не происходило, нужно сохранить ее в об-
ласти данных вируса, а после завершения работы ви-
руса - восстановить.Получить адрес текущей DTA мо-
жно с помощью функции DOS 2Fh, которая и использу-
ется вирусом .
Следующее отличие - наш вирус проверяет,является -
ли найденный файл командным процессором COMMAND.
COM .Для этого используется процедура SEARCH,кото-
рая возвращает INSIDE = 1, если найден командный
процессор, или INSIDE = 0 - в противном случае .
Так как иногда COM-файлы на самом деле имеют EXE -
формат, их размер может превышать 64 Кбайта,и сле-
дует проверить, не является - ли найденный нами
файл именно таким, иначе при заражении он будет
безнадежно испорчен .С этой целью вирус считывает
из DTA слово по смещению 01Ch, и сравнивает его
с нулем .Если это слово равно нулю,размер файла не
превышает 64 Кбайт,и его можно заражать .Кроме то-
го,неплохо было бы проверить формат файла.Для это-
го нужно проверить его первые два байта. Если мы
имеем дело с EXE - файлом, то указанные байты со-
держат ASCII - коды символов " M " и " Z ". Думаю,
читатель сам при желании допишет несколько необхо-
димых для этого команд.
И последнее - мы выяснили,( см. п. 2.5) что первы-
ми двумя байтами,которые должны записываться в ко-
нец файла, должна быть команда перехода на секцию
инициализации вируса .Эту функцию выполняют коман-
ды,записанные за меткой " write_vir " .Сам код ко-
манды перехода хранится в области " end_file " .

*
Не спешите торжествовать по поводу того, что ав-
тор этой книги не смог сделать вирус, заражающий
COMMAND.COM, и поэтому, вероятно, является "чай-
ником". На самом деле вирус отлично работает с
командным процессором и при этом не глюкует. За-
щита введена только для вашего же блага, так как
заражение COMMAND.COM " нестандартным " вирусом
- крайне неприятное событие. Подготовленный чи-
татель без труда снимет такую " защиту ".


2.15 Восстанавливаем регистры

Перед тем, как передать управление прерванной про-