Содержание

IDA Pro: Подробная инструкция и руководство по реверс-инжинирингу

Что такое IDA?

IDA (Interactive DisAssembler) — один из самых мощных инструментов статического анализа и дизассемблирования исполняемых файлов. Разработан компанией Hex-Rays, поддерживает десятки архитектур (x86, ARM, MIPS, PPC и др.) и форматов (PE, ELF, Mach-O и т.д.).

Основное предназначение — реверс-инжиниринг, исследование вредоносного ПО, анализ прошивок, решение CTF-задач, изучение логики проприетарного ПО и т.п.

Основные возможности

Установка и запуск

Установка:

  1. Запустите инсталлятор
  2. Укажите путь, архитектуры, языки скриптов
  3. Запустите IDA и выберите «New Project» → откройте бинарный файл

Поддерживаемые форматы

Интерфейс IDA

Компонент Назначение
IDA View-A Ассемблерный листинг (основной код)
Graph View Граф исполнения функций (Flow Chart)
Hex View Шестнадцатеричный дамп
Functions Таблица всех найденных функций
Strings Статические строки
Structures Определения структур и классов
Enums Перечисления
Imports/Exports Списки API-функций
Output window Журнал действий и скриптов

Горячие клавиши IDA (x86)

Клавиша Функция
`G` Перейти по адресу или имени
`P` Определить функцию
`N` Назначить имя функции/переменной
`;` Комментарий на строке
`A` Комментарий в отдельной строке
`X` Показать все ссылки
`Shift+F12` Список строк
`Ctrl+Enter` Открыть Graph View
`C/D` Пометить как код/данные
`U` Удалить определение
`F5` Открыть Hex-Rays декомпилятор
`Ctrl+S` Сохранить проект

Быстрый сценарий анализа

1. Открываем файл `target.exe` или `.bin` 2. Выбираем тип загрузки (анализируемый формат, база смещения, архитектура) 3. Автоматический анализ (`autoanalysis`) — IDA распознаёт функции и сегменты 4. Заходим в окно Functions и переименовываем подозрительные 5. Переходим в Strings (Shift+F12) — ищем строку типа «Access Denied» 6. Возвращаемся в дизассемблер (`IDA View`) и находим функции-вызывающие 7. Включаем `Graph View` (`Space`) — анализируем логические переходы 8. Комментируем (`;`, `A`), помечаем (`N`, `P`) важные участки

Hex-Rays Decompiler (платная)

Скрипты и автоматизация

IDAPython

```python from idautils import Strings

for s in Strings():

  print(f"{hex(s.ea)}: {str(s)}")