IDA Pro: Инструкция для начинающих
Что такое IDA
IDA (Interactive DisAssembler) — профессиональный инструмент для дизассемблирования и реверс-инжиниринга программ. Разработан Hex-Rays. Поддерживает большое количество архитектур, обладает удобной навигацией по коду, продвинутым графическим отображением функций, мощной системой меток, аннотаций и скриптов.
- ✅ Поддержка PE, ELF, Mach-O, .bin, .com, .img и др.
- ✅ Статический анализ
- ✅ Граф вызовов функций (Flow Graph)
- ✅ Встроенный декомпилятор (в платной версии — Hex-Rays)
- ✅ Расширяемость через IDC и Python (IDAPython)
Установка
- Скачать: https://hex-rays.com/ida-pro/
- Есть бесплатная версия: 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-подобном языке
- Позволяет:
- Назначать имена переменным
- Добавлять комментарии
- Выводить чистую логику без ассемблера
Скрипты и расширения
- IDAPython — встроенная поддержка Python
- File → Script file… → выберите `.py`
- Можно писать автопоиск функций, сигнатуры, патчи
- IDC — собственный скриптовый язык IDA
- Плагины:
- `BinDiff` — сравнение двух бинарей
- `RetDec` — облачный декомпилятор (можно подключить)
- `FindCrypt` — поиск криптографических шаблонов
Полезные советы
- Используйте `Bookmarks` (Ctrl+M) — удобно отмечать важные места
- Назначайте понятные имена функциям и переменным
- Комментируйте! (`;` и `A`)
- Используйте `Graph View` для анализа логики
- Экспортируйте функции в .c или .asm
Ссылки
- Официальный сайт: https://hex-rays.com/ida-pro/
- IDA Free: https://hex-rays.com/ida-free/
Заключение
IDA — один из самых мощных и признанных инструментов реверс-инжиниринга. Он требует времени на освоение, но даёт высочайший уровень контроля, анализа и расширяемости.