
Plugin Hex-Rays Decompiler pour une meilleure navigation dans le code
| | | | | ___ \ / __ \ | | \ \ / / | |
| || | _____ | |/ /__ _ _ _ | | / ___ | | ___ \ V / _ __ | | ___ _ __ ___ _ __
| _ |/ _ \ / / // | | | / __| | / _ \ / _ |/ _ / | ' | |/ _ | '/ _ \ '|
| | | | __/> <| |\ \ (| | || __ \ _/\ () | (| | __/ /^\ \ |) | | () | | | __/ |
_| |/_//__| __,|_, |/_/_/ _,|_/ / ./||___/|| ___||
/ | | |
|/ |_|
============================================================================
Le plugin Hex-Rays Decompiler pour une meilleure navigation dans le code lors du processus de RE. CodeXplorer automatise la REconstruction de code d'applications C++ ou de malwares modernes comme Stuxnet, Flame, Equation, Animal Farm ... :octocat:
Le plugin CodeXplorer est l'un des premiers plugins Hex-Rays Decompiler disponibles publiquement. Nous maintenons ce projet à jour depuis l'été 2013 et continuons à ajouter régulièrement de nouvelles fonctionnalités. Les fonctionnalités les plus intéressantes de CodeXplorer ont également été présentées lors de nombreuses conférences de sécurité telles que : REcon, ZeroNights, H2HC, NSEC et BHUS 👾
Contributeurs :
Alex Matrosov (@matrosov)
Eugene Rodionov (@rodionov)
Rodrigo Branco (@rrbranco)
Gabriel Barbosa (@gabrielnb)
Versions prises en charge des produits Hex-Rays : nous nous concentrons toujours sur les dernières versions d'IDA et du Decompiler car nous essayons d'utiliser les nouvelles fonctionnalités intéressantes des dernières versions du SDK. Cela signifie également que nous testons uniquement sur les dernières versions des produits Hex-Rays et que nous ne garantissons pas un fonctionnement stable sur les versions précédentes.
Pourquoi pas IdaPython : tout le code est développé en C/C++ car c'est une manière plus stable de supporter un plugin complexe pour Hex-Rays Decompiler.
Plateformes prises en charge : x86/x64 pour Win, Linux et Mac.
HexRaysCodeXplorer - Plugin Hex-Rays Decompiler pour une navigation plus facile dans le code. Le menu contextuel (clic droit) dans la fenêtre Pseudocode affiche les commandes du plugin CodeXplorer :

💎 Voici les principales fonctionnalités du plugin CodeXplorer : 💎

La structure reconstruite est affichée dans la « Fenêtre de sortie ». Des informations détaillées sur la fonctionnalité de reconstruction de type sont fournies dans l'article de blog « Type REconstruction in HexRaysCodeXplorer ».
Le plugin CodeXplorer prend également en charge la reconstruction automatique de type dans le stockage des types locaux d'IDA.

struct_local_data_storage, deux tables de fonctions virtuelles ont été identifiées et, par conséquent, deux structures correspondantes ont été générées : struct_local_data_storage_VTABLE_0 et struct_local_data_storage_VTABLE_4.



Extraction des Types vers un fichier – exporte toutes les informations de type (y compris les types reconstruits) vers un fichier.
Navigation dans les appels de fonctions virtuelles dans la fenêtre Pseudocode HexRays. Après avoir représenté les objets C++ par des structures C, cette fonctionnalité permet de naviguer par clic de souris vers les appels de fonctions virtuelles en tant que champs de structure :



Object Explorer prend en charge les fonctionnalités suivantes :
Génération automatique de structures pour VTBL dans les types locaux d'IDA
Navigation dans la liste des tables virtuelles et saut vers l'adresse VTBL dans la fenêtre « IDA View » par clic
Affichage des indications pour la position actuelle dans la liste des tables virtuelles
Affichage de la liste des références croisées par clic dans le menu « Show XREFS to VTBL »


Le mode Batch contient les fonctionnalités suivantes :
Exemple (export des types et des ctrees pour les fonctions avec le préfixe de nom "crypto_") :
idaq.exe -OHexRaysCodeXplorer:dump_types:dump_ctrees:CRYPTOcrypto_path_to_idb
Compilation :
Windows :
src/HexRaysCodeXplorer/PropertySheet.props dans le Bloc-notes(++) et mettez à jour les valeurs des chemins IDADIR et IDASDK pour pointer vers le chemin d'installation d'IDA et le chemin du SDK IDA7 en conséquence. Le SDK HexRays doit se trouver dans $IDADIR\plugins\hexrays_sdk (comme par défaut)Release | x64 et Release x64 | x64Linux :
Mac :
.pmc d'IDA 7.0 doit être .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.xcodeprojAvec CMake :
============================================================================
Conférences sur le plugin CodeXplorer :