Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
IDA-Ghidra-bridge — Serveurs de pont JSON TCP pour IDA Pro et Ghidra exposant la décompilation, les références croisées, les symboles, les vtables, le RTTI et le patch mémoire à des scripts externes et des pipelines automatisés. | Kitploit
Outils/GitHubGitHub/oscarsantanaarias/ida-ghidra-bridge
Analyse StatiqueAnalyse de CodeAnalyse Dynamique de Code (DAST)Rétro-ingénierieScripting et AutomatisationDébogueursUtilitaires et FrameworksAnalyse de BinairesRétro-Ingénierie Assistée par IA
GitHuboscarsantanaarias/ida-ghidra-bridge

IDA-Ghidra-bridge

Serveurs de pont JSON TCP pour IDA Pro et Ghidra exposant la décompilation, les références croisées, les symboles, les vtables, le RTTI et le patch mémoire à des scripts externes et des pipelines automatisés.

Voir le dépôt
413il y a 7 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

IDA-Ghidra-bridge

Serveurs passerelles TCP JSON légers pour IDA Pro et Ghidra qui exposent des workflows de reverse engineering via un protocole socket simple.

Permet à des outils externes, scripts CLI, utilitaires Python et pipelines automatisés d'interroger la décompilation, les xrefs, les symboles, les tables virtuelles, le RTTI, les structures et la mémoire patchée sans interaction manuelle avec l'interface graphique.


Architecture & Cycle de vie

1. Liaison dynamique des ports & support multi-instances

Lorsque vous travaillez sur de gros projets de reverse engineering avec plusieurs binaires ouverts en même temps (par exemple client de jeu, launcher, proxys DLL et stubs simultanément) :

  • Les serveurs ne plantent pas si un port est déjà occupé.
  • Le serveur commence à scanner à partir de BASE_PORT = 5073 et sonde automatiquement les ports séquentiels (5073, 5074, 5075, 5076...) jusqu'à en trouver un disponible.
  • Chaque fenêtre IDA ou Ghidra se lie à son propre port indépendamment, sans conflits.

2. Rechargement à chaud & ré-exécution propre

Dans IDA Pro, l'interpréteur Python reste actif à travers plusieurs exécutions de scripts :

  • ID_Server.py enregistre le handle du serveur en cours dans builtins._ida_bridge_prev.
  • Si vous ré-exécutez ou rechargez le script dans la même instance IDA, il invoque automatiquement stop() sur l'instance précédente et joint son thread (join(3.0)), libérant proprement le port avant de démarrer le nouveau serveur.
  • Vous n'obtenez jamais Address already in use ni de threads orphelins en ré-exécutant le script.

3. Arrêt gracieux

  • Via socket : envoyez QUIT, STOP, EXIT ou SHUTDOWN à travers la connexion. Le serveur confirme avec {"ok": true, "shutdown": true} et se ferme immédiatement.
  • Dans IDA Pro : appelez ida_bridge_stop() directement depuis la CLI Python d'IDA, ou fermez simplement IDA (les threads daemon se terminent automatiquement).
  • Dans Ghidra : cliquez sur le bouton rouge Cancel dans le Script Manager de Ghidra (is_cancelled() est vérifié toutes les 1s via le timeout du socket), ou envoyez QUIT.

Installation & Configuration

IDA Pro

  1. Ouvrez votre base de données cible (.idb / .i64) dans IDA Pro.
  2. Dans la CLI Python d'IDA (ou via File -> Script file... / Alt+F7), exécutez :
    import ID_Server
    
  3. Le serveur commence à écouter sur 127.0.0.1:5073 (ou le port disponible suivant).
  4. Pour arrêter le serveur manuellement :
    ida_bridge_stop()
    

Ghidra

  1. Ouvrez votre programme cible dans Ghidra CodeBrowser.
  2. Dans le Script Manager (Window -> Script Manager), ajoutez le dossier contenant Ghidra_Server.py ou exécutez-le directement dans l'interpréteur Python.
  3. Le serveur se lie à 127.0.0.1:5073 (ou le prochain port libre).

Référence complète des commandes (les 39 commandes)

Les commandes sont de simples chaînes délimitées par des retours à la ligne, envoyées via TCP (127.0.0.1:<PORT>). Le serveur répond avec un objet JSON (ou du texte délimité par des tabulations pour les commandes héritées).

1. Navigation & Inspection

