
OGhidra — Updated!
OGhidra соединяет большие языковые модели (LLMs) через Ollama с платформой обратной инженерии Ghidra, обеспечивая AI-управляемый анализ бинарного кода с помощью естественного языка. Взаимодействуйте с Ghidra, используя запросы на естественном языке, и автоматизируйте сложные рабочие процессы обратной инженерии.
OGhidra 3 — Обратная разработка с помощью ИИ и Ghidra
Для версии с использованием Orchestrator, вдохновлённого Claude, см. https://github.com/llnl/OGhidra/tree/orchestrator
OGhidra объединяет большие языковые модели с платформой обратной разработки Ghidra, позволяя выполнять анализ бинарных файлов с помощью ИИ на естественном языке. Анализируйте бинарные файлы в диалоговом режиме, автоматизируйте сложные рабочие процессы и сохраняйте полную конфиденциальность с помощью локальных моделей ИИ.
YouTube Setup Tutorial
Что такое OGhidra?
OGhidra расширяет возможности Ghidra с помощью ИИ, что позволяет вам:
- Анализ на естественном языке — Задавайте вопросы о функциях, строках, импортах на простом английском
- Автоматизированные рабочие процессы — Переименовывайте функции, обнаруживайте шаблоны, создавайте комплексные отчёты
- Локальные модели ИИ — Полная конфиденциальность с моделями, работающими на вашем оборудовании (Ollama)
- Поддержка облачных ИИ — Подключайтесь к внешним API (OpenAI, Google Gemini, Anthropic Claude)
- Обнаружение вредоносного ПО — Автоматическое сопоставление шаблонов для 12+ методов обхода и инъекций
- Умное перечисление — Построение запрашиваемых графов знаний из анализа бинарных файлов
- Многопоточный анализ — Запуск нескольких экземпляров Ghidra для параллельного анализа
Как это работает
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
Агентный цикл: OGhidra использует адаптивную систему планирования. После каждого цикла выполнения результаты анализируются, и ИИ может решить собрать больше информации или уточнить анализ, прежде чем предоставить окончательный ответ.
Быстрый старт
Предварительные требования
- Python 3.12+ — Проверьте версию:
python --version - Ghidra 12.0.3 (рекомендуется) — Скачайте из Ghidra Releases
- Путь сборки/установки плагина описан для Ghidra 12.0.3
- Протестировано с: Ghidra 11.0.3, 11.3.2, 12.0.2, 12.0.3
- Java 21 — Необходима для сборки расширения Ghidra 12.0.3:
java -version - Ollama (опционально, для локальных моделей) — Установите с ollama.com
Установка
# 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
Шаги сборки плагина OGhidraMCP ниже предназначены для Ghidra 12.0.3 (рекомендуется). Также есть видеоурок на YouTube: https://www.youtube.com/watch?v=hBD92FUgR0Y
Сборка расширения GhidraMCP
В качестве разработчика вам нужно собрать расширение GhidraMCP перед установкой в Ghidra:
-
Предварительные требования:
- Установлена Ghidra 12.0.3
- Java 21
-
Вариант 1: Использование автоматизированных скриптов сборки:
-
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
-
-
Вариант 2: Ручная сборка:
-
Создайте/обновите
OGhidraMCP/gradle.properties, указав путь к установленной Ghidra:GHIDRA_INSTALL_DIR=/absolute/path/to/ghidra_12.0.3_PUBLIC -
На Unix/Linux/macOS:
cd OGhidraMCP $GHIDRA_INSTALL_DIR/support/gradle/gradlew buildExtension --info -
На Windows:
cd OGhidraMCP "%GHIDRA_INSTALL_DIR%\support\gradle\gradlew.bat" buildExtension --info
-
-
Найдите собранное расширение:
- Zip-архив расширения создаётся в
OGhidraMCP/dist/ - Имя файла будет примерно таким:
ghidra_12.0.3_PUBLIC_YYYYMMDD_OGhidraMCP.zip
- Zip-архив расширения создаётся в
Установка расширения GhidraMCP
После успешной сборки расширения:
-
Установка в Ghidra:
- Откройте Ghidra -> File -> Install Extensions
- Нажмите Add Extension (зелёный плюс)
- Перейдите в каталог
OGhidraMCP/dist/ - Выберите только что собранный zip-архив расширения (например,
ghidra_12.0.3_PUBLIC_YYYYMMDD_OGhidraMCP.zip) - Перезапустите Ghidra
-
Включите плагин:
- Откройте проект Ghidra
- File → Configure → Enable Developer
- Включите плагин
OGhidraMCP - Сервер запустится на
http://localhost:8080/methods
НЕОБХОДИМО, ЧТОБЫ CODE BROWSER БЫЛ ОТКРЫТ
Загрузка моделей ИИ
# 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
# GUI Mode (recommended)
uv run main.py --ui
# Interactive CLI
uv run main.py --interactive
# In interactive CLI, test connection
health
Если вы запустили режим GUI, используйте:
curl http://localhost:8080/methods
Конфигурация
Отредактируйте .env, чтобы настроить поставщика ИИ:
Вариант 1: Локальные модели (Ollama)
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434/
OLLAMA_MODEL=gemma3:27b
OLLAMA_EMBEDDING_MODEL=nomic-embed-text
Вариант 2: Внешние API
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
Вариант 3: Пользовательское API, совместимое с 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
Настройки управления контекстом
Настройте в зависимости от контекстного окна вашей модели:
# 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
Ключевые возможности
1. Умные кнопки инструментов (GUI)
Доступ к типовым задачам обратной разработки одним щелчком:
