reverseenengineering:soft_ida:manual_master

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

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

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

  • Поддержка множества архитектур (x86/x64, ARM, PPC, MIPS и др.)
  • Гибкий графический интерфейс: дизассемблер, граф вызовов, Hex View и др.
  • Псевдокод на C (Hex-Rays Decompiler — коммерческая опция)
  • Расширение через Python (IDAPython), IDC и плагины
  • Работа с удалёнными DB-группами
  • Поддержка анализа драйверов, прошивок, BIOS, UEFI, игр и даже микроконтроллеров

Установка:

  1. Запустите инсталлятор
  2. Укажите путь, архитектуры, языки скриптов
  3. Запустите IDA и выберите «New Project» → откройте бинарный файл
  • PE (Windows EXE/DLL/SYS)
  • ELF (Linux)
  • Mach-O (macOS)
  • Raw binaries (.bin, .img)
  • ROM-файлы, прошивки
  • Снимки памяти (dumps)
  • .COM, .SYS, .DRV, .AX, .MOD
Компонент Назначение
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`) важные участки

  • Распознаёт код и выводит псевдокод на C
  • Позволяет быстрее понять общую логику
  • Удобен для изучения алгоритмов, операций с памятью, API-вызовов
  • Поддерживает редактирование имён, типов, структур
  • Поддерживает x86, x64, ARM, MIPS (в зависимости от лицензии)

IDAPython

  • Python 3.10 поддерживается
  • Пример скрипта:

```python from idautils import Strings

for s in Strings():

  print(f"{hex(s.ea)}: {str(s)}")
  • reverseenengineering/soft_ida/manual_master.txt
  • Последнее изменение: 2025/07/18 12:48
  • Lex