Программное обеспечение
Отладчики
Отладчики — ключевой инструмент реверс-инженера. Они позволяют по шагам выполнять бинарные файлы, устанавливать точки останова (breakpoints), изменять память и регистры, отслеживать системные вызовы и поведение исполняемого кода в реальном времени. Ниже представлены наиболее популярные отладчики, их преимущества и недостатки.
x64dbg/x32dbg
Мощный и активно развиваемый отладчик с открытым исходным кодом для 64-битных (x64dbg) и 32-битных (x32dbg) PE-файлов на Windows. Представляет собой современную альтернативу OllyDbg.
Функциональность:
Графический дизассемблер и отладчик
Поддержка плагинов и скриптов
Удобная панель регистров, стек, память, карты модулей
Поддержка обфусцированных и защищённых файлов (совместим с ScyllaHide)
Поиск строк,
API-вызовов, переходов и ссылок
Интеграция с символами PDB
Расширенные инструменты анализа (xAnalyzer)
Плюсы:
Современный UI, горячие клавиши и настраиваемые макросы
Поддержка символов и комментариев
Бесплатен, активно развивается
Минусы:
Идеально подходит для:
Интерактивного анализа поведения вредоносного кода
Динамического патчинга программ
Поиска уязвимостей и отладки софта Windows
OllyDbg
Легендарный отладчик для 32-битных приложений Windows. Свою популярность он получил за счёт простоты и большого количества доступных плагинов.
Функциональность:
Отладка и дизассемблирование кода
Анализ импортов/экспортов, команд переходов
Интерактивное редактирование кода и данных
Система плагинов (OllyAdvanced, StrongOD и др.)
Поиск по памяти, именам функций и т.д.
Плюсы:
Интуитивно понятный интерфейс
Отлично подходит для обучения
Большое сообщество и документация
Минусы:
Идеально подходит для:
IDA Pro
Один из самых мощных дизассемблеров и отладчиков на рынке. Представляет собой коммерческий инструмент для статического и динамического анализа исполняемых файлов.
Функциональность:
Гибридный статический анализ с возможностью отладки (Debugging + Disassembly)
Поддержка десятков архитектур и форматов (x86, x64, ARM, MIPS, PowerPC и др.)
Встроенный скриптовый язык IDC и Python
API
Интерактивная графовая навигация по коду (flow chart)
Интеграция с декомпилятором (Hex-Rays Decompiler)
Плюсы:
Глубокий статический анализ
Расширяемость через скрипты и плагины
Широкое применение в профессиональном реверсе
Минусы:
Идеально подходит для:
Глубокого анализа вредоносного кода, прошивок, драйверов
Работа с редкими архитектурами и нестандартными бинарниками
Исследовательской работы в области reverse engineering
RADARE2
Продвинутый кроссплатформенный фреймворк для анализа бинарных файлов. Поддерживает отладку, дизассемблирование, патчинг, анализ и скриптинг. Имеет высокую кривую обучения.
Функциональность:
Консольный интерфейс + веб
GUI (Cutter) и Ghidra-подобный декомпилятор (r2ghidra)
Поддержка множества архитектур
Символьный анализ, поиск входных точек, визуализация CFG
Плагинная архитектура и мощный скриптовый движок (r2pipe, ESIL)
Плюсы:
Минусы:
Идеально подходит для:
Кроссплатформенного анализа бинарников
Сценарного анализа и автоматизации
Проектов с открытым исходным кодом
GHIDRA
Открытый проект от Агентства национальной безопасности США (NSA), предназначенный для реверс-инжиниринга. Предоставляет продвинутую визуальную среду с декомпиляцией, графами и анализом.
Функциональность:
Поддержка PE, ELF, Mach-O, и других форматов
Встроенный декомпилятор в стиле C-подобного кода
Графовая навигация по коду, анализ зависимостей
Поддержка скриптов на Java, Python (Jython)
Совместная работа (multi-user mode), плагинная архитектура
Плюсы:
Минусы:
Медленная работа на больших бинарниках
Некоторые баги при декомпиляции нестандартного кода
Интерфейс требует привыкания
Идеально подходит для:
Начального и среднего уровня анализа
Углублённой работы с декомпиляцией
Исследования прошивок и вредоносных программ
Сравнительная характеристика
| Отладчик | Архитектуры | GUI / CLI | Декомпиляция | API / Скрипты | Расширяемость | ОС |
| x64dbg/x32dbg | x86, x64 | GUI | Нет (внешние) | Да (скрипты и плагин API) | Высокая (много плагинов) | Windows |
| OllyDbg | x86 | GUI | Нет | Ограничено (плагины) | Средняя (устаревшие плагины) | Windows |
| IDA Pro | x86, x64, ARM, MIPS, PowerPC, и др. | GUI + CLI | Да (Hex-Rays) | Да (IDC, Python API) | Высокая (много плагинов, SDK) | Windows, Linux, macOS |
| RADARE2 | x86, x64, ARM, MIPS, AVR, SPARC и др. | CLI (Cutter — GUI) | Да (через r2ghidra, cxx) | Да (ESIL, r2pipe, Python, JS) | Очень высокая (модули, плагины, open source) | Windows, Linux, macOS |
| GHIDRA | x86, x64, ARM, MIPS, PPC, и др. | GUI | Да (встроенный) | Да (Java, Python (Jython)) | Высокая (плагины, open source) | Windows, Linux, macOS |
| Bochs | x86, x86-64 | GUI + CLI | Нет | Да (GDB integration) | Низкая | Windows, Linux, macOS |
| QEMU | x86, x64, ARM, MIPS, и др. | CLI | Нет | Да (GDB, TCG hooks) | Средняя | Windows, Linux, macOS |
| Unicorn Engine | x86, x64, ARM, ARM64, MIPS | API Only | Нет | Да (C, Python, Ruby, Go) | Высокая (библиотека для эмуляции) | Windows, Linux, macOS |
Архитектуры — поддерживаемые архитектуры процессоров
GUI / CLI — графический или командный интерфейс
Декомпиляция — встроенный или сторонний декомпилятор (возможность восстановления C-подобного кода)
API / Скрипты — возможность автоматизации через
API, скриптовые языки
Расширяемость — поддержка плагинов, модулей, настройка
ОС — операционные системы, на которых работает отладчик
Сканеры ресурсов
Программы, предназначенные для извлечения ресурсов (иконок, строк, изображений, диалогов) из исполняемых файлов.
Resource Hacker
Плюсы:
Минусы:
Лучше всего подходит для:
Модификации
GUI-элементов программ
Извлечения ресурсов
PE Explorer
Плюсы:
Минусы:
Платный
Устаревший интерфейс
Лучше всего подходит для:
Граберы
Инструменты для перехвата и извлечения данных, таких как логины, ключи и сетевой трафик.
NinjaRipper
NinjaRipper — инструмент для перехвата и извлечения 3D-моделей, текстур и других графических ресурсов из запущенных DirectX/OpenGL/Vulkan приложений (чаще всего — игр). Используется при создании модов, в обучающих целях, для анализа движков или цифровой архивации.
Функциональность:
Перехват моделей, мешей, текстур во время выполнения
Поддержка DirectX 9/11/12, OpenGL, Vulkan (ограниченно)
Возможность экспорта в формат `.rip` или `.obj`
Сопровождается визуальным препросмотром (NinjaViewer)
Перехватывает также шейдеры и их параметры (в зависимости от движка)
Плюсы:
Позволяет извлечь ресурсы даже из защищённых или нестандартных движков
Может работать с 32/64-битными играми
Сообщество активно делится профилями и опытом
Поддержка различных хаков запуска (вкл. ReShade hook и Custom DLL Injection)
Минусы:
Не всегда работает с современными движками и античитами
Часто требует подбора запуска (launch mode, wrapper, hooking)
Модели могут экспортироваться без структуры (нужно вручную собирать сцены)
Может вызывать падение игры или конфликт с защитой
Лучше всего подходит для:
Извлечения 3D-моделей из старых и средних по возрасту игр
Создания модов, цифровой реставрации и обучения 3D-графике
Исследования проприетарных движков, визуализации игровых сцен
Сравнение: NinjaRipper vs 3D Ripper DX
| Характеристика | NinjaRipper | 3D Ripper DX |
| Поддержка API | DirectX 9/10/11/12, OpenGL, Vulkan | Только DirectX 6–9 |
| Совместимость | Современные и старые движки | Только старые игры (до 2012 года) |
| Формат вывода | .rip, .obj, текстуры (DDS/TGA) | .3DR, .obj, .dds |
| Поддержка 64-бит | Да | Нет |
| Работа в Windows 10/11 | Да (частично, зависит от метода) | Ограниченно, часто нестабильно |
| Уровень захвата | Более гибкий (свой рендер-хук) | Низкоуровневый захват DX9 сцены |
| Поддержка ReShade | Да (совместим через Proxy DLL) | Нет |
Вывод:
*3D Ripper DX* — устаревший, но всё ещё работает с очень старыми DirectX9-играми (2000–2012).
*NinjaRipper* — универсальнее, работает с большинством современных игр и поддерживает больше API.
Интеграция с ReShade
ReShade — инструмент постобработки, часто используемый как промежуточный hook-слой в графическом конвейере. Он может конфликтовать с NinjaRipper, но также помогает обходить античиты, выступая как «легитимный» графический фильтр.
Методы интеграции:
Установка ReShade перед запуском игры
Использование ReShade `.dll` в качестве прокси-хука (`dxgi.dll` / `d3d11.dll`)
Привязка NinjaRipper к ReShade-процессу (в режимах: `Intruder Injector` или `Wrapper Mode`)
Изменение порядка загрузки DLL (через `LoadLibrary`)
Плюсы:
ReShade помогает перехватывать сцены там, где NinjaRipper не может напрямую
Уменьшает вероятность детекта античитами (видится как графический фильтр)
Минусы:
Обход античитов
Некоторые игры с EAC, BattleEye, Denuvo или собственными DRM-механизмами могут блокировать:
инжекцию DLL
отладку процессов
графический хук
Способы обхода:
Использование режима оффлайн (Steam/Origin/Uplay)
Запуск игры через ReShade, и подмена стандартных `d3d*.dll`
Использование пользовательских launchers (например, с отключённым античитом)
Инъекция через NinjaRipper Intruder Injector (настройка процесса захвата вручную)
Работа с Portable-версией игры (если доступна)
Важно: Многие античиты распознают NinjaRipper как потенциально вредоносную активность. Используйте только для анализа, моддинга и образовательных целей в оффлайн-режиме.
Рекомендованные конфигурации запуска NinjaRipper
Для повышения шансов успешного захвата моделей:
1. ReShade-хук (гибридный метод):
Установить ReShade в папку с игрой
Назначить `dxgi.dll` как целевой для захвата
Выбрать в NinjaRipper режим `Intruder Injector`
Указать путь к `ReShade64.dll` или `dxgi.dll`
2. Wrapper Mode (менее стабильный, но работает без инъекции):
3. Параметры запуска:
`Admin mode`: всегда запускать NinjaRipper и игру от имени администратора
`DelayInject`: увеличить задержку инъекции до 3000–5000 мс
`Force Windowed`: запуск игры в оконном режиме для стабильности захвата
`Disable anti-aliasing`: часто мешает корректному извлечению геометрии
Дополнительно:
Сохраняйте лог процесса
Пробуйте разные версии NinjaRipper (1.7, 2.0 beta)
Используйте NinjaRipper Viewer для первичного анализа `.rip` файлов
Wireshark
Плюсы:
Поддержка множества сетевых протоколов
Фильтрация и анализ трафика в реальном времени
Расширяемость с помощью плагинов
Минусы:
Лучше всего подходит для:
WebBrowserPassView / Mail PassView
Плюсы:
Минусы:
Лучше всего подходит для:
Анализаторы
Программы, выполняющие статический или динамический анализ кода, структуры или поведения файлов.
CFF Explorer
Плюсы:
Удобная работа с PE-заголовками
Интеграция с PE-дизассемблером
Возможность модификации структур PE
Минусы:
Лучше всего подходит для:
Detect It Easy (DIE)
Плюсы:
Минусы:
Лучше всего подходит для:
Pestudio
Плюсы:
Минусы:
Лучше всего подходит для:
Эмуляторы
Позволяют запускать или анализировать поведение исполняемых файлов в изолированной или эмулируемой среде. Часто используются для анализа вредоносного ПО и отладки.
QEMU
Плюсы:
Поддержка множества архитектур (x86, ARM, MIPS, RISC-V и др.)
Возможность запуска образов ОС
Используется в связке с GDB для отладки
Минусы:
Лучше всего подходит для:
Bochs
Плюсы:
Минусы:
Лучше всего подходит для:
Unicorn Engine
Плюсы:
Быстрая и лёгкая интеграция
Скриптуемость на Python, C и др.
Поддержка нескольких архитектур
Минусы:
Лучше всего подходит для:
Декомпиляторы
Инструменты, преобразующие машинный код в псевдокод высокого уровня для лучшего понимания логики программы.
RetDec
Плюсы:
Open Source
Поддержка множества форматов (PE, ELF, Mach-O)
Интеграция с IDA и Ghidra
Минусы:
Лучше всего подходит для:
JEB Decompiler
Плюсы:
Минусы:
Лучше всего подходит для:
Инструменты упаковки/распаковки
UPX
Плюсы:
Минусы:
Лучше всего подходит для:
MPRESS, ASPack, Themida (коммерческие)
Плюсы:
Минусы:
Лучше всего подходит для:
Мониторинг API
API Monitor
Плюсы:
Минусы:
Лучше всего подходит для:
Procmon (Sysinternals)
Плюсы:
Минусы:
Лучше всего подходит для:
Инструменты анти-анализа
Техники и утилиты, используемые для защиты программ от анализа, отладки и реверс-инжиниринга.
ScyllaHide (для x64dbg)
Плюсы:
Минусы:
Лучше всего подходит для:
VMProtect / Enigma Protector / Themida (анализируемые)
Плюсы:
Минусы:
Лучше всего подходит для:
Pafish (для песочниц и анализаторов)
Плюсы:
Проверяет наличие виртуализации, отладчиков, хуков
Используется как тест для песочниц и sandboxes
Минусы:
Лучше всего подходит для: