Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
OGhidra — OGhidra conecta Grandes Modelos de Lenguaje (LLMs) vía Ollama con la plataforma de ingeniería inversa Ghidra, lo que permite el análisis binario impulsado por IA a través del lenguaje natural. Interactúa con Ghidra mediante consultas conversacionales y automatiza flujos de trabajo complejos de ingeniería inversa. | Kitploit
Herramientas/GitHubGitHub/llnl/oghidra
Análisis de VulnerabilidadesIngeniería InversaDepuradoresAnálisis de MalwareAnálisis de BinariosAprendizaje AutomáticoAprendizaje y EducaciónReversing Asistido por IA
GitHubllnl/oghidra

OGhidra

Ver Repositorio
39745100hace 6 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

Acerca de

OGhidra conecta Grandes Modelos de Lenguaje (LLMs) vía Ollama con la plataforma de ingeniería inversa Ghidra, lo que permite el análisis binario impulsado por IA a través del lenguaje natural. Interactúa con Ghidra mediante consultas conversacionales y automatiza flujos de trabajo complejos de ingeniería inversa.

Compartir
# OGhidra 3 - Ingeniería inversa impulsada por IA con Ghidra

Para la versión que utiliza un Orchestrator inspirado en Claude, consulta https://github.com/llnl/OGhidra/tree/orchestrator

