Ghidra Downloadguía independiente de descarga e instalación
Español
ANÁLISIS SIN INTERFAZ

Analizador headless de Ghidra: análisis por CLI

El analizador headless de Ghidra ejecuta Ghidra sin abrir la interfaz gráfica. Con el lanzador analyzeHeadless puedes importar binarios autorizados, procesar un proyecto existente, ejecutar scripts antes o después del análisis y repetir el mismo flujo sobre muchos archivos. Esta guía explica qué comando elegir, cómo proteger los proyectos, cómo leer los resultados y cómo investigar un fallo.

Documentación oficial del analizador headless
Ideal paraAnálisis por lotes repetible
Punto de entradasupport/analyzeHeadless
Modos principales-import y -process
Versión comprobadaGhidra 12.1.3 · 16 sep 2026
RESPUESTA RÁPIDA

Analizador headless de Ghidra: qué es y cuándo usarlo

El analizador headless de Ghidra es el punto de entrada de línea de comandos para ejecutar análisis sin abrir el escritorio. Puede crear o completar un proyecto, analizar programas importados o existentes y ejecutar scripts sin interfaz para carpetas de muestras, triaje de firmware, informes programados o canalizaciones controladas.

Headless no es un servidor remoto y no convierte todas las conclusiones en automáticas. El lanzador sigue dependiendo de la instalación de Ghidra, la ubicación del proyecto, los cargadores, los analizadores, los scripts y las reglas normales del proyecto. Registra la versión, las entradas, las opciones, el proyecto de salida y el log; analiza únicamente material para el que tengas autorización.

Mantén visible la fuente de verdad

La documentación oficial y el lanzador support/analyzeHeadless de la versión instalada definen las opciones disponibles. Esta página explica un flujo seguro, pero no sustituye la ayuda incluida con tu versión de Ghidra.

ANTES DEL COMANDO

Prepara la instalación, el proyecto y los archivos de entrada

Comienza con el ZIP oficial de Ghidra y un JDK de 64 bits compatible. La versión comprobada para este sitio es Ghidra 12.1.3, publicada el 18 de agosto de 2026, y su archivo incluye el lanzador dentro de support/. Consulta la guía de instalación de Ghidra si la aplicación de escritorio todavía no inicia; un JDK roto o una extracción incompleta también rompe las ejecuciones headless.

Mantén separados la aplicación, el proyecto y las carpetas de entradas e informes. No edites un proyecto activo desde un trabajo por lotes ni sobrescribas una copia conocida como buena antes de revisar la nueva ejecución. Usa un nombre de proyecto nuevo mientras pruebas scripts u opciones de análisis.

  1. 1

    Confirma el lanzador

    Desde la instalación de Ghidra, comprueba que existe el lanzador de tu plataforma y que puede mostrar la ayuda. Windows usa el archivo por lotes; macOS y Linux usan el lanzador de shell.

    support/analyzeHeadless.bat O support/analyzeHeadless
  2. 2

    Elige una raíz de proyecto escribible

    Usa una carpeta con espacio suficiente para programas importados, bases de datos, cachés e informes. Evita una carpeta sincronizada mientras investigas bloqueos o escrituras concurrentes.

    D:\analysis\projects /srv/ghidra/projects
  3. 3

    Registra las entradas

    Anota los nombres, hashes, arquitecturas esperadas y fecha de recopilación. Una ruta de directorio no es una entrada reproducible si no registras su contenido.

    samples/firmware-a.bin samples/firmware-b.bin
  4. 4

    Haz una copia antes de procesar

    Copia el proyecto antes de ejecutar un script que cambie nombres, tipos de datos, programas o información guardada.

    ProjectName.gpr + ProjectName.rep/
Ventana Project de Ghidra con un proyecto y archivos ejecutables importados
Captura oficial de la ventana Project de Ghidra: separa los datos del proyecto de la aplicación y crea una copia antes de automatizar cambios.
ELIGE UN MODO

Elige entre -import y -process

La decisión principal del analizador headless es si el comando debe crear o completar un proyecto a partir de archivos, o volver a abrir programas que ya están en un proyecto. Usa -import cuando un archivo o directorio deba convertirse en programas del proyecto. Usa -process cuando el proyecto ya contenga el programa.

No añadas ambos modos solo porque aparezcan juntos en un ejemplo de internet. Empieza con un trabajo explicable, especifica el cargador o el procesador únicamente cuando sea necesario y guarda el comando que funcionó en un script versionado.

TareaModoEntrada habitualQué verificar
Crear un proyecto desde binarios-importArchivo o directorioCargador, lenguaje y nombre del proyecto
Analizar programas ya guardados-processProyecto existenteNombres de programas y copia del proyecto
Ejecutar un script durante la importación-import + -postScriptNuevas entradasRuta del script y salida guardada
Procesar un árbol de programas-process + -recursiveÁrbol del proyectoAlcance y log de cada ejecución
Windows: importar una muestra de prácticacd C:\ghidra_12.1.3_PUBLIC\support analyzeHeadless.bat D:\analysis\projects HeadlessDemo -import D:\analysis\samples\demo.exe
Linux o macOS: procesar un proyecto existente./support/analyzeHeadless /srv/ghidra/projects HeadlessDemo -process demo.exe
AUTOMATIZACIÓN

Usa scripts sin perder la reproducibilidad

