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

( Program Segment Prefix ), в котором содержится
информация,необходимая для правильной работы прог-
раммы . Заполняет PSP операционная система ( ОС ),
а его размер всегда равен 100h ( 256 ) байт .

3. Сразу вслед за PSP загружается сама COM - прог-
рамма .

4. EXEC выполняет настройку регистров процессора.
При этом устанавливаются такие значения :CS = DS =
= SS = ES указывают на начальный сегмент програ-
ммы, регистр IP инициализируется числом 100h, а
регистр SP - числом 0fffeh .

5. Теперь загруженную COM - программу можно испол-
нить . Для этого EXEC передает управление по адре-
су CS : 100h.После завершения программы управление
передается обратно в EXEC, а оттуда программе -
предку .

Таким образом,по адресу CS : 100h обязательно дол-
жна стоять первая исполняемая команда .Чаще всего
это команда перехода, но допустимо использовать и
другие .Следует также напомнить, что в MS DOS раз-
мер COM - файла не может превышать 64 Кбайт. В са-
мом деле, ведь COM - формат предполагает размеще-
ние программных кодов, данных и стека в одном сег-
менте оперативной памяти . А размер сегмента как
раз и ограничен 64 Кбайтами .


1.2 Как вирус может заразить COM - файл

Под заражением понимают присоединение вирусом сво-
его кода к файлу .При этом вирус должен так моди-
фицировать заражаемый файл, чтобы получить управ-
ление при его запуске .
Существует несколько методов заражения COM - про-
грамм.Вирусный код может записываться в конец, на-
чало и даже в середину файла.Каждый из этих спосо-
бов имеет свои достоинства и недостатки.Мы же рас-
смотрим запись вирусного кода в конец файла .Такой
прием используется в подавляющем большинстве виру-
сов, и обеспечивает хорошие результаты при сравни-
тельно простой реализации .
Итак, вирус записывает свой код в конец файла .Для
того,чтобы при старте этот код получил управление
и начал выполняться, во время заражения программа
несколько модифицируется .
С этой целью используется трехбайтовая команда