Техники туннелинга также используются антивирусами при инсталляции, и все наши попытки найти оригинальный INT 21h пойдут насмарку, потому что они используют наше собственное оружие. И нам это не нравится. Также нас могут туннелить другие вирусы, что совсем беспонтово. Эта система наша и ничья больше! :)
Так как антивирусы используют определенные процедуры, чтобы обнаружить не занимается ли кто-нибудь трейсингом, мы можем использовать те же алгоритмы, чтобы бороться против них: они не защищены от нас. Мы используем процедуру, чтобы активировать traр flag для трейсинга... Можем ли мы использовать другую процедуру, чтобы деактивировать ее? Конечно. Это очень просто. Вместо использования OR, чтобы активировать его, для его деактивирования мы должны использовать AND.
pushf
pop ax
and ah,11111110h
push ax
popf
Разве это не прекрасно? :) Мы обламываем тех, кто хочет своровать наш INT 21h. Hо... что если мы захотим узнать, пытается ли кто-нибудь украсть его? Эта процедура взята из этого же туториала из главы о бронировании кода.
push ax
pop ax
dec sp
dec sp
pop bx
cmp ax,bx
jz not_traced
jmр $ ; если кто-то трейсит, замораживаем
; процессор
not_traced:
[...]
Эта глава - расширение главы о туннелинге. Поэтому... с этими двумя процедурами плюс немного удачи, вы можете пойти далеко вперед :).
[C] Billy Belcebu, пер. Aquila