Los trabajos headless son más útiles cuando un script convierte el estado del análisis en un resultado pequeño y revisable. Un pre-script puede preparar una acción del proyecto; un post-script puede inspeccionar el programa analizado y escribir un informe. Mantén los scripts acotados: imprimir funciones, cadenas, imports o un campo de metadatos es más fácil de probar que renombrar silenciosamente un proyecto grande.

Guarda los scripts en un directorio versionado y pásalo con -scriptPath. Usa -preScript y -postScript y conserva los logs compatibles. Si necesitas CPython fuera de Ghidra, consulta la guía de PyGhidra.

  • Empieza con una tarea de solo lectura o de generación de informes y una muestra pequeña autorizada.
  • Fija la revisión del script junto al comando y a la versión de Ghidra.
  • Escribe los informes fuera del directorio del proyecto salvo que el script tenga que guardar datos del proyecto.
  • Prueba un resultado vacío, un campo ausente y una segunda ejecución.
Ilustración conceptual de un flujo de scripts de Ghidra conectado con el análisis de programas y un gráfico de funciones
Ilustración conceptual editorial: conserva los scripts headless pequeños, versionados y fáciles de comparar con la evidencia generada.
EJECUCIONES REPETIBLES

Directorios por lotes, logs y trabajos de CI

Para un flujo basado en directorios, decide si los archivos deben compartir un proyecto o usar proyectos aislados. Un solo proyecto facilita la navegación entre archivos; los proyectos separados reducen el riesgo de mezclar datos por accidente. Usa -recursive solo cuando las carpetas anidadas formen parte del alcance, porque una ruta amplia puede importar más datos de los esperados.

Registra el comando, las versiones, el manifiesto, la revisión del script, el estado de salida, los logs y los resultados inesperados. En CI, conserva informes y marca un error si el lanzador o el post-script falla.

Evita el estado oculto

El mismo comando puede producir conclusiones distintas si cambian la carpeta de entradas, el perfil del proyecto, las extensiones, la revisión del script o la versión de Ghidra. Registra esos límites junto al informe.

Importación recursiva acotada./support/analyzeHeadless /srv/ghidra/projects BatchSet -import /srv/ghidra/samples -recursive -scriptPath /srv/ghidra/scripts -postScript export_summary.py
Registro práctico de una ejecuciónrelease=12.1.3 input_manifest=sha256.csv script=export_summary.py@abc123 project=BatchSet log=run-2026-09-16.log
VERIFICA LA SALIDA

Lee el resultado y verifícalo en Ghidra

Después de una ejecución headless, revisa el estado de salida y el log antes de abrir el proyecto. Comprueba los mensajes del cargador, el lenguaje o compilador elegido, la finalización del análisis, las excepciones de scripts, los archivos omitidos y los fallos de escritura. Luego abre una copia en la interfaz y verifica una pequeña muestra en Listing, referencias, Decompiler o símbolos. La guía de búsqueda de Ghidra y la guía del Decompiler describen estas comprobaciones.

Un informe es un artefacto, no una prueba por sí solo. Si no aparecen cadenas, confirma el lenguaje, el alcance y el objeto de la API.

SíntomaPrimera comprobaciónSiguiente paso seguro
No aparece ningún programaModo de importación, ruta y cargadorEjecuta un archivo con un nombre de proyecto nuevo
No se encuentra el scriptRuta y nombre del archivoUsa un directorio de scripts absoluto y un script mínimo
El análisis queda incompletoLog, tiempo de espera, memoria y mensajesRepite una muestra y compara la copia del proyecto
La salida difiere de la GUIVersión, lenguaje, opciones y fase del scriptVerifica el mismo programa y ajustes en ambos caminos
CodeBrowser oficial de Ghidra con memoria del programa, instrucciones y referencias
Captura oficial de CodeBrowser: valida un informe headless con evidencia del programa a nivel de dirección en lugar de confiar en una sola línea de resumen.
PREGUNTAS SOBRE EL ANALIZADOR HEADLESS

Preguntas frecuentes sobre el analizador headless de Ghidra

¿Dónde está analyzeHeadless en Ghidra?

Está en el directorio support/ de la instalación de Ghidra. Windows incluye analyzeHeadless.bat; Linux y macOS usan el lanzador de shell. Usa el lanzador que pertenece a la versión instalada.

¿Cuál es la diferencia entre -import y -process?

Usa -import cuando el trabajo empieza con archivos o directorios y debe crear o completar un proyecto. Usa -process cuando los programas ya están dentro del proyecto y deben procesarse.

¿Puede Ghidra analizar muchos archivos sin la GUI?

Sí. El analizador headless puede importar o procesar un directorio, y opciones como -recursive pueden ampliar el alcance previsto. Empieza con un conjunto autorizado pequeño y registra el manifiesto para poder revisar el resultado.

¿Puedo ejecutar un script con analyzeHeadless?

Sí. Usa las opciones de ruta, pre-script y post-script compatibles con la versión instalada. Mantén los scripts versionados, pruébalos en una copia y guarda logs e informes junto al registro del comando.

¿El analizador headless es lo mismo que PyGhidra?

No. El analizador headless es el lanzador CLI para imports y procesamiento de proyectos. PyGhidra conecta un proceso CPython externo con la API de Ghidra; elige según la frontera de automatización que necesites.