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