"Игорь Коваль. Как написать вирус" - читать интересную книгу автора Другой способ состоит в использовании для поиска
подходящего блока памяти так называемых MCB - бло- ков ( потом мы поговорим о них подробнее ) . При этом вирус должен путем сканирования цепочки бло- ков управления памятью ( Memory Control Blocks ) найти свободный блок подходящего размера, разде- лить его на две части, одна из которых точно соот- ветствует или несколько превышает длину вируса, и записать во вновь созданный блок свой код.Основной недостаток данного метода состоит в том что MCB - блоки являются недокументированной структурой MS DOS, и при их использовании нужно быть готовым к тому,что программа будет работать на одной машине и не будет работать на другой. Это также относится к разным версиям операционной системы .Кроме того, очень сложно построить эффективный алгоритм реали- зации этого метода . Ведь вирусный код должен за- писываться не просто в подходящий по размерам блок, а в старшие адреса оперативной памяти, ина- че загрузка больших программ будет просто невозмо- жна . Третий способ заключается в том, что код вируса копируется в заданную область памяти без коррекции MCB - блоков. Недостаток его состоит в следующем: "время жизни" вируса,реализующего такой алгоритм, пользования оперативной памяти . Причем "гибель" вирусной программы с почти стопроцентной вероятно- стью приводит к повисанию компьютера. Хотя метод отличается простотой реализации и имеет ряд других достоинств, приведенный выше недостаток делает его практическое использование маловозможным . Четвертый способ состоит в использовании функций, реализующих управление памятью.Используя его,можно построить эффективный и корректно работающий про- граммный код, который будет хорошо работать на разных машинах и с любыми версиями операционной системы .При этом его реализация весьма проста и понятна . Поэтому мы применим именно этот способ : free_mem: mov ah,4ah ;Определим объем ;доступной памя- ;ти ... mov bx,0ffffh ;Заведомо невоз- int 21h ;можное значение ;(0ffffh) ! ;Ошибка будет ;обязательно, и ;проверять ее ;наличие |
|
|