![Python Version](https://img.shields.io/badge/python-3.12+-blue?logo=python)
![License](https://img.shields.io/badge/license-BSD--3--Clause-green)
![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)

**OGhidra** une los Grandes Modelos de Lenguaje con la plataforma de ingeniería inversa de Ghidra, permitiendo análisis de binarios impulsados por IA a través del lenguaje natural. Analiza binarios de forma conversacional, automatiza flujos de trabajo complejos y mantén total privacidad con modelos de IA locales.

Tutorial de configuración en YouTube

[![Introducción a OGhidra](https://assets.kitploit.com/production/public/readmes/10151/443eca2360063999929a402f875fabea926a7f9865d6eec5f871bdfc861cecb3.jpg)](https://www.youtube.com/watch?v=hBD92FUgR0Y)

---

## ¿Qué es OGhidra?

OGhidra mejora Ghidra con capacidades de IA, permitiéndote:

- **Análisis en lenguaje natural** - Haz preguntas sobre funciones, cadenas e importaciones en inglés sencillo
- **Flujos de trabajo automatizados** - Renombra funciones, detecta patrones, genera informes completos
- **Modelos de IA locales** - Privacidad total con modelos que se ejecutan en tu hardware (Ollama)
- **Soporte de IA en la nube** - Conéctate a API externas (OpenAI, Google Gemini, Anthropic Claude)
- **Detección de malware** - Coincidencia automática de patrones para más de 12 técnicas de evasión e inyección
- **Enumeración inteligente** - Construye grafos de conocimiento consultables a partir del análisis de binarios
- **Análisis multi-instancia** - Ejecuta múltiples instancias de Ghidra para análisis en paralelo

### Cómo funciona

```mermaid
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
```

**Bucle agéntico**: OGhidra utiliza un sistema de planificación adaptativa. Después de cada ciclo de ejecución, los resultados se revisan y la IA puede optar por recopilar más información o refinar su análisis antes de ofrecer la respuesta final.

---

## Inicio rápido

### Requisitos previos

1. **Python 3.12+** - Verifica la versión: `python --version`
2. **Ghidra 12.0.3** (Recomendado) - Descárgalo desde [Ghidra Releases](https://github.com/NationalSecurityAgency/ghidra/releases)
   - La ruta de compilación/instalación del plugin está documentada para Ghidra 12.0.3
   - Probado con: Ghidra 11.0.3, 11.3.2, 12.0.2, 12.0.3
3. **Java 21** - Requerido para compilar la extensión de Ghidra 12.0.3: `java -version`
4. **Ollama** (opcional, para modelos locales) - Instálalo desde [ollama.com](https://ollama.com/)

### Instalación

```bash
# 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
```

### Configuración del plugin de Ghidra

Los pasos de compilación del plugin OGhidraMCP a continuación están dirigidos a Ghidra 12.0.3 (recomendado).
También hay un tutorial en video de YouTube: https://www.youtube.com/watch?v=hBD92FUgR0Y

#### Compilación de la extensión GhidraMCP

Como desarrollador, necesitarás compilar la extensión GhidraMCP antes de instalarla en Ghidra:

1. **Requisitos previos**:
   - Ghidra 12.0.3 instalado
   - Java 21

2. **Opción 1: Usar los scripts de compilación automatizados**:
   - Windows:

     ```bat
     # 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:

     ```bash
     # 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
     ```

3. **Opción 2: Proceso de compilación manual**:
   - Crea/actualiza `OGhidraMCP/gradle.properties` con la ruta de instalación de Ghidra:

     ```properties
     GHIDRA_INSTALL_DIR=/absolute/path/to/ghidra_12.0.3_PUBLIC
     ```

   - En Unix/Linux/macOS:
     ```bash
     cd OGhidraMCP
     $GHIDRA_INSTALL_DIR/support/gradle/gradlew buildExtension --info
     ```

   - En Windows:
     ```bat
     cd OGhidraMCP
     "%GHIDRA_INSTALL_DIR%\support\gradle\gradlew.bat" buildExtension --info
     ```

4. **Localiza la extensión compilada**:
   - El archivo zip de la extensión se crea en `OGhidraMCP/dist/`
   - El nombre del archivo será algo como `ghidra_12.0.3_PUBLIC_YYYYMMDD_OGhidraMCP.zip`

#### Instalación de la extensión GhidraMCP

Una vez que hayas compilado la extensión correctamente:

1. **Instalar en Ghidra**:
   - Abre Ghidra -> **File** -> **Install Extensions**
   - Haz clic en **Add Extension** (ícono de signo más verde)
   - Navega hasta tu directorio `OGhidraMCP/dist/`
   - Selecciona el archivo zip de la extensión recién compilada (p. ej., `ghidra_12.0.3_PUBLIC_YYYYMMDD_OGhidraMCP.zip`)
   - Reinicia Ghidra

2. **Habilitar el plugin**:
   - Abre un proyecto de Ghidra
   - **File** → **Configure** → **Enable Developer**
   - Habilita el plugin `OGhidraMCP`
   - El servidor se iniciará en `http://localhost:8080/methods`

   > **DEBES TENER EL CODE BROWSER ABIERTO**

### Descargar modelos de IA

```bash
# 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
```

### Iniciar OGhidra

```bash
# GUI Mode (recommended)
uv run main.py --ui

# Interactive CLI
uv run main.py --interactive

# In interactive CLI, test connection
health
```

Si iniciaste el modo GUI, usa:
```bash
curl http://localhost:8080/methods
```

---

## Configuración

Edita `.env` para configurar tu proveedor de IA:

### Opción 1: Modelos locales (Ollama)

```env
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434/
OLLAMA_MODEL=gemma3:27b
OLLAMA_EMBEDDING_MODEL=nomic-embed-text
```

### Opción 2: API externas

```env
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
```

### Opción 3: API personalizada compatible con OpenAI

```env
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
```

### Ajustes de gestión de contexto

Ajusta según la ventana de contexto de tu modelo:

```env
# 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
```

---

## Características principales

### 1. Botones de herramientas inteligentes (GUI)

Acceso con un clic a tareas comunes de ingeniería inversa:

| Tool                         | Description                                     |
| ---------------------------- | ----------------------------------------------- |
| **Analyze Current Function** | Análisis profundo del comportamiento de la función seleccionada |
| **Rename Current Function**  | La IA sugiere nombres significativos basados en el análisis |
| **Rename All Functions**     | Renombrado masivo con opciones Smart/Full/Rename-Only |
| **Analyze Imports**          | Identifica librerías y dependencias externas    |
| **Analyze Strings**          | Encuentra URL, credenciales, datos de configuración |
| **Generate Report**          | Evaluación integral de seguridad                |

### 2. Modos de tarea

Establece objetivos de análisis especializados:

```python
# In GUI: Use "Task Mode" dropdown
# In CLI: set task_mode <mode>

task_mode malware      # Malware analysis with pattern detection
task_mode vuln         # Vulnerability research focus
task_mode general      # General reverse engineering
```

### 3. Detección de patrones de malware

Detección automática de más de 12 patrones de malware:
- **Evasión**: PEB Walking, Dynamic API Resolution, Anti-Debug, Anti-VM
- **Inyección**: Process Injection (Local/Remote)
- **Persistencia**: Registry, File System Hooks
- **Ofuscación**: String Encoding, API Hashing
- **Escalada de privilegios**: Token manipulation, UAC bypass

Los patrones activan alertas automáticas en el contexto de la IA con mapeos MITRE ATT&CK.

### 4. Enumeración inteligente

Construye conocimiento enriquecido y consultable a partir del análisis de binarios:

```
# Enumerate all functions with AI summaries
# Choose from:
- Rename Only: Only process generic function names
- Smart Enumeration: Focus on security-relevant functions
- Full Enumeration: Analyze every function in the binary
```

Características:
- Extracción de metadatos estructurados (LOC, complejidad, operaciones)
- Optimización de búsqueda semántica
- Ensamblaje de contexto basado en intenciones
- Soporte multivecctor para recuperación precisa

### 5. Gestión de sesiones

Guarda y restaura sesiones de análisis:

```python
# Save progress
File → Save Session

# Load previous work
File → Load Session

# Auto-save after bulk operations
# Sessions include:
- Analyzed functions with summaries
- RAG vectors for semantic search
- Performance statistics
- UI state
```

---

## Configuración del backend

OGhidra admite dos tipos de backend:

- **MCP** — Se integra con el servidor GhidraMCP y requiere que el cliente de Ghidra esté ejecutándose durante el análisis
- **PyGhidra** — Admite análisis sin interfaz gráfica sin el cliente de Ghidra y elimina el componente de servidor requerido por MCP

### Selección de un backend

Usa la siguiente opción de línea de comandos para elegir un backend:

```bash
--ghidra-backend={http,pyghidra}
```

| Opción de backend | Descripción |
|----------------|-------------|
| `http` | Usa el backend GhidraMCP |
| `pyghidra` | Usa el backend PyGhidra |

---

## Configuración de PyGhidra

### Usar un proyecto de Ghidra existente

Especifica un archivo de proyecto de Ghidra (`.gpr`) al iniciar OGhidra:

```bash
--pyghidra-project=/path/to/project.gpr
```

PyGhidra requiere un proyecto de Ghidra válido para poder iniciar OGhidra.

---

### Seleccionar un programa

Especifica qué binario dentro del proyecto de Ghidra debe analizarse:

```bash
--pyghidra-program=<program_name>
```

ejemplo de llamada para seleccionar un programa en un proyecto de Ghidra:

```bash
uv run main.py --ui --ghidra-backend=pyghidra --pyghidra-project=/path/to/project.gpr --pyghidra-program=<program_name>
```

Requisitos:

- El nombre del programa debe coincidir exactamente con el nombre que se muestra en la GUI del proyecto de Ghidra
- Esta opción es obligatoria cuando se utiliza un proyecto existente
- No especificar un programa impedirá que OGhidra se inicie

---

### Iniciar un binario directamente

También puedes proporcionar una ruta de binario directamente:

```bash
--pyghidra-binary=/path/to/binary
```

Cuando se usa esta opción, PyGhidra automáticamente:

1. Crea un nuevo proyecto de Ghidra (`.gpr`)
2. Importa el binario
3. Lanza el binario en OGhidra para su análisis

ejemplo de llamada para iniciar un binario directamente:

uv run main.py --ui --ghidra-backend=pyghidra --pyghidra-binary=/path/to/binary

---

## Flujos de trabajo comunes

### Analizar un binario sospechoso

1. **Carga el binario en Ghidra** y ábrelo en CodeBrowser
2. **Habilita el plugin OGhidraMCP** (File → Configure)
3. **Inicia OGhidra**: `uv run main.py --ui`
4. **Configura el modo de tarea**: Selecciona "malware" en el menú desplegable
5. **Ejecuta Smart Enumeration**: Haz clic en "Rename All Functions" → "Smart Enumeration"
6. **Haz preguntas**: "¿Cuáles son las funciones de alto riesgo?" o "Muéstrame la comunicación de red"

### Generar informe de seguridad

```bash
# In GUI: Click "Generate Report" button
# Report includes:
- Executive Summary
- Function Inventory (renamed functions with behavior)
- Security Analysis (high-risk functions, patterns)
- Import Analysis
- String Analysis
- Recommendations
```

### Investigar una función específica

1. **Navega hasta la función en Ghidra**
2. **Haz clic en "Analyze Current Function"**
3. **Haz preguntas de seguimiento**:
   - "¿Qué hace esta función?"
   - "¿Es vulnerable a un desbordamiento de búfer?"
   - "¿Qué otras funciones llaman a esta?"

---

## Características avanzadas

### RAG (Generación aumentada por recuperación)

OGhidra utiliza embeddings vectoriales para la búsqueda semántica sobre las funciones analizadas:

```env
# Enable in .env
RESULT_CACHE_ENABLED=true
TIERED_CONTEXT_ENABLED=true
```

Beneficios:
- Recuerda análisis anteriores entre sesiones
- Encuentra funciones similares semánticamente
- Reduce llamadas redundantes a la LLM

### Optimización de contexto

La compresión de contexto por niveles conserva la información relevante:

```env
CURRENT_LOOP_MAX_CHARS=2000   # Recent: full detail
PREV_LOOP_MAX_CHARS=400       # Previous: summaries
OLDER_LOOP_MAX_CHARS=100      # Older: references only
```

### Registro de LLM

Realiza un seguimiento de todas las interacciones de IA para depuración:

```env
LLM_LOGGING_ENABLED=true
LLM_LOG_FILE=logs/llm_interactions.log
LLM_LOG_FORMAT=json
```

---

## Solución de problemas

### Problemas de conexión con Ghidra

```bash
# Verify plugin is loaded
# Open up codebrowser!

# Check server is running
curl http://localhost:8080/methods
```

### Problemas de conexión con Ollama

```bash
# Verify Ollama is running
ollama list

# Check connectivity
curl http://localhost:11434/api/tags

# Restart Ollama service
ollama serve
```

### Respuestas vacías / Desbordamiento de contexto

```env
# Reduce context budget
CONTEXT_BUDGET=50000

# Enable compaction
COMPACTION_ENABLED=true
COMPACTION_THRESHOLD=0.75
```

### Rendimiento lento

1. **Usa modelos más pequeños**: Cambia a `gemma3:9b`
2. **Reduce los trabajadores en paralelo**: Establece `max_workers=2` en operaciones masivas
3. **Desactiva los embeddings vectoriales**: `RESULT_CACHE_ENABLED=false`
4. **Aumenta el retraso de las solicitudes**: `CUSTOM_API_REQUEST_DELAY=2.0`

---

## Descripción general de la arquitectura

```
┌─────────────────────────────────────────────────────────────┐
│                        OGhidra UI                           │
│                  (GUI / Interactive CLI)                    │
└────────────────────────┬────────────────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────────────────┐
│                   Bridge (src/bridge.py)                    │
│  ┌────────────────────────────────────────────────────────┐ │
│  │ • Agentic Loop: Plan → Execute → Review → Replan       │ │
│  │ • Tool Router: Ghidra client, LLM client, CAG manager  │ │
│  │ • Context Manager: Budget allocation, compression      │ │
│  └────────────────────────────────────────────────────────┘ │
└───────────┬────────────────────────┬────────────────────────┘
            │                        │
            ▼                        ▼
┌───────────────────────┐  ┌─────────────────────────┐
│   Ghidra Client       │  │   LLM Clients           │
│ • GhidraMCP Plugin    │  │ • Ollama (local)        │
│ • Binary operations   │  │ • External APIs         │
│ • Decompilation       │  │ • Custom endpoints      │
└───────────────────────┘  └─────────────────────────┘
            │                        │
            └────────────┬───────────┘
                         ▼
┌─────────────────────────────────────────────────────────────┐
│               CAG Manager (Knowledge System)                │
│  ┌────────────────────────────────────────────────────────┐ │
│  │ • Vector Store: Semantic search over functions         │ │
│  │ • Pattern Detector: 12+ malware techniques             │ │
│  │ • Metadata Extractor: Structured function analysis     │ │
│  │ • Session Store: Persistent analysis state             │ │
│  └────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
```

---

## Contribuciones

¡Agradecemos las contribuciones! Áreas de interés:

- **Nuevos patrones de malware** para detección
- **Integraciones de proveedores de LLM**
- **Mejoras de UI/UX**
- **Optimizaciones de rendimiento**
- **Documentación** y ejemplos

Consulta [CODE_OF_CONDUCT.md](https://github.com/llnl/oghidra/blob/main/CODE_OF_CONDUCT.md) para conocer las pautas de la comunidad.

---

## Cita

Si utilizas OGhidra en tu investigación, por favor cita:

```bibtex
@software{oghidra2025,
  title = {OGhidra: AI-Powered Reverse Engineering with Ghidra},
  author = {Enoch Wang},
  year = {2025},
  url = {https://github.com/LLNL/OGhidra}
}
```

---

## Agradecimientos

OGhidra se basa en excelentes proyectos de código abierto:

- **[Ghidra](https://github.com/NationalSecurityAgency/ghidra)** — Plataforma de ingeniería inversa de la NSA
- **[Ollama](https://ollama.com/)** — Entorno de ejecución de LLM local
- **[LaurieWired/GhidraMCP](https://github.com/LaurieWired/GhidraMCP)** — Plugin original de Ghidra MCP
- **[starsong/GhydraMCP](https://github.com/starsong/GhydraMCP)** — Implementación mejorada de MCP

---

## Licencia

OGhidra se distribuye bajo los términos de la licencia BSD 3-Clause con una alternativa de licencia comercial.

Consulta [LICENSE](https://github.com/llnl/oghidra/blob/main/LICENSE) y [NOTICE.md](https://github.com/llnl/oghidra/blob/main/NOTICE.md) para más detalles.

**LLNL-CODE-2013290**

---

## Soporte

- **Problemas**: [GitHub Issues](https://github.com/LLNL/OGhidra/issues)
- **Discusiones**: [GitHub Discussions](https://github.com/LLNL/OGhidra/discussions)
- **Escríbeme directamente por correo**: [email protected]
Descargar herramienta