
OGhidra — Updated!
OGhidra collega i Grandi Modelli Linguistici (LLM) tramite Ollama con la piattaforma di reverse engineering Ghidra, consentendo l'analisi binaria basata sull'intelligenza artificiale attraverso il linguaggio naturale. Interagisci con Ghidra mediante query conversazionali e automatizza complessi flussi di lavoro di reverse engineering.
OGhidra 3 - Reverse Engineering potenziato dall'IA con Ghidra
Per la versione che utilizza un Orchestrator ispirato a Claude, vedi https://github.com/llnl/OGhidra/tree/orchestrator
OGhidra collega i Large Language Models con la piattaforma di reverse engineering di Ghidra, consentendo l'analisi binaria guidata dall'IA attraverso il linguaggio naturale. Analizza i binari in modo conversazionale, automatizza flussi di lavoro complessi e mantieni la completa privacy con modelli IA locali.
Tutorial di Configurazione su YouTube
Cos'è OGhidra?
OGhidra potenzia Ghidra con funzionalità IA, permettendoti di:
- Analisi in Linguaggio Naturale - Fai domande su funzioni, stringhe e importazioni in un inglese semplice
- Flussi di Lavoro Automatizzati - Rinomina funzioni, rileva pattern, genera report completi
- Modelli IA Locali - Privacy completa con modelli eseguiti sul tuo hardware (Ollama)
- Supporto IA Cloud - Connettiti a API esterne (OpenAI, Google Gemini, Anthropic Claude)
- Rilevamento Malware - Pattern matching automatico per oltre 12 tecniche di evasione e iniezione
- Enumerazione Intelligente - Costruisci grafi di conoscenza interrogabili dall'analisi binaria
- Analisi Multi-Istanza - Esegui più istanze di Ghidra per l'analisi parallela
Come Funziona
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
Ciclo Agentico: OGhidra utilizza un sistema di pianificazione adattivo. Dopo ogni ciclo di esecuzione, i risultati vengono revisionati e l'IA può scegliere di raccogliere ulteriori informazioni o affinare la propria analisi prima di fornire la risposta finale.
Avvio Rapido
Prerequisiti
- Python 3.12+ - Controlla la versione:
python --version - Ghidra 12.0.3 (Consigliata) - Scarica da Ghidra Releases
- Il percorso di build/installazione del plugin è documentato per Ghidra 12.0.3
- Testata con: Ghidra 11.0.3, 11.3.2, 12.0.2, 12.0.3
- Java 21 - Richiesto per compilare l'estensione di Ghidra 12.0.3:
java -version - Ollama (opzionale, per modelli locali) - Installa da ollama.com
Installazione
# 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
Configurazione del Plugin Ghidra
I passaggi di build del plugin OGhidraMCP riportati di seguito riguardano Ghidra 12.0.3 (consigliata). C'è anche un tutorial video su YouTube: https://www.youtube.com/watch?v=hBD92FUgR0Y
Compilazione dell'Estensione GhidraMCP
In qualità di sviluppatore, dovrai compilare l'estensione GhidraMCP prima di installarla in Ghidra:
-
Prerequisiti:
- Ghidra 12.0.3 installata
- Java 21
-
Opzione 1: Utilizzo degli script di build automatizzati:
-
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
-
-
Opzione 2: Processo di build manuale:
-
Crea/aggiorna
OGhidraMCP/gradle.propertiescon il percorso della tua installazione di Ghidra:GHIDRA_INSTALL_DIR=/absolute/path/to/ghidra_12.0.3_PUBLIC -
Su Unix/Linux/macOS:
cd OGhidraMCP $GHIDRA_INSTALL_DIR/support/gradle/gradlew buildExtension --info -
Su Windows:
cd OGhidraMCP "%GHIDRA_INSTALL_DIR%\support\gradle\gradlew.bat" buildExtension --info
-
-
Individua l'estensione compilata:
- Il file zip dell'estensione viene creato in
OGhidraMCP/dist/ - Il nome del file sarà simile a
ghidra_12.0.3_PUBLIC_YYYYMMDD_OGhidraMCP.zip
- Il file zip dell'estensione viene creato in
Installazione dell'Estensione GhidraMCP
Dopo aver compilato con successo l'estensione:
-
Installa in Ghidra:
- Apri Ghidra -> File -> Install Extensions
- Clicca su Add Extension (icona più verde)
- Sfoglia fino alla directory
OGhidraMCP/dist/ - Seleziona il file zip dell'estensione appena compilata (ad es.,
ghidra_12.0.3_PUBLIC_YYYYMMDD_OGhidraMCP.zip) - Riavvia Ghidra
-
Abilita il plugin:
- Apri un progetto Ghidra
- File → Configure → Enable Developer
- Abilita il plugin
OGhidraMCP - Il server si avvierà su
http://localhost:8080/methods
È NECESSARIO AVERE IL CODE BROWSER APERTO
Download dei Modelli IA
# 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
Avvio di OGhidra
# GUI Mode (recommended)
uv run main.py --ui
# Interactive CLI
uv run main.py --interactive
# In interactive CLI, test connection
health
Se hai avviato la modalità GUI, usa:
curl http://localhost:8080/methods
Configurazione
Modifica .env per configurare il tuo provider IA:
Opzione 1: Modelli Locali (Ollama)
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434/
OLLAMA_MODEL=gemma3:27b
OLLAMA_EMBEDDING_MODEL=nomic-embed-text
Opzione 2: API Esterne
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
Opzione 3: API Personalizzata Compatibile con OpenAI
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
Impostazioni di Gestione del Contesto
Regola in base alla finestra di contesto del tuo modello:
# 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
Funzionalità Principali
1. Pulsanti Strumento Intelligenti (GUI)
Accesso con un clic alle comuni attività di reverse engineering:
