INT 0Dh соответствует IRQ5 на
INT 0Dh соответствует IRQ5 на PC/XT fixed disk, INT 76h - IRQ14 на PC/AT hard disk controller. При обращении к винчестеру компьютерное железо генерирует соответствующий IRQ (IRQ5 на PC/XT и IRQ14 на компьютерах класса IBM/AT), основной процессор реагирует на полученный запрос вызовом прерывания. Для того чтобы правильно перехватить прерывание винчестера, вирус должен определить класс компьютера (т.е. тип процессора), на котором он работает. Вирус делает это с помощью команды SHR AX,CL (AX=0002h, CL=41h). Если значение регистра AX после этого равно 1, то компьютер класса i286 и выше (вирус перехватывает INT 76h), если 0 - i86 (иначе перехватывается INT 0Dh). С помощью прерываний INT 0Dh и INT 76h вирус организует "стелс"-механизм на винчестере. Для этого он постоянно хранит в памяти оригинальный (незараженный) MBR и при чтении зараженного MBR подставляет незараженный. На PC/XT при вызове INT 0Dh вирус считывает адрес дискового буфера из порта 6, после чего проверяет зараженность этого сектора. Если сектор заражен, вирус копирует в дисковый буфер код оригинального MBR. На PC/AT при вызове INT 76h вирус считывает номера сектора, трека и головки через порты 1F3h, 1F4h, 1F5h и 1F6h. Если их значения соответствуют MBR, вирус записывает в вышеуказанные порты адрес сектора, содержащего оригинальный MBR. Если попытаться протрассировать прерывание INT 13h (с учетом того, что вирус проверяет наличие трассировки) при чтении MBR, то трассировка доходит до ROM BIOS, изменений в значениях регистров нет, но тем не менее в буфер считывается оригинальный MBR, а не вирус! Можно установить INT 13h напрямую в BIOS, но вирус все равно останется невидимым! Удаление вируса с дисков при условии незараженой памяти - занятие несложное. Старый MBR хранится вирусом по адресу 0/0/11 (сторона/трек/сектор), а флоппи-диски легко восстанавливаются простой перезаписью стандартного загрузочного сектора. Однако перед тем как проделывать эти процедуры, следует удалить вирус из памяти либо перезагрузкой компьютера с незараженной дискеты, либо обеззараживанием оперативной памяти компьютера.В памяти вирус слудует искать при помощи трассировки прерывания INT 13h, поскольку кроме области драйверов и верхней памяти вирус может находиться в конце одного из MZ-блоков. У нас, например, он садился в 'хвост' NC.EXE (Norton Commander). Для поиска вируса на жестком диске необходимо лечение вируса в памяти, причем лечения прерывания INT 13h недостаточно из-за "стелс"-механизма. Поэтому лечить кроме INT 13h нужно еще INT 0Dh и INT 76h.
Содержание раздела