Безопасность вычислительных сетей. Практические аспекты - страница 9

Шрифт
Интервал


Существует несколько версий IDA Pro – бесплатная (freeware), стандартная (standard) и расширенная (advanced). Бесплатная версия обладает ограниченными возможностями по сравнению со стандартной и расширенной версиями – поддерживается только архитектура x86 и отсутствует поддержка подключаемых модулей.

1 Использование IDA Pro

1.1 Автоматический анализ

После запуска IDA предлагает 3 варианта продолжения: дизассемблировать новый файл (new), продолжить без загрузки файла (go), открыть ранее дизассемблированный файл (previous). Скриншот окна представлен на рисунке 60.


Рисунок 60 – Окно быстрого старта.


Выберем дизассемблирование нового файла. Загрузим на анализ любой exe. Далее появится окно, изображённое на рисунке 61.


Рисунок 61 – Загрузка файла на анализ.


Иногда после компиляции в файле остаётся отладочная информация. Тогда IDA покажет окно, изображённое на рисунке 62 с предложением загрузить отладочную информацию.


Рисунок 62 – Загрузка отладочной информации.


После окончания автоматического анализа IDA покажет графовое представление функции, где находится точка входа (если она найдена), либо первой функции в файле.

Кроме графового представления существует множество других важных вкладок, доступных в меню View-> subviews: шестнадцатеричное представление, список строк в файле, список имён из библиотек или отладочной информации, список импортированных функций и значений с указанием библиотеки.

Кроме того, в IDA существует возможность представить функцию в виде псевдокода, синтаксис которого копирует синтаксис языка программирования Си. Для просмотра функции в виде псевдокода нужно нажать клавишу F5.


1.2 Ручной анализ

Качественное отличие IDA Pro от других дизассемблеров – интерактивность. Пользователь может сам сообщать дизассемблеру дополнительную информацию.

Рассмотрим метод ручного анализа на практике. Часто бывает так, что IDA не может в автоматическом режиме найти функцию main, которая чаще всего является точкой входа. Эта функция принимает два обязательных аргумента: argc (количество аргументов) и argv (список аргументов). То есть можно косвенно предположить что если функция в программе работает с этими аргументами то она и есть main.

Откроем вкладку списка имён. Нажатием Ctrl+F включаем поиск по именам.

С помощью поиска находим имена _argv и _argc. В IDA Pro есть функция просмотра ссылок на объект. Выбираем _argc (или _argv), нажимаем клавишу X. Появляется окно ссылок.