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

         

Win95.HPS, aka Hanta


Заражает PE-файлы (Portable Executable). При запуске инсталлирует себя в ядро Windows95/98, перехватывает системные события и записывается в конец PE EXE-файлов, к которым идет обращение. Длина вируса - 5124 байт. Содержит строку текста:

< Hantavirus Pulmonary Syndrome (HPS) Virus BioCoded by GriYo / 29A >

При заражении файлов шифрует себя полиморфик-кодом и записывает результат в последнюю секцию файла, предварительно увеличив ее размер, и затем меняет адрес точки входа в заголовке файла. Размер полиморфик-цикла вирьируется от заражения к заражению, поэтому длина файлов может быть увеличена на различные значения. Полиморфик-механизм вируса является "медленным", т.е. меняется не при каждом заражении файла. Более того, конкретная копия вируса при заражении последующих файлов использует один и тот же полиморфик-цикл с теми же ключами, т.е. "прямые потомки" каждой отдельно взятой копии вируса будут иметь один и тот же полиморфик-код, а изменение полиморфик-цикла происходит только при запуске "потомков". При запуске зараженных файлов управление передается в конец кода вируса, где расположен полиморфный расшифровщик его кода. Восстановив код вируса в первоначальном виде, расшифровщик передает управление на процедуру инсталляции вируса в пямять Windows. Эта процедура сканирует ядро Windows на предмет кодов KERNEL32.DLL, ищет таблицу экспортируемых имен и определяет адрес функции VxDCall. Затем этот адрес используется вирусом при вызове файловых и прочих необходимых вирусу функций. Затем вирус выделяет себе блок памяти (используя при этом недокументированные функции VMM PageReserve и PageCommit), копирует себя в этот блок, сканирует код обработчика VxDCall в ядре Windows и записывает туда вызов собственной процедуры. Как результат вирус инсталлирует себя в память Windows как часть ядра: код вируса расположен в shared-памяти, а обработчик VxDCall Windows передает управление на код вируса. Для предотвращения критических ошибок при сканировании ядра Windows (если вдруг вирус залез "не туда куда надо") им заблаговременно перехватывается Structured Exception Handling (SEH).
Этот перехват также работает как анти-отладочный прием. Свою уже установленную в память Windows копию вирус определяет по вызову VxDCall GetDate с регистрами: ESI='HPS!' и EDI='TSR?', копия вируса возвращает 'YES!' в регистре ESI. Перехватчик VxDCall в вирусе обрабатывает только вызовы Int21Dispatch и пропускает все прочие, при этом вирус обращает внимание только на 9 функций INT 21h: GetDate, Open ReadOnly, Open WriteOnly, FindFirst/Next LongNames, Rename LongName, Create/Open LongName. При обращениях к файлам (открытие, переименование) вирус сравнивает их расширения имени с EXE, SRC и SYS и затем заражает такие файлы. После заражения вирусом удаляются антивирусные файлы данных: ANTI-VIR.DAT, CHKLIST.MS, AVP.CRC, IVB.NTZ. При вызовах FindFirst/Next вирус возвращает уменьшенную длину зараженных файлов (т.е. является стелс-вирусом на таких вызовах). Однако вирус не перехватывает аналогичные DOS-вызовы и приращения длин зараженных файлов видны всеми утилитами DOS включая команду DIR. Вирус проявляется видео-эффектом: если инсталляция вируса в память Windows произошла в субботу, то вирус затем переворачивает справа-налево изображения в неупакованных BMP-файлах. Повторного переворачивания не происходит - вирус помечает такие BMP-файлы записав в них метку DEADBABEh.

Демонстрации вирусных эффектов:



hps.jpg




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