
Hex-Rays Decompiler Plugin für bessere Code-Navigation
| | | | | ___ \ / __ \ | | \ \ / / | |
| || | _____ | |/ /__ _ _ _ | / / ___ | | ___ \ V / _ __ | | ___ _ __ ___ _ __
| _ |/ _ \ / / // | | | / __| | / _ \ / _ |/ _ / | ' | |/ _ | '/ _ \ '|
| | | | __/> <| |\ \ (| | || __ \ _/\ () | (| | __/ /^\ \ |) | | () | | | __/ |
_| |/_//__| __,|_, |/_/_/ _,|_/ / ./||___/|| ___||
/ | | |
|/ |_|
Das Hex-Rays Decompiler-Plugin für eine bessere Codenavigation im RE-Prozess. CodeXplorer automatisiert die Code-Rekonstruktion von C++-Anwendungen oder moderner Malware wie Stuxnet, Flame, Equation, Animal Farm ... :octocat:
Das CodeXplorer-Plugin ist eines der ersten öffentlich verfügbaren Hex-Rays Decompiler-Plugins. Wir halten dieses Projekt seit Sommer 2013 aktuell und fügen regelmäßig neue Funktionen hinzu. Die interessantesten Funktionen von CodeXplorer wurden auf zahlreichen Sicherheitskonferenzen wie REcon, ZeroNights, H2HC, NSEC und BHUS vorgestellt 👾
Mitwirkende:
Alex Matrosov (@matrosov)
Eugene Rodionov (@rodionov)
Rodrigo Branco (@rrbranco)
Gabriel Barbosa (@gabrielnb)
Unterstützte Versionen der Hex-Rays-Produkte: Wir konzentrieren uns stets auf die neuesten Versionen von IDA und dem Decompiler, da wir versuchen, neue interessante Funktionen in neuen SDK-Versionen zu nutzen. Das bedeutet auch, dass wir nur mit den neuesten Versionen der Hex-Rays-Produkte getestet haben und keinen stabilen Betrieb mit älteren Versionen garantieren können.
Warum nicht IdaPython: Der gesamte Code wurde in C/C++ entwickelt, da dies der stabilere Weg ist, ein komplexes Plugin für den Hex-Rays Decompiler zu unterstützen.
Unterstützte Plattformen: x86/x64 für Win, Linux und Mac.
HexRaysCodeXplorer – Hex-Rays Decompiler-Plugin für eine einfachere Codenavigation. Das Rechtsklick-Kontextmenü im Pseudocode-Fenster zeigt die Befehle des CodeXplorer-Plugins:

💎 Hier sind die Hauptfunktionen des CodeXplorer-Plugins: 💎

Die rekonstruierte Struktur wird im „Ausgabefenster“ angezeigt. Detaillierte Informationen zur Typ-Rekonstruktion finden Sie im Blogbeitrag „Type REconstruction in HexRaysCodeXplorer“.
Das CodeXplorer-Plugin unterstützt auch die automatische Rekonstruktion von Typen in den IDA-Lokaltypenspeicher.

struct_local_data_storage zwei virtuelle Funktionstabellen identifiziert, und folglich wurden zwei entsprechende Strukturen generiert: struct_local_data_storage_VTABLE_0 und struct_local_data_storage_VTABLE_4.



Typen in Datei extrahieren – speichert alle Typinformationen (einschließlich rekonstruierter Typen) in einer Datei.
Navigation durch virtuelle Funktionsaufrufe im HexRays-Pseudocode-Fenster. Nach der Darstellung von C++-Objekten durch C-Strukturen ermöglicht diese Funktion die Navigation durch Mausklick auf virtuelle Funktionsaufrufe als Strukturfelder:



Der Objekt-Explorer unterstützt folgende Funktionen:
Automatische Strukturgenerierung für VTBL in IDA-Lokaltypen
Navigation in der Liste der virtuellen Tabellen und Sprung zur VTBL-Adresse im „IDA View“-Fenster per Klick
Anzeige von Hinweisen für die aktuelle Position in der Liste der virtuellen Tabellen
Anzeige der Kreuzreferenzliste durch Klick im Menü auf „Show XREFS to VTBL“


Der Batch-Modus enthält folgende Funktionen:
Beispiel (Typen und Ctrees für Funktionen mit dem Namenspräfix "crypto_" ausgeben):
idaq.exe -OHexRaysCodeXplorer:dump_types:dump_ctrees:CRYPTOcrypto_path_to_idb
Kompilierung:
Windows:
src/HexRaysCodeXplorer/PropertySheet.props in Notepad(++) und aktualisieren Sie die Werte von IDADIR und IDASDK, um auf den IDA-Installationspfad bzw. den IDA7-SDK-Pfad zu verweisen. Das HexRays-SDK sollte sich unter $IDADIR\plugins\hexrays_sdk befinden (wie standardmäßig)Release | x64 und Release x64 | x64Linux:
Mac:
.pmc-Dateierweiterung sollte .dylib seinexport 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.xcodeprojMit CMake:
============================================================================
Konferenzvorträge über das CodeXplorer-Plugin: