
Плагин для декомпилятора Hex-Rays для улучшенной навигации по коду.
| | | / __| | / _ \ / _ |/ _ / | ' | |/ _ | '/ _ \ '|
| | | | __/> <| |\ \ (| | || __ \ _/\ () | (| | __/ /^\ \ |) | | () | | | __/ |Плагин для декомпилятора 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:

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

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

struct_local_data_storage были обнаружены две таблицы виртуальных функций, и в результате были сгенерированы две соответствующие структуры: struct_local_data_storage_VTABLE_0 и struct_local_data_storage_VTABLE_4.



Extract Types to File — выгружает всю информацию о типах (включая реконструированные типы) в файл.
Навигация по вызовам виртуальных функций в окне псевдокода HexRays. После представления C++-объектов C-структурами эта функция позволяет переходить по клику мыши к вызовам виртуальных функций как к полям структуры:



Object Explorer поддерживает следующие функции:
Автоматическая генерация структур для VTBL в локальные типы IDA
Навигация по списку виртуальных таблиц и переход к адресу VTBL в окне «IDA View» по клику
Отображение подсказок для текущей позиции в списке виртуальных таблиц
Отображение списка перекрёстных ссылок при клике по пункту меню «Show XREFS to VTBL»


Пакетный режим содержит следующие функции:
Example (dump types and ctrees for functions with name prefix "crypto_"):
idaq.exe -OHexRaysCodeXplorer:dump_types:dump_ctrees:CRYPTOcrypto_path_to_idb
Компиляция:
Windows:
src/HexRaysCodeXplorer/PropertySheet.props в notepad(++) и обновите значения путей IDADIR и IDASDK, указав путь к установке IDA и путь к IDA7 SDK соответственно. HexRays SDK должен находиться в $IDADIR\plugins\hexrays_sdk (как по умолчанию)Release | x64 и Release x64 | x64Linux:
Mac:
.pmc для IDA 7.0 должно быть .dylibexport 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.macHexRaysCodeXplorer.xcodeprojС помощью CMake:
============================================================================
Доклады на конференциях о плагине CodeXplorer: