IDA Pro: Инструкция для начинающих
Что такое IDA
IDA (Interactive DisAssembler) — профессиональный инструмент для дизассемблирования и реверс-инжиниринга программ. Разработан Hex-Rays. Поддерживает большое количество архитектур, обладает удобной навигацией по коду, продвинутым графическим отображением функций, мощной системой меток, аннотаций и скриптов.
✅ Поддержка PE, ELF, Mach-O, .bin, .com, .img и др.
✅ Статический анализ
✅ Граф вызовов функций (Flow Graph)
✅ Встроенный декомпилятор (в платной версии — Hex-Rays)
✅ Расширяемость через IDC и Python (IDAPython)
Установка
-
Есть бесплатная версия: IDA Free (x86, x64)
Запустите установщик и следуйте инструкциям
Запустите IDA и создайте проект
Интерфейс IDA
| Компонент | Описание |
| IDA View | Основной дизассемблер |
| Hex View | Просмотр байтов |
| Graph View | Визуализация логики функций |
| Function window | Список функций |
| Strings window | Список строк |
| Names window | Все метки |
| Output window | Вывод логов и скриптов |
Быстрый старт
1. Откройте бинарный файл
File → Open → выберите `.exe`, `.elf`, `.bin`, и др.
IDA автоматически определит архитектуру
2. Проанализируйте файл
Запустите Auto Analysis (предлагается при открытии)
IDA распознает функции, данные, переменные
3. Навигация
В Graph View (клавиша `Space`) смотрите контрольный поток
Используйте `Names`, `Strings`, `Functions` для ориентира
4. Переходы
`G` — переход к адресу
`X` — показать все переходы к функции
`Enter` — вход в функцию
Основные клавиши
| Клавиша | Действие |
| `N` | Переименовать метку |
| `U` | Пометить как неиспользуемое |
| `P` | Преобразовать в функцию |
| `C` | Переключить в код |
| `D` | Переключить в данные |
| `A` | Комментарий |
| `;` | Комментарий (рядом с кодом) |
| `Shift+F12` | Поиск строк |
| `Alt+T` | Переименовать тип |
Пример анализа "sample.exe"
1. Открыть `sample.exe` через File → Open
2. Автоматический анализ выполнится сам
3. Перейдите в `Strings` (`Shift+F12`), найдите текстовую строку «Hello»
4. Дважды кликните — попадёте в код, вызывающий эту строку
5. Найдите функцию (`P`), переименуйте её (`N`)
6. Перейдите в `Graph View` (`Space`) для анализа структуры
Работа с декомпилятором (Hex-Rays)
Доступен только в коммерческой версии
Открыть: меню «View → Open subviews → Pseudocode» или `F5`
Псевдокод на C-подобном языке
Позволяет:
Назначать имена переменным
Добавлять комментарии
Выводить чистую логику без ассемблера
Скрипты и расширения
Плагины:
`BinDiff` — сравнение двух бинарей
`RetDec` — облачный декомпилятор (можно подключить)
`FindCrypt` — поиск криптографических шаблонов
Полезные советы
Используйте `Bookmarks` (Ctrl+M) — удобно отмечать важные места
Назначайте понятные имена функциям и переменным
Комментируйте! (`;` и `A`)
Используйте `Graph View` для анализа логики
Экспортируйте функции в .c или .asm
Ссылки
Заключение
IDA — один из самых мощных и признанных инструментов реверс-инжиниринга. Он требует времени на освоение, но даёт высочайший уровень контроля, анализа и расширяемости.