Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/rehints/hexrayscodexplorer
Статический анализОбратная инженерияОтладчикиАнализ вредоносных программАнализ Бинарных Файлов
GitHubrehints/hexrayscodexplorer

HexRaysCodeXplorer

Плагин для декомпилятора Hex-Rays для улучшенной навигации по коду.

Репозиторий
2.6k4138 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

| | | | | ___ \ / __ \ | | \ \ / / | |
| || | _____ | |/ /__ _ _ _ | / / ___ | | ___ \ V / _ __ | | ___ _ __ ___ _ __ | _ |/ _ \ / / // | | | / __| | / _ \ / _ |/ _ / | ' | |/ _ | '/ _ \ '| | | | | __/> <| |\ \ (| | || __ \ _/\ () | (| | __/ /^\ \ |) | | () | | | __/ |
_| |
/_//__| __,|_, |/_/_/ _,|_/ / ./||___/|| ___||
/ | | |
|
/ |_|

License: GPL v3 Code Climate Issue Count

Плагин для декомпилятора Hex-Rays, упрощающий навигацию по коду в процессе обратного проектирования. CodeXplorer автоматизирует реконструкцию кода C++-приложений или современного вредоносного ПО, такого как Stuxnet, Flame, Equation, Animal Farm … :octocat:

Плагин CodeXplorer — один из первых публично доступных плагинов для декомпилятора Hex-Rays. Мы поддерживаем этот проект с лета 2013 года и регулярно добавляем новые функции. Наиболее интересные возможности CodeXplorer были представлены на многочисленных конференциях по безопасности: REcon, ZeroNights, H2HC, NSEC и BHUS 👾

Авторы:

Alex Matrosov (@matrosov)

Eugene Rodionov (@rodionov)

Rodrigo Branco (@rrbranco)

Gabriel Barbosa (@gabrielnb)

Поддерживаемые версии продуктов Hex-Rays: мы всегда ориентируемся на последние версии IDA и декомпилятора, чтобы использовать новые интересные возможности в новых версиях SDK. Это также означает, что мы тестируем только на последних версиях продуктов Hex-Rays и не гарантируем стабильную работу на предыдущих.

Почему не IdaPython: весь код разработан на C/C++, так как это более стабильный способ поддержки сложного плагина для декомпилятора Hex-Rays.

Поддерживаемые платформы: x86/x64 для Windows, Linux и Mac.

HexRaysCodeXplorer — плагин для декомпилятора Hex-Rays, упрощающий навигацию по коду. Контекстное меню правой кнопки мыши в окне псевдокода содержит команды плагина CodeXplorer:

1

💎 Вот основные возможности плагина CodeXplorer: 💎

  • Автоматическая реконструкция типов для C++-объектов. Чтобы реконструировать тип с помощью HexRaysCodeXplorer, выберите переменную, содержащую указатель на экземпляр позиционно-независимого кода или на объект, и кликните правой кнопкой мыши, затем выберите в контекстном меню опцию «REconstruct Type»:

2

Реконструированная структура отображается в «Output window». Подробная информация о функции реконструкции типов приведена в сообщении блога «Type REconstruction in HexRaysCodeXplorer».

Также плагин CodeXplorer поддерживает автоматическую реконструкцию типов в локальное хранилище типов IDA.

6

  • Идентификация таблиц виртуальных функций — автоматически определяет ссылки на таблицы виртуальных функций во время реконструкции типов. Когда ссылка на таблицу виртуальных функций обнаружена, плагин генерирует соответствующую C-структуру. Как показано ниже, при реконструкции struct_local_data_storage были обнаружены две таблицы виртуальных функций, и в результате были сгенерированы две соответствующие структуры: struct_local_data_storage_VTABLE_0 и struct_local_data_storage_VTABLE_4.

12

  • Визуализация C-tree графа — специальная древовидная структура, представляющая декомпилированную процедуру в терминах citem_t (hexrays.hpp). Полезная функция для понимания работы декомпилятора. Выделенный узел графа соответствует текущей позиции курсора в окне псевдокода HexRays:

3

  • Ctree Item View — отображает ctree-представление для выделенного элемента:

16

  • Extract Ctrees to File — вычисляет SHA1-хеш и выгружает все ctree в файл.

