Методы противодействия отладчика. Выделяют два основных типа защиты против отладочных средств
Защита против отладчиков реального режима, защита против отладчиков защищенного режима
Основные типы защиты для обоих способов отладки:
1. Применение специальных ловушек для выявления присутствия программы отладчика в оперативке эти ловушки называются "Трик"
2. Предполагает определение работы отладчика по особенностям действий отладчика, ошибкам отладчика и другим его особенностям
Защита от отладчиков реального режима времени
Работа отладчиков построена на использовании двух прерываний
1. Прерывание int 1
2. Прерывание int 3
С помощью первого выполняется пошагово программа, помощью второго выполняется вставка точек останова, при этом при трассировке программы используется регистр флагов, а именно флаг трассировки TF.
Виды триков
Трик 1 предполагает использование особенностей работы процессора intel. Предполагается, что после выполнения команды по SS первое прерывание не вызывается, по сколько отладчик не замечает следующую команду за данной инструкцией.
|
|
Особенностью является то, что возможно использование для отладочных функций специальных, предназначенных для отладки регистров (DR0-DR7)
Еще одной особенность работы отладчиков в защищенном режиме является способ запуска отладчика, предполагается запуск с нулевым режимом привелегий. Соответственно доступ к функциям контроля действий отладчика ограничен. Для противодействия отладчикам в защищенном режиме возможно использовать особенности работы средств взлома, а точнее - специфики обращения отладчиков к областям памяти. Первый метод предполагает контроль состояния отладочных регистров.
Самое важное - обнаружить отладчик по занятому пространству DR0-DR7. После этого возможно применять различные трики или ловушки. Способ контроля отладочных регистров:
Hea. Ebx, continue - заносим адрес перехода
Mov dro, ebx переносим в отладочный регистр dr0
XOR eax, ebx исключаем вероятность совпадения
Mov eax, dro - читаем адрес перехода из Dro