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

         

Заражение PE-файлов


При заражении PE-файлов вирус шифрует и записывает свой код в таблицу настройки адресов (таблица перемещений - Relocation или Fixup Table), затирая ее первоначальное содержимое. Поскольку процедура загрузки приложений в память Windows в большинстве случаев загружает программы по указанным в PE-заголовке адресам и игнорирует таблицу настройки, зараженные файлы с испорченной таблицей настройки адресов работают без каких-либо ошибок. Чтобы избежать загрузки программ по другим адресам (в этом случае будет задействована таблица настроек), вирус обнуляет в заголовке файла необходимые флаги. Вирус дополнительно проверяет размер таблицы настроек адресов и заражает файлы только в том случае, если код вируса помещается в пределы таблицы. В результате размер файлов при заражении не увеличивается.

Затем вирус записывает в файл процедуру JMP_Virus, которая при активации расшифровывает основной код вируса и передает на него управление. Данная процедура является полиморфик-циклом размером до 168 байт. Она записывается в секцию кода заражаемого файла по случайно выбранному адресу. При выборе этого адреса вирус сканирует секцию кода заражаемого файла и ищет в нем заголовок подпрограммы - вирус использует тот факт, что большинство компиляторов C/Pascal записывают в начало подпрограмм стандартный код. Затем вирус проверяет еще некоторые условия, чтобы не испортить код следующей подпрограммы, генерирует полиморфик-код продедуры JMP_Virus и записывает его в файл.

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



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