
OGhidra — Updated!
OGhidra conecta Modelos de Linguagem Grandes (LLMs) via Ollama com a plataforma de engenharia reversa Ghidra, possibilitando análise binária orientada por IA por meio de linguagem natural. Interaja com o Ghidra usando consultas conversacionais e automatize fluxos de trabalho complexos de engenharia reversa.
OGhidra 3 - Engenharia Reversa com IA usando Ghidra
Para a versão que usa um Orchestrator inspirado no Claude, veja https://github.com/llnl/OGhidra/tree/orchestrator
OGhidra conecta Grandes Modelos de Linguagem à plataforma de engenharia reversa do Ghidra, permitindo análise binária orientada por IA através de linguagem natural. Analise binários de forma conversacional, automatize fluxos de trabalho complexos e mantenha privacidade total com modelos de IA locais.
Tutorial de Configuração no YouTube
O que é OGhidra?
OGhidra aprimora o Ghidra com capacidades de IA, permitindo que você:
- Análise em Linguagem Natural - Faça perguntas sobre funções, strings e imports em inglês simples
- Fluxos de Trabalho Automatizados - Renomeie funções, detecte padrões, gere relatórios abrangentes
- Modelos de IA Locais - Privacidade completa com modelos rodando em seu hardware (Ollama)
- Suporte a IA na Nuvem - Conecte-se a APIs externas (OpenAI, Google Gemini, Anthropic Claude)
- Detecção de Malware - Correspondência automática de padrões para mais de 12 técnicas de evasão e injeção
- Enumeração Inteligente - Construa grafos de conhecimento consultáveis a partir da análise binária
- Análise Multi-Instância - Execute múltiplas instâncias do Ghidra para análise paralela
Como Funciona
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
Loop Agente: OGhidra usa um sistema de planejamento adaptativo. Após cada ciclo de execução, os resultados são revisados e a IA pode optar por coletar mais informações ou refinar sua análise antes de fornecer a resposta final.
Início Rápido
Pré-requisitos
- Python 3.12+ - Verifique a versão:
python --version - Ghidra 12.0.3 (Recomendado) - Baixe em Ghidra Releases
- O caminho de construção/instalação do plugin está documentado para o Ghidra 12.0.3
- Testado com: Ghidra 11.0.3, 11.3.2, 12.0.2, 12.0.3
- Java 21 - Necessário para construir a extensão do Ghidra 12.0.3:
java -version - Ollama (opcional, para modelos locais) - Instale de ollama.com
Instalação
# 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
# Edite .env com suas configurações
Configurar Plugin do Ghidra
As etapas de construção do plugin OGhidraMCP abaixo têm como alvo o Ghidra 12.0.3 (recomendado). Há também um tutorial em vídeo no YouTube: https://www.youtube.com/watch?v=hBD92FUgR0Y
Construindo a Extensão GhidraMCP
Como desenvolvedor, você precisará construir a extensão GhidraMCP antes de instalá-la no Ghidra:
-
Pré-requisitos:
- Ghidra 12.0.3 instalado
- Java 21
-
Opção 1: Usando os scripts de construção automatizados:
-
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
-
-
Opção 2: Processo de construção manual:
-
Crie/atualize
OGhidraMCP/gradle.propertiescom o caminho de instalação do Ghidra: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
-
-
Localize a extensão construída:
- O arquivo zip da extensão é criado em
OGhidraMCP/dist/ - O nome do arquivo será algo como
ghidra_12.0.3_PUBLIC_YYYYMMDD_OGhidraMCP.zip
- O arquivo zip da extensão é criado em
Instalando a Extensão GhidraMCP
Após ter construído a extensão com sucesso:
-
Instale no Ghidra:
- Abra o Ghidra -> File -> Install Extensions
- Clique em Add Extension (ícone de mais verde)
- Navegue até o diretório
OGhidraMCP/dist/ - Selecione o arquivo zip da extensão recém-construída (ex.:
ghidra_12.0.3_PUBLIC_YYYYMMDD_OGhidraMCP.zip) - Reinicie o Ghidra
-
Ative o plugin:
- Abra um projeto do Ghidra
- File → Configure → Enable Developer
- Ative o plugin
OGhidraMCP - O servidor iniciará em
http://localhost:8080/methods
VOCÊ PRECISA TER O CODE BROWSER ABERTO
Baixar Modelos de IA
# Para Ollama (modelos locais)
ollama pull gemma3:27b # Bom equilíbrio (20GB RAM)
ollama pull nomic-embed-text # Modelo de embedding para RAG
# Modelos alternativos
ollama pull gpt-oss:120b # Alta qualidade (80GB RAM)
ollama pull devstral-2:123b # Alta qualidade (80GB RAM)
ollama pull devstral-2:123b-cloud # Modelo na Nuvem
Iniciar OGhidra
# Modo GUI (recomendado)
uv run main.py --ui
# CLI Interativa
uv run main.py --interactive
# Na CLI interativa, teste a conexão
health
Se você iniciou o modo GUI, use:
curl http://localhost:8080/methods
Configuração
Edite .env para configurar seu provedor de IA:
Opção 1: Modelos Locais (Ollama)
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434/
OLLAMA_MODEL=gemma3:27b
OLLAMA_EMBEDDING_MODEL=nomic-embed-text
Opção 2: APIs Externas
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
Opção 3: API Personalizada Compatível com 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
Configurações de Gerenciamento de Contexto
Ajuste com base na janela de contexto do seu modelo:
# Orçamento de contexto em tokens (ajuste conforme o limite do seu modelo)
CONTEXT_BUDGET=100000 # 100K tokens para modelos de médio porte
# 200K+ para modelos de ponta
# Configurações de execução
MAX_EXECUTION_STEPS=5 # Passos por ciclo de planejamento
MAX_AGENTIC_CYCLES=3 # Quantos ciclos de planejar-executar-revisar
AGENTIC_LOOP_ENABLED=true # Ativar replanejamento adaptativo
Principais Funcionalidades
1. Botões de Ferramentas Inteligentes (GUI)
Acesso com um clique a tarefas comuns de engenharia reversa:
