Энциклопедия компьютерных вирусов

         

Запуск зараженных DOS COM-файлов


При запуске зараженных DOS-файлов вирус записывает на диск и запускает свой VxD "дроппер" (файл с именем C:\CLINT.VXD), который затем остается "резидентно" в памяти Windows95. Для этого вирус проверяет, работает ли он в DOS-окне под Win95. Если так, то вирус возвращает управление программе-носителю. Иначе вирус вызывает свою функцию детектирования резидентной копии ("Are you there?") - INT 2Fh, AX=0. Если копия вируса уже присутствует в памяти, она возвращает AX=4AB3h, и вирус отдает управление программе-носителю. Иначе вирус создает файл C:\CLINT.VXD и записывает туда код своего VxD-дроппера. При создании дроппера вирус распаковывает его код - 7508 байт упаковынных данных преобразуются в 12413 байт VxD-дроппера. Алгоритм паковки достаточно прост, однако VxD-драйвера являются EXE-файлами формата LE (Linear Executable) и содержат области неспользуемых данных, заполненные нулями. Естественно, что даже несложные алгоритмы паковки данных показывают на таких файлах достаточно неплохой результат. Когда распаковка файла CLINTON.VXD закончена, вирус копирует незначительную часть своего кода в таблицу векторов прерываний по адресу 0:200 и устанавливает туда адрес прерывания INT 2Fh (Multiplex Interrupt). Перехватчик INT 2Fh помимо функции "Are you there?" также ждет вызовов AX=1605h (Windows Initialization Notification). Эта функция INT 2Fh вызывается Windows для уведомления драйверов и TSR-программ DOS о том, что Windows инсталлирует себя в память. Windows при старте вызывает эту функцию для того, чтобы дать возможность DOS-программам подготовиться к работе в среде Windows. Когда этот вызов приходит к вирусному обработчику INT 2Fh, "Memorial" открывает файл C:\CLINT.VXD для того, чтобы удостовериться в его присутствии, затем создает структуру Win386_Stratup_Info_Struc, необходимую для запуска VxD и возвращает управление Windows. Получив корректный указатель на драйвер C:\CLINT.VXD, Windows грузит его в память, и вирус, таким образом, остается в памяти Windows как VxD-драйвер.



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