
OGhidra — Mis à jour !
OGhidra relie les grands modèles de langage (LLM) via Ollama à la plateforme de rétro-ingénierie Ghidra, permettant une analyse binaire pilotée par l'IA grâce au langage naturel. Interagissez avec Ghidra à l'aide de requêtes conversationnelles et automatisez des flux de travail complexes de rétro-ingénierie.
OGhidra 3 - Rétro-ingénierie assistée par l'IA avec Ghidra
Pour la version utilisant un orchestrateur inspiré de Claude, voir https://github.com/llnl/OGhidra/tree/orchestrator
OGhidra fait le pont entre les grands modèles de langage et la plateforme de rétro-ingénierie de Ghidra, permettant une analyse binaire pilotée par l'IA en langage naturel. Analysez les binaires de manière conversationnelle, automatisez des flux de travail complexes et préservez une confidentialité totale grâce aux modèles IA locaux.
Tutoriel de configuration YouTube
Qu'est-ce qu'OGhidra ?
OGhidra améliore Ghidra avec des capacités d'IA, vous permettant de :
- Analyse en langage naturel - Posez des questions sur les fonctions, les chaînes de caractères et les importations en anglais simple
- Flux de travail automatisés - Renommez des fonctions, détectez des schémas, générez des rapports complets
- Modèles IA locaux - Confidentialité totale avec des modèles exécutés sur votre matériel (Ollama)
- Prise en charge de l'IA cloud - Connexion à des API externes (OpenAI, Google Gemini, Anthropic Claude)
- Détection de malwares - Correspondance automatique de motifs pour plus de 12 techniques d'évasion et d'injection
- Énumération intelligente - Construisez des graphes de connaissances interrogeables à partir de l'analyse binaire
- Analyse multi-instances - Exécutez plusieurs instances de Ghidra pour une analyse parallèle
Comment ça fonctionne
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
Agentic Loop : OGhidra utilise un système de planification adaptatif. Après chaque cycle d'exécution, les résultats sont examinés et l'IA peut choisir de collecter davantage d'informations ou d'affiner son analyse avant de fournir la réponse finale.
Démarrage rapide
Prérequis
- Python 3.12+ - Vérifiez la version :
python --version - Ghidra 12.0.3 (recommandé) - Téléchargez-le depuis Ghidra Releases
- Le chemin de compilation/installation du plugin est documenté pour Ghidra 12.0.3
- Testé avec : Ghidra 11.0.3, 11.3.2, 12.0.2, 12.0.3
- Java 21 - Requis pour compiler l'extension Ghidra 12.0.3 :
java -version - Ollama (facultatif, pour les modèles locaux) - Installez-le depuis 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
Configuration du plugin Ghidra
Les étapes de compilation du plugin OGhidraMCP ci-dessous ciblent Ghidra 12.0.3 (recommandé). Il existe aussi un tutoriel vidéo YouTube : https://www.youtube.com/watch?v=hBD92FUgR0Y
Compilation de l'extension GhidraMCP
En tant que développeur, vous devez compiler l'extension GhidraMCP avant de l'installer dans Ghidra :
-
Prérequis :
- Ghidra 12.0.3 installé
- Java 21
-
Option 1 : Utilisation des scripts de compilation automatisés :
-
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 : Compilation manuelle :
-
Créez/mettez à jour
OGhidraMCP/gradle.propertiesavec votre chemin d'installation de Ghidra :GHIDRA_INSTALL_DIR=/absolute/path/to/ghidra_12.0.3_PUBLIC -
Sur Unix/Linux/macOS :
cd OGhidraMCP $GHIDRA_INSTALL_DIR/support/gradle/gradlew buildExtension --info -
Sur Windows :
cd OGhidraMCP "%GHIDRA_INSTALL_DIR%\support\gradle\gradlew.bat" buildExtension --info
-
-
Localisez l'extension compilée :
- Le fichier zip de l'extension est créé dans
OGhidraMCP/dist/ - Le nom du fichier ressemblera à
ghidra_12.0.3_PUBLIC_YYYYMMDD_OGhidraMCP.zip
- Le fichier zip de l'extension est créé dans
Installation de l'extension GhidraMCP
Une fois l'extension compilée avec succès :
-
Installation dans Ghidra :
- Ouvrez Ghidra -> File -> Install Extensions
- Cliquez sur Add Extension (icône plus verte)
- Accédez à votre répertoire
OGhidraMCP/dist/ - Sélectionnez le fichier zip de l'extension nouvellement compilée (par ex.,
ghidra_12.0.3_PUBLIC_YYYYMMDD_OGhidraMCP.zip) - Redémarrez Ghidra
-
Activation du plugin :
- Ouvrez un projet Ghidra
- File → Configure → Enable Developer
- Activez le plugin
OGhidraMCP - Le serveur démarrera sur
http://localhost:8080/methods
VOUS DEVEZ AVOIR LE CODE BROWSER OUVERT
Télécharger les modèles 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
Lancer OGhidra
# GUI Mode (recommended)
uv run main.py --ui
# Interactive CLI
uv run main.py --interactive
# In interactive CLI, test connection
health
Si vous avez lancé le mode GUI, utilisez :
curl http://localhost:8080/methods
Configuration
Modifiez .env pour configurer votre fournisseur d'IA :
Option 1 : Modèles locaux (Ollama)
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434/
OLLAMA_MODEL=gemma3:27b
OLLAMA_EMBEDDING_MODEL=nomic-embed-text
Option 2 : API externes
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 : API personnalisée compatible 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
Paramètres de gestion du contexte
Ajustez selon la fenêtre de contexte de votre modèle :
# 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
Fonctionnalités clés
1. Boutons d'outils intelligents (GUI)
Accès en un clic aux tâches courantes de rétro-ingénierie :