14

  • Extract Types to File — выгружает всю информацию о типах (включая реконструированные типы) в файл.

  • Навигация по вызовам виртуальных функций в окне псевдокода HexRays. После представления C++-объектов C-структурами эта функция позволяет переходить по клику мыши к вызовам виртуальных функций как к полям структуры:

4

  • Jump to Disasm — небольшая функция для перехода к ассемблерному коду в окно «IDA View» из текущей строки псевдокода. Помогает найти место в ассемблерном коде, соответствующее декомпилированной строке.

8

  • Object Explorer — удобный интерфейс для навигации по структурам таблиц виртуальных функций (VTBL). Object Explorer выводит информацию о VTBL в пользовательское окно просмотра IDA. Окно вывода отображается при выборе опции «Object Explorer» в контекстном меню правой кнопки мыши:

5

Object Explorer поддерживает следующие функции:

  • Автоматическая генерация структур для VTBL в локальные типы IDA

  • Навигация по списку виртуальных таблиц и переход к адресу VTBL в окне «IDA View» по клику

  • Отображение подсказок для текущей позиции в списке виртуальных таблиц

  • Отображение списка перекрёстных ссылок при клике по пункту меню «Show XREFS to VTBL»

11

  • Поддержка автоматического разбора RTTI-объектов:

13

Пакетный режим содержит следующие функции:

  • Пакетный режим — полезная функция для использования CodeXplorer при обработке нескольких файлов без какого-либо взаимодействия с пользователем. Мы добавили эту функцию после исследования Black Hat в 2015 году для обработки 2 миллионов образцов.
root@kitploit:~
Example (dump types and ctrees for functions with name prefix "crypto_"):
idaq.exe -OHexRaysCodeXplorer:dump_types:dump_ctrees:CRYPTOcrypto_path_to_idb

Компиляция:

Windows:

  • Откройте решение в Visual Studio
  • Откройте файл src/HexRaysCodeXplorer/PropertySheet.props в notepad(++) и обновите значения путей IDADIR и IDASDK, указав путь к установке IDA и путь к IDA7 SDK соответственно. HexRays SDK должен находиться в $IDADIR\plugins\hexrays_sdk (как по умолчанию)
  • Соберите конфигурации Release | x64 и Release x64 | x64

Linux:

  • cd src/HexRaysCodeXplorer/
  • IDA_DIR=<PATH_TO_IDA> IDA_SDK=<PATH_TO_IDA_SDK> EA64=0 make -f makefile.lnx
  • IDA_DIR=<PATH_TO_IDA> IDA_SDK=<PATH_TO_IDA_SDK> EA64=0 make -f makefile.lnx install

Mac:

  • cd src/HexRaysCodeXplorer/
  • IDA_DIR=<PATH_TO_IDA> IDA_SDK=<PATH_TO_IDA_SDK> make -f makefile.mac
  • Makefile для Mac, возможно, потребует ручной правки; приветствуются pull request'ы!
  • Расширение файла .pmc для IDA 7.0 должно быть .dylib
  • bash$ export IDA_DIR="/Applications/IDA\ Pro\ 7.0/ida.app/Contents/MacOS" && export IDA_SDK="/Applications/IDA\ Pro\ 7.0/ida.app/Contents/MacOS/idasdk" && make -f makefile7.mac
  • Или откройте проект в Xcode HexRaysCodeXplorer.xcodeproj

С помощью CMake:

  • cd src/HexRaysCodeXplorer/
  • mkdir build && cd build
  • cmake .. -DIdaSdk_ROOT_DIR=<PATH_TO_IDA_SDK> -DHexRaysSdk_ROOT_DIR=<PATH_TO_HEXRAYS_SDK>
  • cmake --build . --config Release

============================================================================

Доклады на конференциях о плагине CodeXplorer:

  • 2015
  • «Distributing the REconstruction of High-Level IR for Large Scale Malware Analysis», BHUS [слайды]
  • «Object Oriented Code RE with HexraysCodeXplorer», NSEC [слайды]
  • 2014
  • «HexRaysCodeXplorer: object oriented RE for fun and profit», H2HC [слайды]
  • 2013
  • «HexRaysCodeXplorer: make object-oriented RE easier», ZeroNights [слайды]
  • «Reconstructing Gapz: Position-Independent Code Analysis Problem», REcon [слайды]
Скачать инструмент