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

shr dl,4

shi ax,4

;Устанавливаем адрес сегмента данных
;в глобальной таблице дескрипторов

mov bx, offset gdt_ds

setgdtentry

;Вычисляем абсолютный адрес для сегмента GDT: прибавляем
;к уже вычисленному абсолютному адресу сегмента данных
;смещение в нем таблицы дескрипторов

add ax,offset gdtr

adc dl.0

Останавливаем адрес сегмента GDT
;в глобальной таблице дескрипторов

mov bx.offset gdt_gdt

setgdtentry

;Вычисляем абсолютный адрес для сегмента кода
;в соответствии со значением регистра CS

mov ax,cs

mov dl.ah

shr dl,4

shi ax,4

.Устанавливаем адрес сегмента кода
;в глобальной таблице дескрипторов

mov bx, offset gdt_cs

setgdtentry

[Вычисляем абсолютный адрес для сегмента стека
;в соответствии со значением регистра SS

mov ax.ss

mov dl.ah

shr dl,4

shi ax,4

Останавливаем адрес сегмента стека
;в глобальной таблице дескрипторов

mov bx,offset gdt_ss

setgdtentry

Перехватываем рестарт. Так как процессор i286 (а эта программа
[рассчитана именно на такой процессор) не имеет возможности
;возврата в реальный режим из защищенного, возврат в реальный
режим будем производить следующим образом: перехватим рестарт,
.сгенерируем CPU Reset, после которого получим управление, когда
Процессор будет находится уже в реальном режиме. На процессоре
;i386 возврат в реальный режим происходит
[значительно проще и "естественнее".

push ds

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