Was PyGhidra ist
PyGhidra ist die offizielle Bibliothek für die Ghidra-API in nativem CPython 3. Projekte, Programme, Symbole und Analysefunktionen lassen sich in reproduzierbare Python-Abläufe integrieren.
Fixieren Sie Installationspfad und Python-Umgebung und dokumentieren Sie die Versionen, damit automatisierte Ergebnisse nachvollziehbar bleiben.
Anforderungen und Versionen
Aktuell ist PyGhidra 3.1.0 vom 14. Mai 2026. Benötigt werden Python 3.9 oder neuer, Ghidra 12.0 oder neuer und ein passendes JDK 21.
Wenn mehrere Ghidra-Versionen installiert sind, prüfen Sie ausdrücklich, welches Ghidra-Stammverzeichnis und welches JDK tatsächlich verwendet werden.
PyGhidra installieren
Nutze eine eigene virtuelle Umgebung. Installiere online über PyPI oder offline aus der offiziellen Ghidra-Distribution. Unbekannte EXE-Installer sind nicht erforderlich.
Entscheide dich für die Online- oder Offline-Variante und prüfe, dass python und pip auf denselben Interpreter der virtuellen Umgebung zeigen.
- 1
Virtuelle Umgebung
Abhängigkeiten isolieren.
python -m venv .venv - 2
Installieren
Mit dem aktiven Interpreter installieren.
python -m pip install --upgrade pyghidra==3.1.0 - 3
Offline-Option
Das offizielle gebündelte Paket verwenden.
python -m pip install --no-index -f <GhidraInstallDir>/Ghidra/Features/PyGhidra/pypkg/dist pyghidra
Mit Ghidra verbinden
GHIDRA_INSTALL_DIR muss auf das entpackte Ghidra-Stammverzeichnis zeigen. Alternativ wird install_dir an pyghidra.start() übergeben.
Bei mehreren Versionen sollte der Pfad festgelegt werden; prüfen Sie vor dem Start, ob am Ziel die Ghidra- und Features-Verzeichnisse vorhanden sind.
GHIDRA_INSTALL_DIR=<path-to-ghidra-root>
Erste Automatisierung
Starte Ghidra einmal pro Python-Prozess, öffne nur autorisierte Testdateien und speichere Ergebnisse außerhalb des Installationsordners.
Verwende Kontextmanager wie open_program, schließe Ressourcen sauber und bewahre Originaldateien getrennt von erzeugten Projekten auf.
from pathlib import Path
import pyghidra
with pyghidra.open_program(Path('sample.exe')) as api:
print(api.getCurrentProgram().getName())
Häufige Probleme
Prüfe Python-Interpreter, java -version, Stammverzeichnis und Versionsgrenzen. Behandle fremde Binärdateien und Skripte als nicht vertrauenswürdig.
Notiere Python-, Paket- und JDK-Version sowie GHIDRA_INSTALL_DIR, wenn ein Fehler auftritt. So lassen sich Umgebungs- und API-Probleme unterscheiden.
| Symptom | Ursache | Prüfung |
|---|---|---|
| Importfehler | Falsche Umgebung | python -m pip show pyghidra |
| Javafehler | Falsches JDK | java -version |
| Pfadfehler | Falsches Stammverzeichnis | GHIDRA_INSTALL_DIR |
| API-Inkompatibilität | Versionsgrenze | PyGhidra 3.x + Ghidra 12.0+ |
PyGhidra FAQ
Ist PyGhidra in Ghidra enthalten?
PyGhidra ist die offizielle Bibliothek für die Ghidra-API in nativem CPython 3 und wird aus dem offiziellen Paket oder über PyPI installiert.
Welche Python-Version wird benötigt?
Python 3.9 oder neuer.
Warum wird Ghidra nicht gefunden?
Setze GHIDRA_INSTALL_DIR auf das entpackte Ghidra-Stammverzeichnis oder übergib install_dir an pyghidra.start().
Ersetzt PyGhidra analyzeHeadless?
Nein. PyGhidra steuert die API aus Python, während analyzeHeadless für Befehlszeilen-Pipelines geeignet ist. Wähle den passenden Ablauf.
Ist PyGhidra MCP dasselbe Projekt?
Nein. MCP-Werkzeuge sind separate Projekte und nicht mit dem offiziellen PyGhidra-Paket identisch.