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

         

Заражение EXE


При заражении NE-файлов вирус не создает нового сегмента - он вычисляет адрес и размер сегмента кода, сдвигает остальную часть файла вниз и записывается в образовавшуюся дыру. При этом вирус увеличивает размер сегмента кода, присоединяя таким образом свой код к первоначальному сегменту кода заражаемой программы. Затем вирус производит необходимые изменения в NE-заголовке и исправляет адреса в NE-таблицах. При заражении обычных файлов (не Kernel) вирус записывает в NE-заголовок новый (вирусный) адрес точки входа. В случае Kernel вирус изменяет адреса системных процедур. При запуске зараженного файла в незараженной системе код вируса получает управление, ищет файл, содержащий Win16 Kernel (KRNL286.EXE или KRNL386.EXE) и заражает его описанным выше способом. Вирус не изменяет адрес точки входа. Вместо этого он устанавливает на себя адреса системных процедур WINEXEC или INITTASK. В случае Windows 3.xx вирус перехватывает WINEXEC, в случае Windows95/NT - INITTASK (поскольку Win32 не вызывает WINEXEC при запуске программ). Затем вирус возвращает управление программе-носителю и не производит более никаких действий вплоть до очередной перезагрузки Windows. Для того, чтобы различить версию KRNL?86.EXE (Windows 3.xx или 95/NT) вирус ищет в файле ссылку на системную процедуру CALLPROC32W, присутствующую только в 32-битных Windows95/NT.



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