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

         

Механизм заражения PE EXE


Перед заражением PE EXE-файла вирус проверяет несколько условий. 1: длина файла не кратна 101 (при заражении вирус устанавливает длину файла именно в это значение и защищается таким образом от повторного заражения файлов). 2: при заражении файлов в текущем каталоге и в Windows имена файлов не должны содержать символа 'V' или цифр. Таким образом вирус не заражает наиболее популярные антивирусные программы.

При заражении вирус записывает свой код в конец последней секции файла предварительно увеличив ее размер. Затем вирус необходимым образом модифицирует заголовок файла и заголовок последней секции файла.

Если первая секция файла имеет достаточный размер (более 2304 байт), то вирус записывает в нее восемь блоков полиморфик-кода, которые последовательно передают управление на основной цикл расшифровки:

+------------+ | | |PE Header | ---------------+ |------------| | | +-----+<-+| | | |Code2| || | | +-----+-+|| Стартовый адрес| |+-----+ |||<---------------+ ||Code1| ||| |+-----+----+| | | | |+-----+<--+ | ||Code3| | |+-----+----+| | V| | . . . | | +-----+| |+----|Code8|| || +-----+| |V | |------------| |Virus code | | | +------------+

В этом случае вирус не модифицирует стартовый адрес программы, однако перед возвратом ей управления вынужден восстанавливать исходный код секции файла - все восемь блоков восстанавливаются в исходное состояние.

Если первая секция файла короткая, стартовый адрес устанавливается непосредственно на расшифровщик вируса в конец файла.

Вирус также сканирует и модифицирует таблицу импортов для того, чтобы при старте файла получить функции GetProcAddress, GetModuleHandle, CreateProcessA, WinExec и MAPISendMail, необходимые ему для перехвата событий в своей резидентной копии.



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