Che cos’è PyGhidra
PyGhidra è la libreria ufficiale per usare l’API di Ghidra da CPython 3 nativo. Progetti, programmi, simboli e analisi entrano in workflow Python riproducibili.
Fissa il percorso di installazione e l’ambiente Python e registra le versioni per rendere riproducibili i risultati automatizzati.
Requisiti e versioni
La versione corrente è PyGhidra 3.1.0, pubblicata il 14 maggio 2026. Richiede Python 3.9 o successivo, Ghidra 12.0 o successivo e JDK 21.
Se hai installato più versioni di Ghidra, verifica esplicitamente quale radice e quale JDK vengono usati davvero dall’integrazione.
Installare PyGhidra
Crea un ambiente virtuale dedicato. Installa da PyPI o usa il pacchetto offline ufficiale. Non servono installer EXE di terze parti.
Scegli l’installazione online o offline e verifica che python e pip usino lo stesso interprete dell’ambiente virtuale.
- 1
Ambiente virtuale
Isola le dipendenze.
python -m venv .venv - 2
Installazione
Usa l’interprete attivo.
python -m pip install --upgrade pyghidra==3.1.0 - 3
Opzione offline
Usa il pacchetto ufficiale incluso.
python -m pip install --no-index -f <GhidraInstallDir>/Ghidra/Features/PyGhidra/pypkg/dist pyghidra
Collegare Ghidra
Imposta GHIDRA_INSTALL_DIR sulla radice estratta oppure passa install_dir a pyghidra.start().
Con più versioni installate, fissa il percorso e verifica che prima dell’avvio contenga le cartelle Ghidra e Features.
GHIDRA_INSTALL_DIR=<path-to-ghidra-root>
Prima automazione
Avvia Ghidra una volta per processo, apri un campione autorizzato in un contesto e salva i risultati fuori dall’installazione.
Usa gestori di contesto come open_program, chiudi le risorse e conserva separati il campione originale e il progetto generato.
from pathlib import Path
import pyghidra
with pyghidra.open_program(Path('sample.exe')) as api:
print(api.getCurrentProgram().getName())
Problemi comuni
Controlla Python, java -version, radice Ghidra e versioni. Tratta binari e script esterni come non affidabili.
Registra le versioni di Python, pacchetto e JDK insieme a GHIDRA_INSTALL_DIR per distinguere i problemi d’ambiente da quelli di compatibilità API.
| Sintomo | Causa | Verifica |
|---|---|---|
| Errore di importazione | Ambiente errato | python -m pip show pyghidra |
| Errore Java | JDK errato | java -version |
| Errore di percorso | Radice errata | GHIDRA_INSTALL_DIR |
| Incompatibilità API | Limite di versione | PyGhidra 3.x + Ghidra 12.0+ |
PyGhidra FAQ
PyGhidra è incluso in Ghidra?
PyGhidra è la libreria ufficiale per usare l’API di Ghidra da CPython 3 e si installa dal pacchetto ufficiale o da PyPI.
Quale versione di Python è necessaria?
È necessario Python 3.9 o successivo.
Perché Ghidra non viene trovato?
Imposta GHIDRA_INSTALL_DIR sulla radice estratta oppure passa install_dir a pyghidra.start().
Sostituisce analyzeHeadless?
No. PyGhidra controlla l’API da Python, mentre analyzeHeadless è adatto alle pipeline da riga di comando. Scegli in base al flusso di lavoro.
PyGhidra MCP è lo stesso progetto?
No. Gli strumenti MCP sono progetti separati e non coincidono con il pacchetto ufficiale PyGhidra.