2.1. Методы противодействия отладчикам
Таким образом, задача злоумышленника во многом упрощается после локализации им модуля защиты в коде программы. Один из подходов, используемых разработчиками для защиты от взлома – не дать взломщику локализовать данный модуль или во многом затруднить ему эту задачу. Так как решение данной задачи во многом облегчается с помощью средств отладки, то многие разработчики ПО пытаются противостоять данным средствам и реализовать различные защиты против средств отладки. Различают два типа защит против отладочных средств – защиты против отладчиков реального режима и защита против отладчиков защищенного режима.
Несмотря на то, что конкретные реализации данных типов защит, зачастую, значительно различаются, можно выделить несколько общих подходов, используемых как в первом, так и во втором типе. Данные подходы представлены ниже.
1. Использование триков (ловушек), с помощью которых можно выявить наличие отладчика в оперативной памяти, и, соответственно, прекратить работу, либо затруднить процесс отладки.
2. Определение наличия отладчика в оперативной памяти используя различные «дырки», допущенные при реализации отладчиков, либо внедренные разработчиком отладчика принудительно.
Использование недокументированных команд и возможностей процессора.
Использование того, что некоторые отладчики при загрузке отлаживаемой программы не могут полностью эмулировать «чистую» среду ее запуска в ОС (например, обнуляют некоторые регистры, которые могут нести определенный смысл).
Рассмотрим более подробно реализации защит против отладчиков реального и защищенного режимов.
- Модульная архитектура технических средств защиты по от несанкционированного использования
- Функционирование подсистем и модулей системы защиты по от несанкционированного использования
- Электронные ключи hasp
- Глава 1. Методы и средства обратного проектирования.
- 1.1. Понятие обратного проектирования
- 1.2. Основные приемы, используемые злоумышленником при отладке и дизассемблировании программного обеспечения
- 1.2.1. Специфика атак на модули проверки корректности ключевой информации
- 1.2.2. Специфика атак на модули проверки истечения временного срока работы программы или ограничения по количеству ее запусков
- 1.2.3. Отлов злоумышленником вызова WinApi функций при взломе по
- 1.3. Мониторинг событий
- Глава 2. Методы противодействия обратному проектированию
- 2.1. Методы противодействия отладчикам
- 2.1.1. Защита от отладчиков реального режима
- 2.1.2. Защита от отладчиков защищенного режима
- 2.1.3. Методы, основанные на невозможности полного эмулирования отладчиком среды загрузки программы
- 2.2. Методы противодействия дизассемблированию программного обеспечения
- 2.3. Защита, основанная на человеческом факторе злоумышленника
- Глава 3. Общие методы защиты программ от отладки и дизассемблирования
- 3.1. Использование недокументированных команд и недокументированных возможностей процессора
- 3.2. Шифрование кода программы
- Глава 4. Эмуляторы процессоров. Использование эмуляторов для взлома и защиты программного обеспечения.
- Глава 5. Защита исходных текстов программного обеспечения
- Глава 6. Идентификация и аутентификация субъектов
- 6.1. Идентификация и аутентификация пользователей с использованием технических устройств
- 6.2. Идентификация и аутентификация с использованием индивидуальных биометрических характеристик пользователя
- 7. Защита от разрушающих программных воздействий
- 7.1. Понятие разрушающего программного воздействия
- 7.2 Модели взаимодействия прикладной программы и рпв
- 7.3 Компьютерные вирусы как класс рпв
- 7.4. Защита от рпв. Изолированная программная среда
- Глава 8. Руководящие документы России
- Приложение
- 6.1. Отладка программ в отладчике SoftIce
- 6.2. Дизассемблирование программ с помощью интерактивного дизассемблера Ida Pro
- 6.3. Редактор кода hiew
- Лабораторные работы