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

         

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


Способность вируса заражать файлы помощи Windows базируется на том факте, что HLP-файлы могут содержать в себе подпрограммы, написанные на специальном скрипт-языке (макросы). Используемый в HLP-скриптах язык позволяет создавать на диске файлы и запускать их на выполнение. Данные скрипты автоматически выполняются обработчиком HLP-файлов (утилита WinHelp) при их открытии.

При заражении HLP-файлов вирус записывает свой DOS-дроппер в их конец и создает в SYSTEM-секции файла новый макрос, который содержит 10 команд. Этот макрос при активизации создает на диске C: короткую программу (загрузчик DOS-дроппера) и выполняет ее. Программа-загрузчик определяет имя HLP-файла, считывает из него DOS-дроппер вируса, записывает его вместо своего файла и запускает его на выполнение. Управление передается на полиморфик-цикл, который расшифровывает основной код вируса и передает управление на процедуру инсталляции вируса в память Windows. Затем DOS-дроппер удаляется вирусом с диска. Таким образом вирус заражает систему при открытии инфицированного HLP-файла.

Перед "выбросом" своего кода из HLP-файлов вирус проверяет наличие в системе файла C:\NTLDR (загрузчик WindowsNT). Если такой файл присутствует, то вирус не заражает систему.

Следут также отметить, что код вирусного загрузчика в HLP-файлах достаточно специфичен. Практически полностью он состоит из латинских букв от 'A' до 'Z' (это вызвано тем, что скрипт-команды в HLP-файлах являются текстовыми строками). Заголовок загрузчика содержит процедуру, которая конвертирует символьные строки в двоичный формат выполняемых файлов (два символьных байта в один), и "текстовая" программа в результате становится "нормальной" программой на языке ассемблера. Однако некоторые команды конвертации текста в код содержат небуквенные символы, которые при записи из Windows HLP-файла в DOS-файл конвертируются в зависимости от установленной национальной кодировки. В результате код загрузчика в случае "неправильной" кодировки оказывается испорченным и вирусный загрузчик "зависает". В случае же русской кодировки вирус работает без проблем, т.е. вирус способен заражать систему из HLP-файлов только в том случае, если в системе установлена поддержка русского языка.



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