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

могут содержать любые данные. Но стоит заметить,
что повреждение байтов 1, 3 или 4 приводит к выда-
че сообщения :

Memory Allocation Error
System Halted

и немедленному " зависанию " компьютера .
А теперь вернемся к нашей программе .
Как показал эксперимент, достаточно подменить в
MCB, предшествующем вирусному коду, байты 1 и 2 .
Причем лучше всего записать вместо этих байт PID
какой - нибудь из уже загруженных в память про-
грамм.Этим достигается еще и незаметность вируса в
памяти.Советую вам попробовать загрузить несколько
TSR - программ и в MCB одной из них подменить бай-
ты 1 и 2 на PID какой - нибудь другой программы .
После этого нажмите в Volkov Commander клавиши ALT
и F5, и вы увидите очень интересный эффект .
Но дело в том, что для использования вышеприведен-
ного метода необходимо еще найти программу, на PID
которой наш вирус будет " паразитировать ".Сделать
это не так просто, как может показаться на первый
взгляд .И поэтому для облегчения нашей работы вме-
сто PID загруженной в память программы мы запишем
в MCB вируса сегментный адрес области данных DOS,
а именно : 0070h :

; _______________________________________________
;| Теперь свободный блок памяти найден |
;| ( сегментный адрес в AX ), и |
;| нужно записать в него код вируса ... |
;|_______________________________________________|

xor di,di ;Делаем вирус
mov bx,ax ;"невидимым" в
dec bx ;памяти ...
mov word ptr cs:[2],bx
mov es,bx
mov bx,0070h
mov es:[di+1],bx

Предыдущий фрагмент вернул нам сегментный адрес
выделенного для вируса блока памяти в регистре AX.
Приведенные программные строки очень просты, и
объяснять их работу не нужно. Следует только ска-
зать, что вирус фактически отнимает у DOS несколь-
ко килобайтов памяти, поэтому необходимо скоррек-
тировать PSP программы - носителя вируса.А именно-
уменьшить верхнюю границу блока памяти,выделенного