Qué aprenderás en este tutorial de Ghidra
El flujo básico es crear un proyecto, importar un archivo, confirmar la arquitectura, ejecutar el análisis, encontrar una función y comparar ensamblador con pseudocódigo.
Esta guía prioriza el análisis estático: usa tus propios binarios, ejemplos de código abierto, crackmes educativos o programas de práctica que tengas permiso para inspeccionar. No es necesario ejecutar el objetivo.
- El flujo básico es crear un proyecto, importar un archivo, confirmar la arquitectura, ejecutar el análisis, encontrar una función y comparar ensamblador con pseudocódigo.
- Mantén el análisis estático con archivos autorizados y no ejecutes el objetivo durante el ejercicio.
- CodeBrowser + Listing + Decompiler
- XRefs + Function Graph
Prepara un laboratorio seguro
Usa binarios propios, proyectos de código abierto o retos educativos autorizados. Mantén los archivos desconocidos en una máquina virtual aislada y no los ejecutes.
Para el primer ejercicio, compila un pequeño programa C que compruebe una cadena de contraseña o elige un crackme legal creado para aprender. Calcula su hash antes del análisis y conserva el original.
Usa binarios propios, proyectos de código abierto o retos educativos autorizados. Mantén los archivos desconocidos en una máquina virtual aislada y no los ejecutes.
Crea el proyecto, importa y analiza
Crea un proyecto no compartido, importa el archivo y revisa formato, procesador, endianness y compilador antes de iniciar Auto Analysis.
Comprueba el formato detectado, procesador, lenguaje, endianness y especificación del compilador. Los PE y ELF comunes suelen funcionar con los valores predeterminados, mientras que el firmware sin formato y las arquitecturas poco habituales requieren confirmación manual.
- 1
Proyecto
Crea un proyecto no compartido, importa el archivo y revisa formato, procesador, endianness y compilador antes de iniciar Auto Analysis.
- 2
Importar
Comprueba formato, procesador, lenguaje, endianness y compilador; confirma manualmente el firmware sin formato y las arquitecturas poco habituales.
- 3
Analizar
Crea un proyecto no compartido, importa el archivo y revisa formato, procesador, endianness y compilador antes de iniciar Auto Analysis.

Entiende CodeBrowser, Listing y símbolos
Listing muestra direcciones, bytes e instrucciones; Decompiler ofrece una interpretación. Symbol Tree, cadenas definidas y búsqueda ayudan a encontrar puntos de entrada.
Empieza por una cadena reconocible, consulta sus referencias y avanza hasta la función que la llama. Suele ser más rápido que recorrer cada instrucción desde el punto de entrada.
| Ventana | Uso | Acción |
|---|---|---|
| Listing | Instrucciones | Verificar |
| Decompiler | Pseudocódigo | Interpretar |
| Symbol Tree | Símbolos | Navegar |
| Defined Strings | Texto | Buscar anclas |
Usa bien el decompilador de Ghidra
Lee el pseudocódigo para orientarte, pero confirma la lógica importante en Listing. Renombra funciones, aplica tipos y añade comentarios solo con evidencia.
Mejora el resultado cuando aparezcan pruebas: cambia nombres de funciones y variables, aplica tipos, define estructuras y añade comentarios. Cada corrección aporta más contexto al análisis siguiente.
- 1
Buscar un ancla
Lee el pseudocódigo para orientarte, pero confirma la lógica importante en Listing. Renombra funciones, aplica tipos y añade comentarios solo con evidencia.
- 2
Seguir referencias
Cambia nombres y aplica tipos según las pruebas; después añade estructuras y comentarios para mejorar el contexto.
- 3
Confirmar evidencia
Lee el pseudocódigo para orientarte, pero confirma la lógica importante en Listing. Renombra funciones, aplica tipos y añade comentarios solo con evidencia.

Sigue referencias y el gráfico de funciones
Las XRefs muestran usos, llamadores y destinos. Function Graph permite ver ramas, bucles y rutas alternativas.
Function Graph convierte bloques y ramas en un mapa visual del flujo de control. Úsalo para condiciones anidadas y bucles, y vuelve al Decompiler para explicar cada ruta.

Primer ejercicio de 30 minutos
Busca textos de éxito y error, sigue sus referencias, identifica la función de decisión y explica la condición principal con evidencia.
Añade un marcador a la rama importante y guarda el proyecto. El objetivo no es recuperar perfectamente el código fuente, sino crear una cadena reproducible desde la cadena hasta la referencia, función, condición y conclusión.
- 0-5
- 5-12
- 12-22
- 22-30
Errores comunes de principiantes
No trates el pseudocódigo como fuente original, confirma la arquitectura, espera a que termine el análisis y no ejecutes archivos desconocidos.
Evita activar todos los analizadores, ejecutar binarios desconocidos o tratar tipos supuestos como hechos. Vuelve a importar el archivo con la arquitectura correcta cuando las instrucciones y referencias parezcan incoherentes.
| Problema | Riesgo | Mejor opción |
|---|---|---|
| Pseudocódigo | Conclusión errónea | Verificar |
| Arquitectura | Decodificación incorrecta | Volver a importar |
| Archivo desconocido | Riesgo de seguridad | Laboratorio aislado |
Siguientes pasos y fuentes oficiales
Repite el proceso con ejemplos pequeños y legales. Después consulta la documentación oficial y la guía de PyGhidra para automatizar tareas. GhidraDocs.
Las imágenes proceden del repositorio oficial de Ghidra de la NSA. Versión verificada el 22 de agosto de 2026: Ghidra 12.1.3, publicada el 18 de agosto de 2026. Continúa con la guía del descompilador de Ghidra o automatiza tareas con PyGhidra.
Preguntas del tutorial de Ghidra
¿Es seguro usar Ghidra?
Descárgalo del lanzamiento oficial de GitHub y analiza archivos desconocidos en un laboratorio aislado sin ejecutarlos.
¿Conviene empezar con el depurador?
Primero domina el análisis estático, funciones, referencias y flujo de control.
¿Ghidra recupera el código fuente original?
No. El decompilador produce una interpretación útil, no el código exacto.
¿Cómo se actualiza Ghidra?
Extrae la versión oficial nueva en otra carpeta y revisa la compatibilidad de extensiones.
¿Qué archivos puedo analizar?
Solo archivos propios, autorizados, abiertos o creados para aprendizaje.