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



             

BAT.Highjaq - часть 2


При запуске в виде двоичного исполняемого файла текстовые строки выполняются как обычные команды ассемблера, и вирус передает управление на свой код несколькими командами JMP:

0100 3A 3A CMP BH,[BP+SI] ; text: ::pFqD 0102 70 46 JO Jmp_a 0104 71 44 JNO Jmp_a .... . . . . . 0149 3A DB 3Ah ; text: :qlpj 014A Jmp_a: 014A 71 6C JNO Jmp_b 014C 70 6A JO Jmp_b .... . . . . . 01B7 3A DB 3Ah ; text: :qWpU 01B8 Jmp_b: 01B8 71 57 JNO Main_Code 01BA 70 55 JO Main_Code .... . . . . . 0211 Main_Code: .... . . . . .

Получив управление, двоичный код вируса определяет, был ли запущен вирус как COM-файл (в командной строке есть аргумент "/i") или как системный драйвер (аргументы отсутствуют). Если вирус запущен как системный драйвер, то он перехватывает INT 8, 21h и остается резидентно в памяти при помощи DOS-вызова Keep (INT 21h, AH=31h). Если компьютер работает не под Windows 3.x, то обработчик INT 8 через некоторое время перезагружает компьютер. Обработчик INT 21h перехватывает два вызова. Первый является командой "AreYouHere?" (AX=FEFEh), по которой вирус определяет свою резидентную копию. Второй вызов является командой GetFileAttribute. Вирус блокирует этот вызов, если обращение идет к файлу с именем, начинающимся на "/W". Не очень понятно, зачем это нужно, видимо, вирус таким образом блокирует какие-то действия ARJ.EXE при распаковке файлов /WINSTART.BAT (дроппера вируса). При запуске в виде двоичного файла без агрументов вирус также ставит у своего файла атрибуты Hidden и ReadOnly. Вирус проверяет COM-порты и в некоторых случаях инициализирует порт модема и выводит туда строки:

ATL0M0A<cr> HIGHJAQ on COMx:38400,N,8,1<cr>

где COMx является номером порта модема. Затем вирус перехватывает INT 8 и запускает файл C:\COMMAND.COM с параметрами:

C:\ COM1 /E:1024/P/F

Перехватчик INT 8 в данном случае перезагружает компьютер, если обнаруживает, что бит Carrier Detect в соответствующем порте равен единице.




Содержание  Назад  Вперед