
Plugin de Hex-Rays Decompiler para una mejor navegación del código
| | | / __| | / _ \ / _ |/ _ / | ' | |/ _ | '/ _ \ '|
| | | | __/> <| |\ \ (| | |El plugin para el descompilador Hex-Rays que facilita la navegación del código en el proceso de RE. CodeXplorer automatiza la REconstrucción de código de aplicaciones C++ o malware moderno como Stuxnet, Flame, Equation, Animal Farm ... :octocat:
El plugin CodeXplorer es uno de los primeros disponibles públicamente para el descompilador Hex-Rays. Mantenemos este proyecto actualizado desde el verano de 2013 y continuamos añadiendo nuevas funcionalidades con frecuencia. Además, las características más interesantes de CodeXplorer se han presentado en numerosas conferencias de seguridad como: REcon, ZeroNights, H2HC, NSEC y BHUS 👾
Contribuidores:
Alex Matrosov (@matrosov)
Eugene Rodionov (@rodionov)
Rodrigo Branco (@rrbranco)
Gabriel Barbosa (@gabrielnb)
Versiones compatibles de productos Hex-Rays: siempre nos enfocamos en las últimas versiones de IDA y el Descompilador porque intentamos usar nuevas funcionalidades interesantes en los nuevos lanzamientos del SDK. Esto también significa que hemos probado solo en las últimas versiones de productos Hex-Rays y no garantizamos un funcionamiento estable en versiones anteriores.
¿Por qué no IdaPython?: todo el código está desarrollado en C/C++ porque es una forma más estable de soportar un plugin complejo para el Descompilador Hex-Rays.
Plataformas compatibles: x86/x64 para Win, Linux y Mac.
HexRaysCodeXplorer – Plugin para el Descompilador Hex-Rays para una navegación más sencilla del código. El menú contextual (clic derecho) en la ventana de Pseudocódigo muestra los comandos del plugin CodeXplorer:

💎 Estas son las principales características del plugin CodeXplorer: 💎

La estructura reconstruida se muestra en la "Ventana de salida". Información detallada sobre la funcionalidad de reconstrucción de tipos se proporciona en la entrada del blog “Type REconstruction in HexRaysCodeXplorer”.
También el plugin CodeXplorer soporta la auto REconstrucción de tipos en el almacenamiento de tipos locales de IDA.

struct_local_data_storage, se identificaron dos tablas de funciones virtuales y, como resultado, se generaron dos estructuras correspondientes: struct_local_data_storage_VTABLE_0 y struct_local_data_storage_VTABLE_4.



Extraer tipos a archivo – volcar toda la información de tipos (incluyendo los tipos reconstruidos) en un archivo.
Navegación a través de llamadas a funciones virtuales en la ventana de Pseudocódigo de HexRays. Después de representar objetos C++ con estructuras C, esta funcionalidad permite la navegación haciendo clic en las llamadas a funciones virtuales como campos de una estructura:



El Explorador de objetos admite las siguientes características:
Generación automática de estructuras para VTBL en los tipos locales de IDA
Navegación en la lista de tablas virtuales y salto a la dirección VTBL en la ventana "IDA View" al hacer clic
Muestra sugerencias para la posición actual en la lista de tablas virtuales
Muestra la lista de referencias cruzadas al hacer clic en el menú "Show XREFS to VTBL"


El modo Batch contiene las siguientes características:
Ejemplo (volcar tipos y ctree para funciones con prefijo de nombre "crypto_"):
idaq.exe -OHexRaysCodeXplorer:dump_types:dump_ctrees:CRYPTOcrypto_path_to_idb
Compilación:
Windows:
src/HexRaysCodeXplorer/PropertySheet.props en el bloc de notas(++) y actualice los valores de las rutas IDADIR e IDASDK para que apunten a la ruta de instalación de IDA y a la ruta del SDK de IDA7 respectivamente. El SDK de HexRays debe estar en $IDADIR\plugins\hexrays_sdk (como por defecto).Release | x64 y Release x64 | x64Linux:
Mac:
.pmc para IDA 7.0 debe ser .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.xcodeprojCon CMake:
============================================================================
Charlas en conferencias sobre el plugin CodeXplorer: