Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Ghidrathon — L'extension open-source de l'équipe FLARE pour ajouter la prise en charge de scripts Python 3 à Ghidra. | Kitploit
Outils/GitHubGitHub/mandiant/ghidrathon
Rétro-ingénierieScripting et AutomatisationAnalyse de MalwareAnalyse de BinairesArchived
GitHubmandiant/ghidrathon

Ghidrathon

L'extension open-source de l'équipe FLARE pour ajouter la prise en charge de scripts Python 3 à Ghidra.

Voir le dépôt
78865il y a 2 ansVérifié par Kitploit

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

Ghidrathon

GitHub Release GitHub Downloads (all assets, latest release) CI License

Ghidrathon est une extension Ghidra qui ajoute des capacités de script Python 3 à Ghidra. Pourquoi ? Ghidra prend en charge nativement les scripts en Java et en Jython. Malheureusement, de nombreux outils d'analyse open-source, comme capa, Unicorn Engine, angr, etc., sont écrits en Python 3, ce qui rend difficile, et dans certains cas impossible, l'utilisation de ces outils dans Ghidra. De plus, la communauté de la sécurité a publié plusieurs excellents plugins pour d'autres frameworks de rétro-ingénierie logicielle comme IDA Pro et Binary Ninja, mais là encore, parce que beaucoup de ces plugins utilisent Python 3, il est difficile de les porter vers Ghidra. Ghidrathon vous aide à utiliser des outils Python 3 existants et à en développer de nouveaux dans Ghidra, ainsi qu'à scripter Ghidra avec du Python moderne d'une manière qui s'intègre étroitement à l'interface utilisateur de Ghidra. Il remplace l'extension Python 2.7 existante implémentée via Jython. Cela inclut la fenêtre d'interpréteur interactive, l'intégration avec le Ghidra Script Manager et l'exécution de scripts en mode headless de Ghidra.

exemple

Veuillez consulter notre exemple de script Ghidra Python 3 ici pour un aperçu plus détaillé de l'écriture de scripts Python 3 pour Ghidra.

À découvrir :

  • La vue d'ensemble dans notre premier article de blog Ghidrathon

Installation de Ghidrathon

Prérequis

Suivez les étapes suivantes pour installer Ghidrathon dans votre environnement Ghidra :

  1. Téléchargez et décompressez la dernière version de Ghidrathon
  2. Exécutez les commandes suivantes avec l'interpréteur Python que vous souhaitez utiliser avec Ghidrathon (requirements.txt et ghidrathon_configure.py sont inclus dans la version) :
root@kitploit:~
$ python -m pip install -r requirements.txt
$ python ghidrathon_configure.py <absolute_path_to_ghidra_install_dir>

Remarque : ghidrathon_configure.py tente par défaut d'écrire un fichier nommé ghidrathon.save dans <absolute_path_to_ghidra_install_dir>. Vous pouvez spécifier le chemin où ce fichier est écrit en définissant la variable d'environnement GHIDRATHON_SAVE_PATH avant d'exécuter ghidrathon_configure.py et Ghidra :

root@kitploit:~
$ export GHIDRATHON_SAVE_PATH="/path/to/custom/dir" # Linux/MacOS
$ set GHIDRATHON_SAVE_PATH="C:\path\to\custom\dir"  # Windows

Remarque : il se peut que vous soyez invité à définir une variable d'environnement nommée JAVA_HOME. Celle-ci doit référencer le chemin absolu du JDK que vous avez configuré pour votre installation Ghidra.

  1. Installez l'extension Ghidrathon (.zip) dans Ghidra :
    • Via l'interface utilisateur de Ghidra :
      • Naviguez vers File > Install Extensions...
      • Cliquez sur le bouton vert +
      • Naviguez jusqu'à l'extension Ghidrathon (.zip)
      • Cliquez sur Ok
      • Facultatif
        • Sélectionnez Install Anyway si la fenêtre Extension Version Mismatch vous y invite
    • Dans un environnement limité :
      • Extrayez l'extension Ghidrathon (.zip) vers <absolute_path_to_ghidra_install_dir>\Ghidra\Extensions

Changer d'interpréteur Python

Vous pouvez faire passer Ghidrathon à un autre interpréteur Python en exécutant l'étape 2 avec le nouvel interpréteur Python.

Utiliser des environnements virtuels Python

Vous pouvez utiliser un environnement virtuel Python avec Ghidrathon en exécutant l'étape 2 depuis l'environnement virtuel. Pour passer à un autre environnement virtuel, exécutez simplement l'étape 2 depuis le nouvel environnement virtuel.

Utiliser Ghidrathon

Fenêtre de l'interpréteur Python 3

La fenêtre de l'interpréteur fournit un accès interactif à votre interpréteur Python 3. Cliquez sur "Window" et sélectionnez "Ghidrathon" pour ouvrir la fenêtre de l'interpréteur.

exemple

Intégration avec le Ghidra Script Manager

