Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ghidralligator — Emulatore pcode multi-architettura che utilizza Ghidra/Sleigh per il fuzzing AFL++ di binari, firmware e target embedded; rileva bug di corruzione della memoria tramite ASAN. | Kitploit
Strumenti/GitHubGitHub/airbus-cyber/ghidralligator
Sicurezza Sistemi EmbeddedAnalisi Dinamica (Sandboxing)Analisi delle VulnerabilitàFuzzingAnalisi di BinariAnalisi del Firmware
GitHubairbus-cyber/ghidralligator

ghidralligator

Emulatore pcode multi-architettura che utilizza Ghidra/Sleigh per il fuzzing AFL++ di binari, firmware e target embedded; rileva bug di corruzione della memoria tramite ASAN.

Vedi Repository
331252 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Ghidralligator_logo

Ghidralligator

License

Ghidralligator è un emulatore pcode multi-architettura in C++ basato su Ghidra libsla, progettato per il fuzzing con AFL++.

Consente di eseguire fuzzing basato su emulazione mantenendo prestazioni interessanti quando si ha a che fare con binari che girano su architetture esotiche.

La sua natura estensibile rende facile emulare letteralmente qualsiasi architettura (purché si possa scrivere il corrispondente file di specifica Sleigh) per fare fuzzing su un qualsiasi pezzo di codice.

Installazione

Ghidralligator può essere eseguito su sistemi Linux. Richiede solo una versione di GCC che supporti C++ 17 (testata e funzionante con GCC versione 12.2.0).

Le dipendenze di Ghidra sono incluse nel progetto stesso, nella directory "./src/".

Per installare correttamente Ghidralligator, è necessario scaricare e compilare AFL++ come segue:

  1. Clonare e installare AFL++
root@kitploit:~
git clone https://github.com/AFLplusplus/AFLplusplus
cd AFLplusplus
make distrib
sudo make install
  1. Clonare e compilare Ghidralligator:
root@kitploit:~
git clone https://github.com/airbus-cyber/ghidralligator
cd ghidralligator
make ghidralligator
  1. Recuperare il file .sla appropriato per l'architettura che si desidera emulare. Puoi scrivere il file .sla da solo, oppure scaricare quelli già esistenti dal repository ufficiale di Ghidra (qui). Puoi trovare un set di file .sla predefiniti inclusi nel progetto nella cartella "./specfiles".

Cos'è Ghidralligator?

Ghidralligator mira a colmare il divario tra gli emulatori già esistenti che richiedono molta configurazione e modifiche manuali per strumentare, eseguire e fare fuzzing del binario, e gli emulatori "scatola nera" che sono difficilmente estensibili e non adatti ad applicazioni specifiche e inusuali.

Il suo uso principale è la ricerca di vulnerabilità in binari closed-source, e in particolare quando si ha come target applicazioni/firmware di dispositivi embedded che girano su architetture esotiche.

Ghidralligator è il successore di afl_ghidra_emu. Migliora notevolmente la velocità di esecuzione e include funzionalità utili come il rilevamento della corruzione della memoria heap (ASAN).

È possibile rilevare un'ampia varietà di corruzioni di memoria: operazioni di lettura/scrittura fuori dai limiti, use-after-free, double-free, lettura di memoria non inizializzata, violazioni di accesso in lettura/scrittura/esecuzione...

Per eseguire Ghidralligator è necessario effettuare i seguenti passaggi:

  • Impostare un file di configurazione per definire il layout del memory mapping e lo stato iniziale del programma
  • Progettare gli hook.

Documentazione

  • File di configurazione di Ghidralligator : Documentazione per la scrittura del file di configurazione.
  • Hook di Ghidralligator : Documentazione per la scrittura del file degli user-hooks.

Tutorial

Per capire come usare Ghidralligator, è stato realizzato un esempio di programma vulnerabile, compilato su diverse architetture.

Puoi eseguire run_examples.sh per vedere i meccanismi ASAN in azione.

Avvio rapido

Ghidralligator viene fornito con diverse opzioni da riga di comando:

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]


Utilizzo per un'emulazione standard:

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

gif di replay

Utilizzo per una sessione di 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 di fuzzing

Limitazioni

  • Ghidralligator può emulare codice grazie al file .sla (file di definizione delle istruzioni Sleigh). I file SLA forniti dalla comunità di Ghidra possono essere implementati solo parzialmente. Per ottenere un'emulazione coerente, gli utenti potrebbero dover completare la relativa definizione dell'architettura Sleigh o aggiungere alcuni hook.

  • Ghidralligator è basato su Ghidra, che non è progettato per avere alte prestazioni a scopo di emulazione. Pertanto non è in grado di competere con fuzzer classici come afl_qemu su architetture standard (binari x86 Linux/Windows).

  • Poiché il progetto Ghidra è in costante evoluzione, non è consigliato aggiornare manualmente le dipendenze di Ghidralligator per le versioni future di Ghidra. Lo strumento è stato costruito e testato con le sorgenti del decompilatore Ghidra 11.0.3. Potrebbe rompersi con versioni future, e la compatibilità all'indietro con versioni precedenti alla 11.0.3 non è supportata. Questo è trasparente per l'utente, poiché le dipendenze di Ghidra sono fornite in questo repository.

Licenze

Ghidralligator è rilasciato sotto la licenza Apache versione 2.0.

Il codice di Ghidralligator include codice dal progetto Ghidra della NationalSecurityAgency, rilasciato sotto la licenza Apache 2.0.

Il parser del file di configurazione di Ghidralligator include la libreria json C++ di Niels Lohmann, rilasciata sotto la licenza MIT.

Il modulo Ghidralligator include la libreria xxHash di Yann Collet, rilasciata sotto la licenza BSD 2-Clause.

Autori

  • Flavian Dola - Airbus (Twitter)
  • Guillaume Orlando - Airbus (Twitter)
Scarica lo strumento