CommandeSyntaxeDescription
PINGPINGVérification de l'état. Retourne "pong".
CURRENTCURRENTRetourne l'adresse du curseur actuel, le nom de la fonction, sa taille, les instructions assembleur et le code décompilé.
NAMENAME <ea>Retourne le nom du symbole/de la fonction défini à <ea>.
FUNCFUNC <addr>Retourne les métadonnées complètes de la fonction, le point d'entrée, la taille, la signature, l'assembleur et la décompilation Hex-Rays/Ghidra.
DECOMPDECOMP <addr>Alias de FUNC. Décompile la fonction cible.
DISASMDISASM <ea> [n]Retourne les lignes de désassemblage pour [n] instructions à partir de <ea> (par défaut : 40).
FINDFIND <substr>Recherche insensible à la casse dans tous les symboles et noms de fonctions correspondant à <substr> (jusqu'à 300 correspondances).
EXPORTEXPORT [path]Exporte tous les symboles non factices, noms mangled et demangled vers un fichier texte (par défaut : C:\Contexto\ida_names.txt).
HELPHELPRetourne une liste JSON de toutes les commandes disponibles supportées par le serveur.
QUITQUITFerme gracieusement la connexion client et arrête le socket du serveur passerelle.

2. Références croisées & graphe d'appels

CommandeSyntaxeDescription
XREFXREF <addr>Liste toutes les références croisées entrantes (appels de code, lectures/écritures de données) ciblant <addr>.
XFROMXFROM <addr>Liste toutes les références croisées sortantes provenant de <addr>.
CALLERSCALLERS <addr>Filtre les références entrantes pour retourner uniquement les sites d'appel (y compris les appels indirects résolus).
READERSREADERS <addr>Filtre les références entrantes pour retourner uniquement les instructions qui lisent depuis <addr>.
WRITERSWRITERS <addr>Filtre les références entrantes pour retourner uniquement les instructions qui écrivent vers <addr>.
DECOMP_XREFDECOMP_XREF <addr>Décompile par lots chaque fonction appelante de <addr> en une seule requête.
IMPORTXREFIMPORTXREF <name>Localise tous les sites d'appel dans tout le binaire pour une API Windows/C importée (par ex. IMPORTXREF WSASendTo).
TRACETRACE <addr>Trace le flux d'exécution et les blocs de base autour de <addr>.

3. Pointeurs, mémoire & structures

CommandeSyntaxeDescription
READPTRREADPTR <addr> [count]Lit la mémoire sous forme de chaînes de pointeurs (32 bits ou 64 bits) et classe chaque cible (func, string, vtable).
FINDPTRFINDPTR <addr>Scanne les données globales et les tables pour trouver tout pointeur référençant <addr> (trouve les vtables, tables de dispatch).
STRUCTSTRUCT <addr> [n]Dumpe heuristiquement la mémoire contiguë en interprétant les champs comme des ints, floats, pointeurs et chaînes.
DEFSTRUCTDEFSTRUCT <name> [size]Crée une nouvelle structure nommée dans la bibliothèque de types de la base de données.
SETFIELDSETFIELD <struct> <off> <type> [name]Définit ou modifie un champ de structure à <off> avec <type> et un nom de champ optionnel.
MKPTRSMKPTRS <addr> [count]Convertit en masse les octets bruts de la base de données en pointeurs typés.
NEARSTRNEARSTR <addr>Trouve les références de chaînes situées à proximité dans les sections de code ou de données à portée.

4. Tables virtuelles & RTTI

CommandeSyntaxeDescription
VTABLEVTABLE <funcaddr>Identifie quelles tables virtuelles contiennent <funcaddr>, y compris les slots de méthodes voisins.
VTDUMPVTDUMP <addr> [count]Dumpe une table virtuelle entière : résout chaque slot vers son nom de méthode, offset et index.
RTTIRTTI <addr|Name>Parcourt les structures RTTI C++ MSVC (TypeDescriptor -> CompleteObjectLocator -> vftable) pour résoudre les hiérarchies de classes et les classes de base.

5. Scan de chaînes & d'octets

CommandeSyntaxeDescription
STRSTR <ascii>Recherche des chaînes ASCII dans tous les segments chargés.
WSTRWSTR <utf16>Recherche des chaînes larges UTF-16 dans tous les segments chargés.
BYTESBYTES <hex>Recherche des séquences brutes d'opcodes ou d'octets de données (par ex. BYTES 55 8B EC 83 EC).

6. Modification de la base de données & typage

Télécharger l’outil