Читать книгу Безопасность вычислительных сетей. Практические аспекты - Иван Андреевич Трещев - Страница 8

Глава 1. Техника и технология сниффинга пакетов
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. Появляется окно ссылок.


1.3 Отладка


В составе IDA Pro дополнительно есть отладчик. Он позволяет пошагово выполнять программу, исследовать и модифицировать память во время выполнения программы.

Панель запуска отладки находится в верхней части окна, она изображена на рисунке 63. С её помощью можно запустить отладку, приостановить отладку, остановить отладку. Также можно выбрать отладчик (локальная машина, виртуальная машина, удалённая машина).


Рисунок 63 – Панель отладки.


Для исследования программы в нужном месте следует использовать точки остановы (breakpoints). Они устанавливаются с помощью панели, которая находится справа от панели отладки. Панель содержит стандартные функции по работе с точками останова.

При запуске программы она выполнится до точки остановы и будет ожидать дальнейших действий пользователя. Затем программу можно выполнять в таком же режиме (до следующей точки остановы), для этого нужно нажать кнопку запуска отладки. Либо можно исследовать программу, выполняя её пошагово. Для этого существуют команды step into (шаг со входом в функцию, F7) и step over (шаг без входа, F8).

Исследуя код можно заметить, что при некотором условии на экран будет выводиться строка та или иная строка. Также мы знаем, что за сравнения в языке ассемблера отвечает инструкция cmp. IDA позволяет редактировать программу в процессе выполнения. Для этого выбираем нужную часть кода, выбираем Edit -> Patch Program -> Assembly. И пишем нужную часть кода.

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

Подняться наверх