Метод и средства защиты исполняемого программного кода от динамического и статического анализа
Результаты защиты при помощи сети Петри и анализ производительности
Download 482 Kb.
|
Аранов, Владислав Юрьевич
- Bu sahifa navigatsiya:
- Рисунок 4.6 и рРисунок 4.7
- Структура инструментального средства защиты программного кода
109
Отсюда получаем, что защищаемый файл имеет оптимальные показатели, если количество раундов сети незначительно превосходит количество целевых значений. но
Так как изначально ставилась цель защиты исходного файла от дисассемблирования, то важно проследить, как изменяется блок-схема программы, которую можно получить с помощью распространенных отладочных инструментов. В качестве такого инструмента был выбран IDA Pro Disassembler (англ. Interactive DisAssembler) — интерактивный дизассемблер, который широко используется для обратного проектирования. На рисунке 4.4 приведена блок-схема исходного исполняемого файла, полученная с помощью IDA Pro. На ней легко можно различить цикл и проверки, соответствующие вычислению факториала. 111
Рисунок 4.6 - Блок-схема исходной процедуры На рРисунок 4.6 приведена блок-схема защищенного исполняемого файла, который всё также вычисляет факториал. На ней циклы и условия, которые, несомненно, присутствуют в коде, совсем неочевидны. 112 Рисунок 4.7 - Блок-схема защищенной процедуры Рисунок 4.6 и рРисунок 4.7 иллюстрируют, как меняется граф (блок-схема) исходного файла в процессе обфускации, и как сильно эти изменения затрудняют анализ кода. 113 По результатам анализа характеристик исполняемого файла и блок-схем, получаемых с помощью IDA Pro, можно сделать вывод, что реализуемый протектор является надежной защитой двоичного кода от реинжиниринга. Структура инструментального средства защиты программного кода Прототип модуля инструментального средства защиты исполняемого кода от обратного проектирования имеет модульную структуру, представленную на рРисунок 4.4.6. В данную структуру сходят следующие модули: Модуль захвата машинного кода представленного в форматах COFF и ELF Модуль анализа и преобразования машинного кода в промежуточное представление для последующей защиты Модуль создания виртуальной машины Модуль сборки выходных данных состоящий из: модуля компиляции байткода защищаемого алгоритма создания интерпретатора виртуальной машины защиты кода интерпретатора виртуальной машины Модуль генерации и защиты кода Модуль создания выходного объектного модуля для связи с остальными частями защищаемой программы при помощи стандартных утилит Интерфейс программного прототипа На рРисунок 4. 4.8 показана общая схема защиты исполняемых файлов прототипом протектора и проиллюстрирована многоплатформенность данного решения. Сначала исполняемый файл дизассемблируется и транслируется в специальное промежуточное представление, зависимое от архитектуры процессора. Полученный код транслируется в машинно-независимое промежуточное представление (Intermediate Representation), затем, на основе входных пользовательских параметров и входных данных строится виртуальная машина, включающая интерпретатор для ее исполнения. И, наконец, новый код вместе с виртуальной машиной преобразуется в машинный код и записывается в новый машинно-зависимый исполняемый файл. В том случае, если требуется защита иполняемого или динамически компонуемого объекта, то полученный защищенный файл необходимо обработать компановщиком с соотвествующими настройками длоя получения исполняенмого , динамически подключаемого (dll) или разделяемого (so) модуля. 114
! ' о d Download 482 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling