Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ghidralligator — Emulador pcode multiarquitectura que utiliza Ghidra/Sleigh para el fuzzing con AFL++ de binarios, firmware y objetivos embebidos; detecta errores de corrupción de memoria mediante ASAN. | Kitploit
Herramientas/GitHubGitHub/airbus-cyber/ghidralligator
Seguridad de Sistemas EmbebidosAnálisis Dinámico (Sandboxing)Análisis de VulnerabilidadesFuzzingAnálisis de BinariosAnálisis de Firmware
GitHubairbus-cyber/ghidralligator

ghidralligator

Emulador pcode multiarquitectura que utiliza Ghidra/Sleigh para el fuzzing con AFL++ de binarios, firmware y objetivos embebidos; detecta errores de corrupción de memoria mediante ASAN.

Ver Repositorio
33125hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Ghidralligator_logo

Ghidralligator

License

Ghidralligator es un emulador de pcode multiarquitectura en C++ basado en libsla de Ghidra, diseñado para fuzzing con AFL++.

Permite realizar fuzzing basado en emulación manteniendo unas prestaciones interesantes al tratar con binarios que se ejecutan en arquitecturas exóticas.

Su naturaleza extensible hace que sea fácil emular literalmente cualquier arquitectura (siempre que puedas escribir el archivo de especificación Sleigh correspondiente) para fuzzear un fragmento de código arbitrario.

Instalación

Ghidralligator puede ejecutarse en sistemas Linux. Solo requiere disponer de una versión de GCC que soporte C++ versión 17 (probado y funcionando con GCC versión 12.2.0).

Las dependencias de Ghidra están integradas en el propio proyecto, bajo el directorio "./src/".

Para instalar Ghidralligator correctamente, debes descargar y compilar AFL++ de la siguiente manera:

  1. Clona e instala AFL++
root@kitploit:~
git clone https://github.com/AFLplusplus/AFLplusplus
cd AFLplusplus
make distrib
sudo make install
  1. Clona y compila Ghidralligator:
root@kitploit:~
git clone https://github.com/airbus-cyber/ghidralligator
cd ghidralligator
make ghidralligator
  1. Obtén el archivo .sla adecuado para la arquitectura que quieras emular. Puedes escribir el archivo .sla por ti mismo, o descargar los ya existentes del repositorio oficial de Ghidra (aquí). Puedes encontrar un conjunto de archivos .sla predeterminados incluidos en el proyecto, en la carpeta "./specfiles".

¿Qué es Ghidralligator?

Ghidralligator tiene como objetivo llenar el vacío entre los emuladores ya existentes que requieren mucha configuración y modificaciones manuales para instrumentar, ejecutar y fuzzear el binario, y los emuladores de "caja negra", que difícilmente son extensibles y no son adecuados para aplicaciones específicas e inusuales.

Su uso principal es la investigación de vulnerabilidades en binarios de código cerrado, y especialmente cuando se apunta a aplicaciones/firmwares de dispositivos embebidos que se ejecutan en arquitecturas exóticas.

Ghidralligator es el sucesor de afl_ghidra_emu. Mejora enormemente la velocidad de ejecución e incluye funcionalidades útiles como la detección de corrupción de memoria dinámica (ASAN).

Se puede detectar una amplia variedad de corrupciones de memoria: operaciones de lectura/escritura fuera de los límites, use-after-free, double-free, lectura de memoria no inicializada, violaciones de acceso de lectura/escritura/ejecución...

Para ejecutar Ghidralligator, deben realizarse los siguientes pasos:

  • Establecer un archivo de configuración para definir el diseño del mapeo de memoria y el estado inicial del programa.
  • Diseñar hooks.

Documentación

  • Archivo de configuración de Ghidralligator : Documentación para escribir el archivo de configuración.
  • Hooks de Ghidralligator : Documentación para escribir el archivo de user-hooks.

Tutoriales

Para entender cómo usar Ghidralligator, se ha creado un ejemplo de un programa vulnerable, compilado en diferentes arquitecturas.

Puedes ejecutar run_examples.sh para ver los mecanismos de ASAN en acción.

Inicio rápido

Ghidralligator incluye varias opciones de línea de comandos:

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]


Uso para una emulación estándar:

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

gif replay

Uso para una sesión de fuzzing estándar con AFL++:

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

Limitaciones

  • Ghidralligator puede emular código gracias al archivo .sla (archivo de definición de instrucciones Sleigh). Los archivos SLA proporcionados por la comunidad de Ghidra pueden estar implementados parcialmente. Para obtener una emulación consistente, los usuarios pueden tener que completar la definición de la arquitectura Sleigh correspondiente o añadir algunos hooks.

  • Ghidralligator está basado en Ghidra, que no está diseñado para tener un alto rendimiento con fines de emulación. Por lo tanto, no puede competir con fuzzers clásicos como afl_qemu en arquitecturas estándar (binarios x86 linux / windows).

  • Como el proyecto Ghidra está en constante evolución, no se recomienda actualizar manualmente las dependencias de Ghidralligator para futuras versiones de Ghidra. La herramienta fue construida y probada con las fuentes del descompilador de Ghidra 11.0.3. Puede romperse con versiones futuras, y no se admite la compatibilidad retroactiva con versiones anteriores a la 11.0.3. Esto es transparente para el usuario, ya que las dependencias de Ghidra se proporcionan en este repositorio.

Licencias

Ghidralligator se distribuye bajo la licencia Apache versión 2.0.

El código de Ghidralligator incluye código del proyecto Ghidra de la NationalSecurityAgency, publicado bajo la licencia Apache 2.0.

El analizador del archivo de configuración de Ghidralligator incluye la librería json de C++ de Niels Lohmann, publicada bajo la licencia MIT.

El módulo de Ghidralligator incluye la librería xxHash de Yann Collet, publicada bajo la licencia BSD 2-Clause.

Autores

  • Flavian Dola - Airbus (Twitter)
  • Guillaume Orlando - Airbus (Twitter)
Descargar herramienta