Ghidrathon s'intègre directement au Ghidra Script Manager, vous permettant de créer, modifier et exécuter des scripts Python 3 dans Ghidra. Cliquez sur "Create New Script" et sélectionnez "Python 3" pour créer un nouveau script Python 3. Cliquez sur "Run Script" ou "Run Editor's Script" pour exécuter votre script Python 3 et consultez la fenêtre Ghidra Console pour la sortie du script.

exemple

Mode headless de Ghidra

Ghidrathon vous aide à exécuter des scripts Python 3 en mode headless de Ghidra. Exécutez le script analyzeHeadless situé dans votre dossier d'installation Ghidra, spécifiez votre script Python 3 et consultez la fenêtre de console pour la sortie du script.

root@kitploit:~
$ analyzeHeadless C:\Users\wampus example -process example.o -postScript ghidrathon_example.py
[...]
INFO  SCRIPT: C:\Users\wampus\.ghidra\.ghidra_10.0.3_PUBLIC\Extensions\Ghidrathon-master\ghidra_scripts\ghidrathon_example.py (HeadlessAnalyzer)
Function _init @ 0x101000: 3 blocks, 8 instructions
Function FUN_00101020 @ 0x101020: 1 blocks, 2 instructions
Function __cxa_finalize @ 0x101040: 1 blocks, 2 instructions
Function printf @ 0x101050: 1 blocks, 2 instructions
Function _start @ 0x101060: 1 blocks, 13 instructions
Function deregister_tm_clones @ 0x101090: 4 blocks, 9 instructions
Function register_tm_clones @ 0x1010c0: 4 blocks, 14 instructions
Function __do_global_dtors_aux @ 0x101100: 5 blocks, 14 instructions
[...]
INFO  REPORT: Post-analysis succeeded for file: /example.o (HeadlessAnalyzer)
INFO  REPORT: Save succeeded for processed file: /example.o (HeadlessAnalyzer)

Pour plus d'informations sur l'exécution de Ghidra en mode headless, consultez <absolute_path_to_ghidra_install_dir>/support/analyzeHeadlessREADME.html.

Modules Python tiers

L'une de nos principales motivations pour développer Ghidrathon était de permettre l'utilisation de modules Python 3 tiers dans Ghidra. Vous pouvez installer un module et commencer à l'utiliser dans Ghidra comme vous le feriez avec une configuration Python typique. Cela s'applique également aux modules que vous avez précédemment installés. Par exemple, nous pouvons installer et utiliser Unicorn pour émuler du code ARM dans Ghidra.

exemple

Écrire des scripts Ghidra Python 3

Ghidrathon offre une expérience de script qui reflète étroitement les extensions Java et Jython de Ghidra, notamment en rendant les variables d'état d'instance de GhidraScript, par ex. currentProgram, et les méthodes de FlatProgramAPI, par ex. findBytes, disponibles à la portée builtins de Python. Cela signifie que tous les modules Python importés par votre code ont accès à ces variables et méthodes. Ghidrathon s'écarte légèrement des extensions Java et Jython de Ghidra en exposant les variables d'état de GhidraScript comme des appels de fonction Python plutôt que des accès directs, par ex. votre code Python 3 doit accéder à currentProgram en utilisant l'appel de fonction currentProgram(). Ce petit changement garantit que votre code Python 3 reçoit les bonnes variables d'état GhidraScript pendant l'exécution. Veuillez consulter notre exemple de script Ghidra Python 3 ici pour un aperçu plus détaillé de l'écriture de scripts Python 3 pour Ghidra.

Comment cela fonctionne-t-il ?

Ghidrathon relie votre installation Python locale à Ghidra en utilisant le projet open-source Jep. Essentiellement, votre interpréteur Python local s'exécute à l'intérieur de Ghidra avec accès à tous vos packages Python et à l'API de script standard de Ghidra. Ghidrathon fonctionne également avec les environnements virtuels Python, vous aidant à créer, isoler et gérer des packages que vous pourriez ne vouloir installer que pour une utilisation dans Ghidra. Parce que Ghidrathon utilise votre installation Python locale, vous contrôlez la version de Python et l'environnement qui s'exécutent dans Ghidra.

Pour plus d'informations sur la façon dont Jep fonctionne pour intégrer Python dans Java, consultez sa documentation ici.

Considérations

Ghidrathon utilise la bibliothèque open-source Jep qui utilise l'interface native Java (JNI) pour intégrer Python dans la JVM. Les développeurs de Ghidra déconseillent l'utilisation de JNI dans Ghidra pour les raisons discutées ici.

Télécharger l’outil
OutilVersionSource
Ghidrathon>= 4.0.0https://github.com/mandiant/Ghidrathon/releases
Python>= 3.8.0https://www.python.org/downloads
Jep== 4.2.0https://pypi.org/project/jep
Ghidra>= 10.3.2https://github.com/NationalSecurityAgency/ghidra/releases
Java>= 17.0.0https://adoptium.net/temurin/releases