
OGhidra — Updated!
OGhidra verbindet Large Language Models (LLMs) über Ollama mit der Reverse-Engineering-Plattform Ghidra und ermöglicht so KI-gesteuerte Binäranalyse durch natürliche Sprache. Interagiere mit Ghidra mithilfe von konversationellen Abfragen und automatisiere komplexe Reverse-Engineering-Workflows.
OGhidra 3 – KI-gestütztes Reverse Engineering mit Ghidra
Für die Version mit einem Claude-inspirierten Orchestrator siehe https://github.com/llnl/OGhidra/tree/orchestrator
OGhidra verbindet Large Language Models mit Ghidras Reverse-Engineering-Plattform und ermöglicht KI-gesteuerte Binäranalyse über natürliche Sprache. Analysieren Sie Binärdateien dialogorientiert, automatisieren Sie komplexe Arbeitsabläufe und bewahren Sie vollständige Privatsphäre mit lokalen KI-Modellen.
YouTube Setup-Anleitung
Was ist OGhidra?
OGhidra erweitert Ghidra um KI-Fähigkeiten, die Ihnen Folgendes ermöglichen:
- Analyse in natürlicher Sprache – Stellen Sie Fragen zu Funktionen, Strings, Importen in einfachem Englisch
- Automatisierte Workflows – Funktionen umbenennen, Muster erkennen, umfassende Berichte erstellen
- Lokale KI-Modelle – Vollständige Privatsphäre mit Modellen auf Ihrer Hardware (Ollama)
- Cloud-KI-Unterstützung – Verbindung zu externen APIs (OpenAI, Google Gemini, Anthropic Claude)
- Malware-Erkennung – Automatischer Mustervergleich für über 12 Umgehungs- und Injektionstechniken
- Intelligente Aufzählung – Erstellen von abfragbaren Wissensgraphen aus der Binäranalyse
- Multi-Instanz-Analyse – Mehrere Ghidra-Instanzen für parallele Analysen ausführen
So funktioniert es
graph TD
A[User Query] --> B[Planning Phase]
B --> C{Execution Phase}
C -- Tool Calls --> D[Ghidra/LLM]
D --> C
C --> E[Review Phase]
E -- Agentic Loop --> B
E --> F[Final Response]
style E fill:#f9f,stroke:#333,stroke-width:2px
style B fill:#bbf,stroke:#333,stroke-width:2px
Agentische Schleife: OGhidra verwendet ein adaptives Planungssystem. Nach jedem Ausführungszyklus werden die Ergebnisse überprüft und die KI kann entscheiden, weitere Informationen zu sammeln oder ihre Analyse zu verfeinern, bevor sie die endgültige Antwort gibt.
Schnellstart
Voraussetzungen
- Python 3.12+ – Version prüfen:
python --version - Ghidra 12.0.3 (Empfohlen) – Herunterladen von Ghidra Releases
- Der Pfad zum Erstellen/Installieren des Plugins ist für Ghidra 12.0.3 dokumentiert
- Getestet mit: Ghidra 11.0.3, 11.3.2, 12.0.2, 12.0.3
- Java 21 – Erforderlich zum Erstellen der Ghidra 12.0.3-Erweiterung:
java -version - Ollama (optional, für lokale Modelle) – Installieren von ollama.com
Installation
# Clone repository
git clone https://github.com/LLNL/OGhidra.git
cd OGhidra
# Install dependencies (choose one)
uv sync # Using UV (recommended)
pip install -r requirements.txt # Using pip
# Configure environment
cp .env.example .env
# Edit .env with your settings
Ghidra-Plugin einrichten
Die folgenden Schritte zum Erstellen des OGhidraMCP-Plugins zielen auf Ghidra 12.0.3 (empfohlen) ab. Es gibt auch ein YouTube-Video-Tutorial: https://www.youtube.com/watch?v=hBD92FUgR0Y
Erstellen der GhidraMCP-Erweiterung
Als Entwickler müssen Sie die GhidraMCP-Erweiterung erstellen, bevor Sie sie in Ghidra installieren können:
-
Voraussetzungen:
- Ghidra 12.0.3 installiert
- Java 21
-
Option 1: Verwendung der automatisierten Build-Skripte:
-
Windows:
# Set the path to your Ghidra installation (will attempt to find last run copy of Ghidra if not set) set GHIDRA_INSTALL_DIR=C:\path\to\ghidra_12.0.3_PUBLIC # Run the build script build_ghidra_plugin.bat -
Unix/Linux/Mac:
# Set the path to your Ghidra installation (will attempt to find the last run copy of Ghidra if not set) export GHIDRA_INSTALL_DIR=/path/to/ghidra_12.0.3_PUBLIC # Run the build script (make it executable first if needed) chmod +x build_ghidra_plugin.sh ./build_ghidra_plugin.sh
-
-
Option 2: Manueller Build-Prozess:
-
Erstellen/Aktualisieren Sie
OGhidraMCP/gradle.propertiesmit Ihrem Ghidra-Installationspfad:GHIDRA_INSTALL_DIR=/absolute/path/to/ghidra_12.0.3_PUBLIC -
On Unix/Linux/macOS:
cd OGhidraMCP $GHIDRA_INSTALL_DIR/support/gradle/gradlew buildExtension --info -
On Windows:
cd OGhidraMCP "%GHIDRA_INSTALL_DIR%\support\gradle\gradlew.bat" buildExtension --info
-
-
Die erstellte Erweiterung finden:
- Die ZIP-Datei der Erweiterung wird in
OGhidraMCP/dist/erstellt - The filename will be something like
ghidra_12.0.3_PUBLIC_YYYYMMDD_OGhidraMCP.zip
- Die ZIP-Datei der Erweiterung wird in
Installieren der GhidraMCP-Erweiterung
Sobald Sie die Erweiterung erfolgreich erstellt haben:
-
In Ghidra installieren:
- Öffnen Sie Ghidra -> Datei -> Erweiterungen installieren
- Klicken Sie auf Erweiterung hinzufügen (grünes Plus-Symbol)
- Navigieren Sie zu Ihrem
OGhidraMCP/dist/-Verzeichnis - Wählen Sie die neu erstellte Erweiterungs-ZIP-Datei (z. B.
ghidra_12.0.3_PUBLIC_YYYYMMDD_OGhidraMCP.zip) - Starten Sie Ghidra neu
-
Das Plugin aktivieren:
- Öffnen Sie ein Ghidra-Projekt
- Datei → Konfigurieren → Entwickler aktivieren
- Aktivieren Sie das Plugin
OGhidraMCP - Der Server wird unter
http://localhost:8080/methodsgestartet
SIE MÜSSEN DEN CODE-BROWSER GEÖFFNET HABEN
KI-Modelle herunterladen
# For Ollama (local models)
ollama pull gemma3:27b # Good balance (20GB RAM)
ollama pull nomic-embed-text # Embedding model for RAG
# Alternative models
ollama pull gpt-oss:120b # High quality (80GB RAM)
ollama pull devstral-2:123b # High quality (80GB RAM)
ollama pull devstral-2:123b-cloud # Cloud Model
OGhidra starten
# GUI Mode (recommended)
uv run main.py --ui
# Interactive CLI
uv run main.py --interactive
# In interactive CLI, test connection
health
Wenn Sie den GUI-Modus gestartet haben, verwenden Sie:
curl http://localhost:8080/methods
Konfiguration
Bearbeiten Sie .env, um Ihren KI-Anbieter zu konfigurieren:
Option 1: Lokale Modelle (Ollama)
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434/
OLLAMA_MODEL=gemma3:27b
OLLAMA_EMBEDDING_MODEL=nomic-embed-text
Option 2: Externe APIs
LLM_PROVIDER=external
EXTERNAL_PROVIDER=google
EXTERNAL_API_KEY=your-api-key-here
EXTERNAL_MODEL=gemini-3.1-flash-lite-preview
EXTERNAL_EMBEDDING_MODEL=gemini-embedding-001
Option 3: Benutzerdefinierte OpenAI-kompatible API
LLM_PROVIDER=custom_api
CUSTOM_API_URL=https://api.example.com/v1/chat/completions
CUSTOM_API_KEY=your-api-key-here
CUSTOM_API_MODEL=your-model-name
CUSTOM_API_EMBEDDING_MODEL=your-embedding-model
Einstellungen für das Kontextmanagement
Passen Sie die Einstellungen an das Kontextfenster Ihres Modells an:
# Context budget in tokens (adjust to your model's limit)
CONTEXT_BUDGET=100000 # 100K tokens for mid-size models
# 200K+ for frontier models
# Execution settings
MAX_EXECUTION_STEPS=5 # Steps per planning cycle
MAX_AGENTIC_CYCLES=3 # How many plan-execute-review loops
AGENTIC_LOOP_ENABLED=true # Enable adaptive replanning
Hauptfunktionen
1. Intelligente Werkzeug-Schaltflächen (GUI)
Ein-Klick-Zugriff auf häufige Reverse-Engineering-Aufgaben:
