Доклад: Маскировка вирусов

mov al.A20_PORT

out STATUS_PORT,al

mov al,A20_OFF

out KBD_PORT_A,al

ret
disable_a20 ENDP

[Здесь сохраняется адрес стека
real_sp dw ?
real_ss dw ?

[Эта строка выводится на экран после работы программы
[Символ "?" заменяется на "L" в защищенном режиме

qw db 13,10,"?ight General",13,10,"$"

;Глобальная таблица дескрипторов. Нулевой дескриптор

обязательно должен быть "пустым"

GDT_BEG=$

gdtr label WORD

gdt_0 desc_struc <0,0,0,0,0>

gdt_gdt desc_struc <GDT_SIZE-1„,DATA_ACC,0>

gdt_ds desc_struc <DSEG_SIZE-1,„DATA_ACC,0>

gdt_cs desc_struc <CSEG_SIZE-1„,CODE_ACC,0>

gdt_ss desc_struc <STACK_SIZE-1,„DATA_ACC,0>

GDT_SIZE=($-GDT_BEG)

END start

Обход резидентных антивирусных мониторов

Обычно все программы используют сервис DOS так:

mov ah,...
int 21 h

По команде INT управление передается в точку, адрес которой определя-
ется двумя словами, находящимися в таблице векторов прерываний
по адресу 0000h:0084h. С этого момента начинается исполнение команд
многочисленных обработчиков прерывания INT 21h и не менее многочис-
ленных резидентных программ до тех пор, пока управление, наконец,
не получит оригинальный обработчик операционной системы (рис. 5.1.):


Разумеется, среди этих многочисленных обработчиков может "затесаться"
обработчик, принадлежащий антивирусному монитору, который не дает
спокойно работать не только вирусам, но и обычным программам.

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

mov ah,...
pushf

call dword ptr 021

021 dw ?

К-во Просмотров: 768
Бесплатно скачать Доклад: Маскировка вирусов