logo search
PASOIB

2.1. Методы противодействия отладчикам

Таким образом, задача злоумышленника во многом упрощается после локализации им модуля защиты в коде программы. Один из подходов, используемых разработчиками для защиты от взлома – не дать взломщику локализовать данный модуль или во многом затруднить ему эту задачу. Так как решение данной задачи во многом облегчается с помощью средств отладки, то многие разработчики ПО пытаются противостоять данным средствам и реализовать различные защиты против средств отладки. Различают два типа защит против отладочных средств – защиты против отладчиков реального режима и защита против отладчиков защищенного режима.

Несмотря на то, что конкретные реализации данных типов защит, зачастую, значительно различаются, можно выделить несколько общих подходов, используемых как в первом, так и во втором типе. Данные подходы представлены ниже.

1. Использование триков (ловушек), с помощью которых можно выявить наличие отладчика в оперативной памяти, и, соответственно, прекратить работу, либо затруднить процесс отладки.

2. Определение наличия отладчика в оперативной памяти используя различные «дырки», допущенные при реализации отладчиков, либо внедренные разработчиком отладчика принудительно.

Использование недокументированных команд и возможностей процессора.

Использование того, что некоторые отладчики при загрузке отлаживаемой программы не могут полностью эмулировать «чистую» среду ее запуска в ОС (например, обнуляют некоторые регистры, которые могут нести определенный смысл).

Рассмотрим более подробно реализации защит против отладчиков реального и защищенного режимов.