IDA (Interactive DisAssembler) — один из самых мощных инструментов статического анализа и дизассемблирования исполняемых файлов. Разработан компанией Hex-Rays, поддерживает десятки архитектур (x86, ARM, MIPS, PPC и др.) и форматов (PE, ELF, Mach-O и т.д.).
Основное предназначение — реверс-инжиниринг, исследование вредоносного ПО, анализ прошивок, решение CTF-задач, изучение логики проприетарного ПО и т.п.
Установка:
| Компонент | Назначение |
|---|---|
| IDA View-A | Ассемблерный листинг (основной код) |
| Graph View | Граф исполнения функций (Flow Chart) |
| Hex View | Шестнадцатеричный дамп |
| Functions | Таблица всех найденных функций |
| Strings | Статические строки |
| Structures | Определения структур и классов |
| Enums | Перечисления |
| Imports/Exports | Списки API-функций |
| Output window | Журнал действий и скриптов |
| Клавиша | Функция |
|---|---|
| `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`) важные участки
```python from idautils import Strings
for s in Strings():
print(f"{hex(s.ea)}: {str(s)}")