Показать страницуИстория страницыСсылки сюдаНаверх Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Программное обеспечение ====== ===== Отладчики ===== Отладчики — ключевой инструмент реверс-инженера. Они позволяют по шагам выполнять бинарные файлы, устанавливать точки останова (breakpoints), изменять память и регистры, отслеживать системные вызовы и поведение исполняемого кода в реальном времени. Ниже представлены наиболее популярные отладчики, их преимущества и недостатки. ---- ==== x64dbg/x32dbg ==== Мощный и активно развиваемый отладчик с открытым исходным кодом для 64-битных (x64dbg) и 32-битных (x32dbg) PE-файлов на Windows. Представляет собой современную альтернативу OllyDbg. **Функциональность:** * Графический дизассемблер и отладчик * Поддержка плагинов и скриптов * Удобная панель регистров, стек, память, карты модулей * Поддержка обфусцированных и защищённых файлов (совместим с ScyllaHide) * Поиск строк, API-вызовов, переходов и ссылок * Интеграция с символами PDB * Расширенные инструменты анализа (xAnalyzer) **Плюсы:** * Современный UI, горячие клавиши и настраиваемые макросы * Поддержка символов и комментариев * Бесплатен, активно развивается **Минусы:** * Только для Windows * Зависит от структуры PE-файлов (мало пригоден для анализа прошивок и нестандартных форматов) **Идеально подходит для:** * Интерактивного анализа поведения вредоносного кода * Динамического патчинга программ * Поиска уязвимостей и отладки софта Windows ---- ==== OllyDbg ==== Легендарный отладчик для 32-битных приложений Windows. Свою популярность он получил за счёт простоты и большого количества доступных плагинов. **Функциональность:** * Отладка и дизассемблирование кода * Анализ импортов/экспортов, команд переходов * Интерактивное редактирование кода и данных * Система плагинов (OllyAdvanced, StrongOD и др.) * Поиск по памяти, именам функций и т.д. **Плюсы:** * Интуитивно понятный интерфейс * Отлично подходит для обучения * Большое сообщество и документация **Минусы:** * Только 32-бит * Нет обновлений с 2014 года * Сложности с новыми системами и защищёнными файлами **Идеально подходит для:** * Реверса старых программ * Учебных целей и демонстрации базовых техник ---- ==== IDA Pro ==== Один из самых мощных дизассемблеров и отладчиков на рынке. Представляет собой коммерческий инструмент для статического и динамического анализа исполняемых файлов. **Функциональность:** * Гибридный статический анализ с возможностью отладки (Debugging + Disassembly) * Поддержка десятков архитектур и форматов (x86, x64, ARM, MIPS, PowerPC и др.) * Встроенный скриптовый язык IDC и Python API * Интерактивная графовая навигация по коду (flow chart) * Интеграция с декомпилятором (Hex-Rays Decompiler) **Плюсы:** * Глубокий статический анализ * Расширяемость через скрипты и плагины * Широкое применение в профессиональном реверсе **Минусы:** * Высокая цена ($$$) * Сложный интерфейс для новичков * Некоторые функции недоступны в бесплатной версии (IDA Free) **Идеально подходит для:** * Глубокого анализа вредоносного кода, прошивок, драйверов * Работа с редкими архитектурами и нестандартными бинарниками * Исследовательской работы в области reverse engineering ---- ==== RADARE2 ==== Продвинутый кроссплатформенный фреймворк для анализа бинарных файлов. Поддерживает отладку, дизассемблирование, патчинг, анализ и скриптинг. Имеет высокую кривую обучения. **Функциональность:** * Консольный интерфейс + веб GUI (Cutter) и Ghidra-подобный декомпилятор (r2ghidra) * Поддержка множества архитектур * Символьный анализ, поиск входных точек, визуализация CFG * Плагинная архитектура и мощный скриптовый движок (r2pipe, ESIL) **Плюсы:** * Открытый исходный код * Гибкость и расширяемость * Работа на Linux, macOS, Windows **Минусы:** * Высокий порог входа (CLI-first) * Недостаток стабильности в некоторых плагинах * Слабый GUI по сравнению с конкурентами **Идеально подходит для:** * Кроссплатформенного анализа бинарников * Сценарного анализа и автоматизации * Проектов с открытым исходным кодом ---- ==== GHIDRA ==== Открытый проект от Агентства национальной безопасности США (NSA), предназначенный для реверс-инжиниринга. Предоставляет продвинутую визуальную среду с декомпиляцией, графами и анализом. **Функциональность:** * Поддержка PE, ELF, Mach-O, и других форматов * Встроенный декомпилятор в стиле C-подобного кода * Графовая навигация по коду, анализ зависимостей * Поддержка скриптов на Java, Python (Jython) * Совместная работа (multi-user mode), плагинная архитектура **Плюсы:** * Бесплатна и кроссплатформенна * Постоянно обновляется * Сравнима по возможностям с IDA Pro **Минусы:** * Медленная работа на больших бинарниках * Некоторые баги при декомпиляции нестандартного кода * Интерфейс требует привыкания **Идеально подходит для:** * Начального и среднего уровня анализа * Углублённой работы с декомпиляцией * Исследования прошивок и вредоносных программ ===== Сравнительная характеристика ===== ^ Отладчик ^ Архитектуры ^ 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 ==== **Плюсы:** * Простой интерфейс * Позволяет изменять ресурсы напрямую * Поддержка как .exe, так и .dll **Минусы:** * Только Windows * Не поддерживает некоторые нестандартные форматы **Лучше всего подходит для:** * Модификации GUI-элементов программ * Извлечения ресурсов ==== PE Explorer ==== **Плюсы:** * Анализ PE-структуры * Интеграция дизассемблера * Хорошая поддержка ресурсов **Минусы:** * Платный * Устаревший интерфейс **Лучше всего подходит для:** * Изучения структуры PE-файлов * Редактирования и анализа ресурсов ---- ===== Граберы ===== Инструменты для перехвата и извлечения данных, таких как логины, ключи и сетевой трафик. ==== 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 не может напрямую * Уменьшает вероятность детекта античитами (видится как графический фильтр) **Минусы:** * Требует ручной настройки путей DLL и фильтрации ReShade-шейдеров * Может сбивать порядок захвата текстур/буферов ---- ==== Обход античитов ==== Некоторые игры с 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 (менее стабильный, но работает без инъекции):** * Выбрать DLL-соответствие API (d3d11.dll, opengl32.dll) * Поместить файлы NinjaRipper в корень игры * Запустить игру напрямую **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 ==== **Плюсы:** * Автоматический анализ подозрительных характеристик * Интеграция с VirusTotal и другими сервисами **Минусы:** * Нет динамического анализа * Закрытый исходный код **Лучше всего подходит для:** * Малварного анализа * Предварительного сканирования перед реверсом ===== Эмуляторы ===== Позволяют запускать или анализировать поведение исполняемых файлов в изолированной или эмулируемой среде. Часто используются для анализа вредоносного ПО и отладки. ==== QEMU ==== **Плюсы:** * Поддержка множества архитектур (x86, ARM, MIPS, RISC-V и др.) * Возможность запуска образов ОС * Используется в связке с GDB для отладки **Минусы:** * Сложность настройки * Менее удобен для Windows-приложений **Лучше всего подходит для:** * Эмуляции нестандартных или встраиваемых систем * Отладки low-level кода (прошивки, ядро) ---- ==== Bochs ==== **Плюсы:** * Аппаратная эмуляция на уровне инструкций CPU * Поддержка отладки и трассировки инструкций **Минусы:** * Медленная работа * Ограниченные возможности по сравнению с QEMU **Лучше всего подходит для:** * Отладки загрузчиков и низкоуровневого кода * Эмуляции старых x86-систем ---- ==== Unicorn Engine ==== **Плюсы:** * Быстрая и лёгкая интеграция * Скриптуемость на Python, C и др. * Поддержка нескольких архитектур **Минусы:** * Только эмуляция CPU (без ОС и API) * Требует ручной загрузки данных/регистров **Лучше всего подходит для:** * Частичной эмуляции фрагментов бинарного кода * Эмуляции shell-кода и вредоносных инструкций ---- ===== Декомпиляторы ===== Инструменты, преобразующие машинный код в псевдокод высокого уровня для лучшего понимания логики программы. ==== RetDec ==== **Плюсы:** * Open Source * Поддержка множества форматов (PE, ELF, Mach-O) * Интеграция с IDA и Ghidra **Минусы:** * Псевдокод часто содержит лишние конструкции * Нет полноценного GUI **Лучше всего подходит для:** * Декомпиляции редких форматов * Образовательных и исследовательских задач ---- ==== JEB Decompiler ==== **Плюсы:** * Поддержка Android, Java и native кода * Прекрасный GUI * Поддержка obfuscation-aware анализа **Минусы:** * Платный (дорогая лицензия) * Требует регистрации **Лучше всего подходит для:** * Анализа Android-приложений и DEX-файлов * Обратного инжиниринга Java-кода ---- ===== Инструменты упаковки/распаковки ===== ==== UPX ==== **Плюсы:** * Высокая степень сжатия * Поддержка множества форматов (PE, ELF, Mach-O) * Возможность распаковки **Минусы:** * Легко обнаруживается защитными средствами * Простота обхода **Лучше всего подходит для:** * Минимизации размера файлов * Тестирования unpacking-рутин в анализе вредоносного ПО ---- ==== MPRESS, ASPack, Themida (коммерческие) ==== **Плюсы:** * Защита от реверс-инжиниринга и анализа * Встроенные анти-дизассемблерные техники **Минусы:** * Трудности при отладке/анализе * Может вызывать ложные срабатывания антивирусов **Лучше всего подходит для:** * Защиты авторского ПО * Усложнения анализа вредоносного кода ---- ===== Мониторинг API ===== ==== API Monitor ==== **Плюсы:** * Перехват WinAPI и COM-вызовов в реальном времени * Настраиваемые фильтры * Возможность перехвата параметров и возвращаемых значений **Минусы:** * Только для Windows * Ограниченная автоматизация **Лучше всего подходит для:** * Анализа поведения исполняемых файлов * Поиска точек входа для отладки ---- ==== Procmon (Sysinternals) ==== **Плюсы:** * Логгирование всех файловых, реестровых и сетевых операций * Гибкая фильтрация событий **Минусы:** * Много лишнего шума * Нет возможности детальной трассировки кода **Лучше всего подходит для:** * Поведенческого анализа ПО * Обнаружения следов активности малвари ---- ===== Инструменты анти-анализа ===== Техники и утилиты, используемые для защиты программ от анализа, отладки и реверс-инжиниринга. ==== ScyllaHide (для x64dbg) ==== **Плюсы:** * Скрытие от отладчиков * Обход анти-отладочных проверок **Минусы:** * Требует настройки * Может быть несовместим с некоторыми конфигурациями **Лучше всего подходит для:** * Обхода защит в процессе отладки * Анализа защищённых бинарников ---- ==== VMProtect / Enigma Protector / Themida (анализируемые) ==== **Плюсы:** * Используют виртуализацию инструкций * Противодействуют статическому и динамическому анализу **Минусы:** * Сложны для реверса * Часто требуют написания собственных распаковщиков/декодеров **Лучше всего подходит для:** * Обучения анти-анализу * Анализа сложных вредоносных образцов ---- ==== Pafish (для песочниц и анализаторов) ==== **Плюсы:** * Проверяет наличие виртуализации, отладчиков, хуков * Используется как тест для песочниц и sandboxes **Минусы:** * Не защищает, а проверяет окружение **Лучше всего подходит для:** * Анализа среды исполнения * Тестирования эффективности анти-анализов reverseenengineering/soft.txt Последнее изменение: 2025/07/17 02:18 — Lex Войти