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

Резидентные вирусы обычно намного заразнее нерези-
дентных и распространяются быстрее .Однако создать
такой вирус не так просто . Кроме того,резидентные
вирусные программы подвержены всевозможным сбоям
и могут конфликтовать с установленным на компьюте-
ре программным обеспечением . Но несмотря на все
трудности, возникающие при разработке резидентных
вирусов, их было создано великое множество .
В предлагаемой вниманию читателей главе рассказы-
вается о приемах создания TSR - вирусов, поражаю-
щих COM - файлы .Кроме того, освещаются основные
проблемы, с которыми приходится встречаться при их
разработке .


2.2 Несколько слов о резидентных программах

Вы,наверное, знаете, как строятся резидентные про-
граммы .В этом пункте мы немного поговорим об их
организации и функционировании .
Резидентными называют программы,которые после сво-
его завершения остаются в памяти и активизируются
при наступлении каких - либо событий в вычисли-
тельной системе .Такими событиями могут быть, нап-
ример, нажатие " горячей " комбинации клавиш, вы-
полнение некоторых операций с дисками и т. п .Но в
любом случае программа получает управление при
тех или иных условиях .
Все резидентные программы строятся одинаково, или
почти одинаково, и состоят из двух секций - секции
инициализации и собственно резидентной части.Рези-
дентная часть, как правило, состоит из одной или
нескольких подпрограмм - обработчиков прерываний и
находится в памяти во время сеанса работы компью-
тера .Такие подпрограммы могут полностью подменять
собой системные обработчики или только служить их
дополнением.Естественно,для того,чтобы резидентная
часть получила управление, необходимо заменить со-
ответствующие вектора в таблице векторов прерыва-
ний на точки входа в заново установленные обработ-
чики.Эту функцию и выполняет секция инициализации,
которая всегда выполняется при запуске программы
первой .
После перехвата прерываний, которые должна обраба-
тывать резидентная часть, секция инициализации за-
вершает программу, используя для этой цели преры-
вание или функцию резидентного завершения MS DOS .
В результате резидентная часть остается в памяти и
активизируется в случаях, предусмотренных автором
программы . Часть инициализации в процессе работы