Защита программ

       

Шестой этап - направленное исследование системы защиты.


На данной стадии злоумышленник выполняет статический и/или динамический анализ системы защиты атакуемого продукта. Статический анализ, в зависимости от языка программирования, на котором написана программа, может осуществляться при помощи дизассемблирования объектного кода или при помощи его декомпиляции. Применение дизассемблера даёт злоумышленнику возможность работы с последовательностью инструкций целевого процессора, в которую исходный текст программы был превращён при компиляции. В случае же декомпиляции объектного кода злоумышленник получает текст на языке высокого уровня в максимально близком к исходному виде. Получив текст программы на языке ассемблера или языке высокого уровня, злоумышленник анализирует его и определяет алгоритм преодоления защиты продукта.

В случае затруднений, связанных со статическим анализом, например, когда объектный код зашифрован или динамически изменяется, прибегают к его динамическому анализу. Как правило, динамический анализ систем защиты выполняется при помощи программного отладчика. При этом исследуемое приложение запускается в среде программы-отладчика и выполняется в пошаговом режиме или с использованием заданных точек останова. В режиме отладки становится возможным отслеживать изменения состояния программы, происходящие в процессе её выполнения (например, изменение содержимого регистров процессора, срабатывание команд условного перехода, параметры вызова подпрограмм, получаемые или передаваемые через порты ввода/вывода данные и др.). В этом же режиме выполняется прохождение алгоритмов, например, проверки/генерации корректного регистрационного кода.

Динамический анализ может также выполняться при помощи уже упоминавшихся выше мониторов активности приложения. Если на этапе предварительного анализа при помощи этих средств отслеживается общая направленность работы программы, то на этапе динамического анализа системы защиты отслеживается не только факты обращения к файлам, портам и системным сервисам, но и все параметры этих обращений: данные, записываемые/считываемые из скрытых и системных файлов, параметры вызова системных сервисов, протоколы обмена с портами ввода/вывода и др. В случае применения мониторов активности не имеет значения, реализованы ли в рамках системы защиты блоки противодействия отладке приложения или нет.

По завершении данного этапа анализа системы защиты злоумышленник обладает полной информацией о том, как технически осуществить обход или преодоление системы защиты программного продукта.



Содержание раздела