Qué es PyGhidra
PyGhidra es la biblioteca oficial para usar la API de Ghidra desde CPython 3 nativo. Permite automatizar proyectos, programas, símbolos, análisis y scripts dentro de flujos Python repetibles.
Fija la ruta de instalación y el entorno de Python y registra las versiones para que los resultados automatizados se puedan reproducir.
Requisitos y versiones verificadas
La versión actual es PyGhidra 3.1.0, publicada el 14 de mayo de 2026. Requiere Python 3.9 o posterior, Ghidra 12.0 o posterior y un JDK 21 compatible.
Si tienes varias versiones de Ghidra, comprueba de forma explícita qué directorio raíz y qué JDK utiliza realmente la integración.
Cómo instalar PyGhidra
Crea un entorno virtual dedicado. Instala desde PyPI o usa el paquete offline incluido en la distribución oficial de Ghidra. No uses instaladores EXE de terceros.
Elige la instalación en línea o sin conexión y comprueba que python y pip apunten al mismo intérprete del entorno virtual.
- 1
Entorno virtual
Aísla las dependencias.
python -m venv .venv - 2
Instalar
Usa el intérprete activo.
python -m pip install --upgrade pyghidra==3.1.0 - 3
Opción sin conexión
Usa el paquete incluido oficialmente.
python -m pip install --no-index -f <GhidraInstallDir>/Ghidra/Features/PyGhidra/pypkg/dist pyghidra
Conectar PyGhidra con Ghidra
Configura GHIDRA_INSTALL_DIR con la raíz extraída de Ghidra o pasa install_dir a pyghidra.start(). Fija la ruta cuando tengas varias versiones.
Antes de iniciar, comprueba que la ruta contiene la instalación de Ghidra y la carpeta Features; una ruta fija evita conectar por error otra versión.
GHIDRA_INSTALL_DIR=<path-to-ghidra-root>
Primera automatización
Inicia Ghidra una vez por proceso, abre una muestra autorizada dentro de un contexto y guarda los resultados fuera del directorio de instalación.
Usa gestores de contexto como open_program para cerrar recursos y conserva separados la muestra original y el proyecto generado.
from pathlib import Path
import pyghidra
with pyghidra.open_program(Path('sample.exe')) as api:
print(api.getCurrentProgram().getName())
Problemas frecuentes
Comprueba el intérprete Python, java -version, la ruta raíz y la compatibilidad antes de reinstalar. Trata binarios y scripts externos como contenido no confiable.
Registra las versiones de Python, del paquete y del JDK junto con GHIDRA_INSTALL_DIR para distinguir un problema del entorno de uno de compatibilidad de API.
| Síntoma | Causa | Comprobación |
|---|---|---|
| Error de importación | Entorno incorrecto | python -m pip show pyghidra |
| Error de Java | JDK incorrecto | java -version |
| Error de ruta | Raíz incorrecta | GHIDRA_INSTALL_DIR |
| API incompatible | Límite de versión | PyGhidra 3.x + Ghidra 12.0+ |
PyGhidra FAQ
¿PyGhidra está incluido con Ghidra?
PyGhidra es la biblioteca oficial para usar la API de Ghidra desde CPython 3 y se instala desde el paquete oficial o PyPI.
¿Qué versión de Python se necesita?
Se necesita Python 3.9 o posterior.
¿Por qué no encuentra Ghidra?
Configura GHIDRA_INSTALL_DIR con la raíz extraída de Ghidra o pasa install_dir a pyghidra.start().
¿Sustituye a analyzeHeadless?
No. PyGhidra permite controlar la API desde Python, mientras que analyzeHeadless encaja mejor en canalizaciones de línea de comandos. Elige según el flujo.
¿PyGhidra MCP es el mismo proyecto?
No. Las herramientas MCP son proyectos independientes y no son el paquete oficial de PyGhidra.