152243e4

Использует довольно необычный способ заражения


Использует довольно необычный способ заражения файлов: шифрует и записывает свой код в конец файла, затем записывает код своего расшифровщика и команду перехода на тело вируса (JMP) в середину файла по адресу, с которого идет первый вызов INT 21h при запуске файла на выполнение. При этом начало файла не изменяется (за исключением полей "длина модуля" в заголовке EXE).

Файл до заражения Зараженный файл +----------------+ +----------------+ |... | |... | |----------------| |----------------| |вызов INT 21h | |цикл расшифровки| |----------------| |JMP Virus |--+ |... | |----------------| | |... | |... | | +----------------+ |----------------|<-+ |вирус | | | +----------------+

Для реализации этого метода вирус перехватывает все функции INT 21h. При вызове DOS-функции Execute (AX=4B00h) перехватывает запуск файла, переходит в режим заражения и отдает управление DOS, которая загружает файл в память и запускает его. При работе практически все программы вызывают различные функции INT 21h. Вирус ловит первое из этих событий, определяет адрес, откуда идет вызов INT 21h, по данному адресу высчитывает смещение команды вызова INT 21h в файле и записывает по этому смещению код расшифровщика и JMP на свое тело. Перед тем как записать свой расшифровщик в середину файла, вирус сравнивает код файла по этому адресу с соответствующим кодом в памяти. Если они различны (файл упакован или код содержит настраиваемый адрес в EXE-файле), то вирус не заражает файл. Однако, несмотря на эти меры, вирус может испортить файлы при заражении. Для того чтобы перехватить момент выхода программы в DOS и выйти из "режима заражения", вирус также перехватывает INT 20h, 27h (это необходимо в тех случаях, когда файл ни разу не вызывает функций INT 21h).


Содержание раздела