Борьба с антивирусными мониторами
Современные антивирусные мониторы умеют отслеживать факт прямо-
го обращения программ к DOS.
Защиту 21-го прерывания можно организовать более эффективно, ис-
пользуя метод встраивания в ядро операционной системы. Общеприня-
тая схема такова: в точку входа прерывания INT 21h записывается инст-
рукция JMP FAR на обработчик, который проверяет номер функции на
безопасность. Он восстанавливает оригинальные инструкции в точке вхо-
да прерывания и вызывает обработчик INT 21h. После возврата управле-
ния из прерывания, в точку входа снова записывается инструкция JMP
FAR, и управление передается программе, вызвавшей INT 21h.
Здесь описан обычный "сплайсинг" (встраивание), который широко
применяется разработчиками вирусов. Отметим, что для перехода не
обязательно использовать инструкцию JMP FAR (она занимает 5 байт
в памяти и не везде может быть размещена). Вместо нее можно приме-
нить INT 3, затратив всего 1 байт. В то же время необходимо обеспе-
чить обработку вызовов с кодами OOh, 4Ch, 31h (они не возвращают уп-
равление в исходную точку), а также самовызовов (при завершении
процессов посредством INT 27h и INT 20h).
Процесс развивается следующим образом. Первый компонент антивирус-
ного монитора встраивается в ядро DOS, а второй - просто перехватыва-
ет цепочку 21-го прерывания. Когда программа выполняет инструкцию
INT 21h, управление передается второму компоненту. У антивирусных
мониторов существует список функций, которые воспринимаются ими
как опасные. Они могут сделать проверку на наличие заданной функ-
ции в этом списке, затем выставить флаг "проход цепочки" и передать
управление дальше. Когда первый компонент получает управление, он
проверяет флаг "прохода цепочки". Если он выставлен, то была инст-
рукция INT 21h, поэтому необходимо сбросить флаг "проход цепочки"
и передать управление в DOS. Если флаг сброшен, это значит, что был
5 - 1436
выполнен прямой вызов. В этом случае требуется принимать соответ-
ствующие меры против возможных действий вируса.
Эта идея исключительно проста и эффективна. В том или ином виде ее
применяют почти все современные антивирусные мониторы. Вот один
из таких вариантов.
После трассировки прерывания выполняется обращение к DOS по
оригинальному адресу. Программа AVPTSR перехватывает обращение.
Точнее, AVPTSR перехватывает INT 2Ah, причем этот вызов произве-
ден из INT 21h, вблизи начала фрагмента. Обработчик INT 08h,
то есть таймера, периодически восстанавливает вектор 2Ah, если он
был отключен.
Подразумевается, что флаг прохода цепочки 21-го прерывания проверя-
ется в обработчике INT 2Ah.
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий