Обратное проектирование алгоритма
![]() |
1. Инструктивная карта / инструкции
Перед выполнением работы необходимо
ознакомиться с основными методами обратного проектирования (базовым статическим
и расширенным статическим), а также понимать назначение и отличия между
линейным и рекурсивным алгоритмами анализа кода программ при проведении
дизассемблирования.
Для выполнения работы необходимо установить свободно распространяемую версию программы IDA PRO. Следует заметить, что данное ПО относится к проприетарному, поэтому бесплатная версия не может использоваться в коммерческих целях и ее функциональные возможности ограничены, она работает только с файлами для 64-разрядных систем и не поддерживает возможность встраивания дополнительных инструментов.
Выполнение задания демонстрирует возможности программы и формирует общее представление о технологиях обратного проектирования, в частности статического анализа.
2. Проблема / задача
Выполнить исследование алгоритма функционирования исследуемого файла в программе IDA PRO.
3. Цель работы
Ознакомиться с интерфейсом и возможностями программного комплекса IDA PRO, сочетающего в себе свойства отладчика и дизассемблера, работающего с файлами для 32/64-разрядных систем.
4. Ход работы
Исследование выполняется в несколько этапов.
1. Выполнить установку необходимого ПО. Запуск программы IDA помимо информации о лицензии начнется с отображения диалога, предлагающего три способа попасть в рабочее окружение.
2. Запуск встроенного помощника. Для начала рекомендуется выбором пункта New запустить помощника, который будет помогать при выборе файла для анализа, так как пользователь должен точно определить тип файла, который он хочет открыть.
При помощи стандартного диалога Открыть
файл осуществляется выбор файла. Перед анализом и отображением
появляются один или более дополнительных диалогов, которые позволяют указать
специфические опции для анализа до непосредственной загрузки файла.
3. Знакомство с интерфейсом. После загрузки исследуемого файла необходимо ознакомиться со следующими основными компонентами рабочей области:
■ область панели инструментов, которая содержит основные элементы меню и кнопки быстрого доступа к главным используемым операциям;
■ окно дизассемблирования, предназначенное для вывода данных. Здесь присутствуют два режима вывода информации — в виде графа (по умолчанию) и в форме листинга. В режиме графа IDА отображает схематический граф одной функции. Изучение графов помогает визуально понять процесс выполнения функции. Для переключения между режимами графа и листинга используется клавиша Пробел;
■ окно сообщений для предоставления информации, генерируемой IDA;
■ окно строк фактически является аналогом утилиты Strings, отображает список строк, извлеченных из двоичного файла, а также их адреса.
При использовании перекрестных ссылок окно строк позволяет быстро обнаружить интересующую строку и отследить ссылку на нее;
■ окно экспортов предназначено для перечисления входных точек файла. Они включают в себя входную точку исполнения программы, как указано в заголовочном разделе, а также все функции и переменные, которые файл экспортирует для использования другими файлами;
■ окно функций перечисляет все функции, распознанные IDA в базе данных;
■ окно структур используется для отображения распознанных IDA сложных структур данных, таких как structs и unions в Си;
■ окно импортов перечисляет всё функции, импортируемые анализируемым двоичным файлом. Окно импортов необходимо при использовании двоичным файлом общих библиотек. Записи в окне импортов включают в себя имя импортируемой функции или данных и имя библиотеки, их содержащей.
4. Исследование алгоритма
функционирования.
Ознакомившись с основными окнами интерфейса, студентам предлагается через окно импорта определить точку входа в исследуемую программу и, используя режим представления в виде графа, осуществить перемещение между вызываемыми функциями, исследуя общий алгоритм функционирования программы через вызов функций и осуществляя переключение в режим листинга.
5. Написание отчета.
Для проведения лабораторной работы необходим персональный компьютер/ноутбук с операционной системой Windows.
Используемое ПО – IDA PRO.
1. Для чего предназначено обратное проектирование?
2. Для чего предназначены программы-дизассемблеры?
3. Для чего применяется программа IDA PRO при обратном проектировании?
4. Что отображает окно дизассемблирования программы IDA PRO в ре жиме графа?
5. Что может дать исследование строк как символов в кодировке Unicode при исследовании программ?
Отчет выполняется в текстовом редакторе, например MS Word, с титульным листом, целью и заданием.
После выполнения каждого пункта необходимо сделать снимок экрана с результатами выполнения команд.
Также студенту необходимо:
■ объяснить предназначение программ отладчиков;
■ описать основные методы обратного проектирования;
■ дать определения линейному и рекурсивному методам при статическом анализе кода исполняемых файлов.
В конце работы необходимо сделать краткий вывод о проделанной работе.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.