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
Outils/GitHubGitHub/airbus-cyber/ghidralligator
Sécurité des Systèmes EmbarquésAnalyse Dynamique (Sandboxing)Analyse des VulnérabilitésFuzzingAnalyse de BinairesAnalyse de Micrologiciel
GitHubairbus-cyber/ghidralligator

ghidralligator

Émulateur pcode multi-architecture utilisant Ghidra/Sleigh pour le fuzzing AFL++ de binaires, de firmwares et de cibles embarquées ; détecte les bugs de corruption de la mémoire via ASAN.

Voir le dépôt
331255il 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

Ghidralligator_logo

Ghidralligator

License

Ghidralligator est un émulateur pcode multi-architecture en C++ basé sur la libsla de Ghidra, conçu pour le fuzzing avec AFL++.

Il permet d'effectuer du fuzzing basé sur l'émulation tout en conservant des performances intéressantes lorsqu'il s'agit de binaires fonctionnant sur des architectures exotiques.

Sa nature extensible permet d'émuler littéralement toutes les architectures (à condition de pouvoir écrire le fichier de spécification Sleigh correspondant) pour fuzzer un morceau de code arbitraire.

Installation

Ghidralligator peut fonctionner sur un système Linux. Il nécessite uniquement une version de GCC prenant en charge la version 17 du C++ (testée et fonctionnelle avec la version 12.2.0 de GCC).

Les dépendances Ghidra sont intégrées au projet lui-même, sous le répertoire "./src/".

Pour installer correctement Ghidralligator, vous devez télécharger et compiler AFL++ comme suit :

  1. Clonez et installez AFL++
root@kitploit:~
git clone https://github.com/AFLplusplus/AFLplusplus
cd AFLplusplus
make distrib
sudo make install
  1. Clonez et compilez Ghidralligator :
root@kitploit:~
git clone https://github.com/airbus-cyber/ghidralligator
cd ghidralligator
make ghidralligator
  1. Récupérez le fichier .sla approprié pour l'architecture que vous souhaitez émuler. Vous pouvez écrire vous-même le fichier .sla, ou télécharger des fichiers déjà existants depuis le dépôt officiel de Ghidra (ici). Vous trouverez un ensemble de fichiers .sla par défaut inclus dans le projet, dans le dossier "./specfiles".

Qu'est-ce que Ghidralligator ?

Ghidralligator vise à combler le fossé entre les émulateurs existants qui nécessitent beaucoup de configuration et de modifications manuelles pour instrumenter, exécuter et fuzzer le binaire, et les émulateurs « boîte noire » qui sont difficilement extensibles et ne conviennent pas aux applications spécifiques et inhabituelles.

Son utilisation principale est la recherche de vulnérabilités dans les binaires à code source fermé, et en particulier lors du ciblage d'applications / firmwares de dispositifs embarqués fonctionnant sur des architectures exotiques.

Ghidralligator est le successeur de afl_ghidra_emu. Il améliore considérablement la vitesse d'exécution et inclut des fonctionnalités utiles comme la détection de corruption de la mémoire heap (ASAN).

Un large éventail de corruptions mémoire peut être détecté : opérations de lecture/écriture hors limites, use-after-free, double-free, lecture de mémoire non initialisée, violations d'accès en lecture/écriture/exécution...

Pour exécuter Ghidralligator, les étapes suivantes doivent être effectuées :

  • Définir un fichier de configuration pour spécifier la disposition du mappage mémoire et l'état initial du programme
  • Concevoir des hooks.

Documentation

  • Fichier de configuration Ghidralligator : Documentation pour la rédaction du fichier de configuration.
  • Hooks Ghidralligator : Documentation pour la rédaction du fichier de hooks utilisateur.

Tutoriels

Pour comprendre comment utiliser Ghidralligator, un exemple de programme vulnérable, compilé sur différentes architectures, a été créé.

Vous pouvez exécuter run_examples.sh pour voir les mécanismes ASAN en action.

Démarrage rapide

Ghidralligator est fourni avec plusieurs options de ligne de commande :

root@kitploit:~
usage: ./ghidralligator [OPTION]

  -h 			Print this help and exit.

  -m [replay|fuzz]	Specify an emulation strategy. [REQUIRED]
				In 'replay' mode, the emulator will only launch the program once, exiting after a single loop.
				In 'fuzz' mode, this program must be launched through AFL.

  -c [FILENAME]		Specify the emulator json configuration file to load. [REQUIRED]

  -i [FILENAME]		Specify a test-case file to insert during a replay session. [OPTIONAL]

  -I 			Display info log (/!\ Slow down the emulation). [OPTIONAL]
  -D 			Display debug and info log (/!\ Slow down the emulation). [OPTIONAL]

  -t 			Store log in ./ghidraligator.log file. [OPTIONAL]


Utilisation pour une émulation standard :

root@kitploit:~
$ ./ghidralligator -m replay -c examples/x86/config.json -I -i examples/x86/input/normal_use_case.bin

gif replay

Utilisation pour une session de fuzzing AFL++ standard :

root@kitploit:~
mkdir afl_inputs afl_outputs
echo -n "AAAAAA" > ./afl_inputs/input.bin
$ AFL_SKIP_BIN_CHECK=1 afl-fuzz -D -i ./afl_inputs -o ./afl_outputs/ -- ./ghidralligator -m fuzz -c examples/x86/config.json

gif fuzzing

Limites

  • Ghidralligator peut émuler du code grâce au fichier .sla (fichier de définition d'instructions Sleigh). Les fichiers SLA fournis par la communauté Ghidra peuvent être partiellement implémentés. Pour obtenir une émulation cohérente, les utilisateurs peuvent avoir à compléter la définition d'architecture sleigh associée ou à ajouter des hooks.

  • Ghidralligator est basé sur Ghidra, qui n'est pas conçu pour avoir des performances élevées dans un but d'émulation. Il ne peut donc pas rivaliser avec les fuzzers classiques comme afl_qemu sur les architectures standard (binaires x86 linux / windows).

  • Comme le projet Ghidra est en constante évolution, il n'est pas recommandé de mettre à jour manuellement les dépendances de Ghidralligator pour les futures versions de Ghidra. L'outil a été construit et testé avec les sources du décompilateur Ghidra 11.0.3. Il pourrait ne pas fonctionner avec les versions futures, et la rétrocompatibilité avec les versions antérieures à 11.0.3 n'est pas supportée. Cela est transparent pour l'utilisateur, car les dépendances Ghidra sont fournies dans ce dépôt.

Licences

Ghidralligator est publié sous la licence Apache version 2.0.

Le code de Ghidralligator inclut du code provenant du projet Ghidra de NationalSecurityAgency, publié sous la licence Apache 2.0.

L'analyseur du fichier de configuration de Ghidralligator inclut la bibliothèque json C++ de Niels Lohmann, publiée sous la licence MIT.

Le module Ghidralligator inclut la bibliothèque xxHash de Yann Collet, publiée sous la licence BSD 2-Clause.

Auteurs

  • Flavian Dola - Airbus (Twitter)
  • Guillaume Orlando - Airbus (Twitter)
Télécharger l’outil