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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
binary-ninja-headless-mcp — Servidor Headless Binary Ninja MCP — brindando a agentes de IA profundas capacidades de ingeniería inversa a través de 180 herramientas. | Kitploit
Herramientas/GitHubGitHub/mrphrazer/binary-ninja-headless-mcp
Ingeniería InversaScripting y AutomatizaciónDepuradoresFuzzingUtilidades y FrameworksAnálisis de BinariosAprendizaje y EducaciónReversing Asistido por IA

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 →
GitHub
mrphrazer/binary-ninja-headless-mcp

binary-ninja-headless-mcp

Servidor Headless Binary Ninja MCP — brindando a agentes de IA profundas capacidades de ingeniería inversa a través de 180 herramientas.

Ver Repositorio
2351921hace 10 díasRevisado por Kitploit
Compartir

Binary Ninja Headless MCP

Un servidor Binary Ninja sin interfaz gráfica que habla MCP (Model Context Protocol), dando a los agentes de IA acceso completo a flujos de trabajo profundos de ingeniería inversa: desensamblado, IL, parcheo, tipos, referencias cruzadas y más, sin GUI.

Diseñado para ejecutarse en el mismo contenedor Docker que el runtime del agente. Sin sidecars, sin servicios adicionales.

Este proyecto completo —código, pruebas y documentación— está 100% vibecoded.

Por qué

Los servidores MCP existentes de Binary Ninja están ligados a una GUI o exponen una superficie de herramientas limitada. Este servidor es solo headless y está diseñado para flujos de trabajo impulsados por agentes en entornos de VM/contenedor en caja de arena: el agente obtiene control total sobre el sistema de análisis, automatizando grandes partes de la ingeniería inversa mientras discutes y diriges el proceso interactivamente.

El objetivo es una interfaz donde los agentes puedan inspeccionar, refinar y extender un análisis a lo largo del tiempo — actualizando tipos, símbolos y metadatos, mejorando la base de datos de análisis incrementalmente, aplicando parches e iterando de forma segura con deshacer/rehacer, y ejecutando scripts personalizados cuando un flujo de trabajo necesite algo a medida.

Características

  • 181 herramientas en 36 grupos de características: análisis, desensamblado, IL, parcheo, deshacer/rehacer, tipos, flujos de trabajo, memoria, búsqueda, referencias cruzadas, scripting y más.
  • Solo lectura por defecto con flujos de mutación segura (deshacer/rehacer, transacciones).
  • Acceso a scripting mediante binja.eval y binja.call para todo lo que el catálogo de herramientas no cubra.
  • Transportes Stdio y TCP.
  • Cero dependencias runtime aparte de Binary Ninja.
  • Modo backend falso para CI y desarrollo sin licencia de Binary Ninja.

Prerrequisitos

  • Python 3.11+
  • Una instalación de Binary Ninja con una licencia headless y el módulo Python binaryninja importable en tu runtime (para análisis real)
  • Para CI/desarrollo sin Binary Ninja, usa el modo backend falso

Instalación

git clone https://github.com/mrphrazer/binary-ninja-headless-mcp.git
cd binary-ninja-headless-mcp
pip install .

O instala directamente desde la raíz del repositorio sin clonar:

pip install git+https://github.com/mrphrazer/binary-ninja-headless-mcp.git

Inicio Rápido

Transporte Stdio (por defecto):

python3 binary_ninja_headless_mcp.py

Transporte TCP:

python3 binary_ninja_headless_mcp.py --transport tcp --host 127.0.0.1 --port 8765

Modo backend falso (no requiere Binary Ninja):

python3 binary_ninja_headless_mcp.py --fake-backend

Uso con Agentes de IA

Este servidor habla MCP estándar sobre stdio (por defecto) o tcp, por lo que cualquier host de agente compatible con MCP puede usarlo.

Claude Code

claude mcp add binary_ninja_headless_mcp -- python3 /path/to/binary-ninja-headless-mcp/binary_ninja_headless_mcp.py

O agrégalo a .mcp.json de tu proyecto:

{
  "mcpServers": {
    "binary_ninja_headless_mcp": {
      "command": "python3",
      "args": ["binary_ninja_headless_mcp.py"],
      "cwd": "/path/to/binary-ninja-headless-mcp"
    }
  }
}

Codex

codex mcp add binary_ninja_headless_mcp -- python3 binary_ninja_headless_mcp.py

Host MCP Genérico

  • Registra un servidor llamado binary_ninja_headless_mcp.
  • Usa el comando python3 con args ["binary_ninja_headless_mcp.py"] cuando cwd sea la raíz del repositorio, o usa una ruta de script absoluta en args.
  • Establece cwd a la ruta del repositorio si quieres que rutas relativas como samples/ls se resuelvan correctamente.
  • Usa transporte stdio a menos que tu host requiera TCP.
  • Para modo falso (sin Binary Ninja instalado), añade --fake-backend.
  • Verifica la conectividad llamando a health.ping, luego session.open.

Patrón de Colocalización Docker

Modelo de despliegue recomendado: ejecuta el proceso del agente y este servidor MCP en la misma imagen de contenedor.

Ejemplo base:

FROM python:3.11-slim
WORKDIR /app
COPY . /app
RUN python -m pip install --upgrade pip && pip install ruff pytest
CMD ["python3", "binary_ninja_headless_mcp.py"]

Si necesitas análisis real de Binary Ninja en el contenedor, añade tu runtime de Binary Ninja + configuración de licencia en esta misma imagen e inicia el agente con este servidor MCP configurado.

Métodos MCP

  • initialize
  • ping
  • tools/list
  • tools/call
  • shutdown

Comportamiento de tools/list:

  • Sin parámetros explícitos de paginación, devuelve el catálogo completo de herramientas.
  • Si se proporciona offset o limit, usa salida paginada (offset=0, limit=50 por defecto en modo paginado).
  • Soporta filtrado mediante:
    • prefix (por ejemplo binary.)
    • query (coincidencia de subcadena contra nombre/descripción de la herramienta)
  • Devuelve metadatos de paginación: offset, limit, total, has_more.
  • Cuando una página está truncada (has_more=true), incluye next_offset y una sugerencia notice.

Comportamiento de la respuesta de llamada a herramienta:

  • structuredContent es el payload completo canónico.
  • content[0].text es una cadena de resumen compacta (no duplicación JSON completa).
  • Esta división es intencional para mantener el uso de contexto más pequeño mientras se exponen datos completos legibles por máquina.

Calidad y Pruebas

Este repositorio está bien probado y tiene puertas de calidad obligatorias.

  • Suite de pruebas: ejecuta pytest --collect-only -q para el número actual de pruebas recogidas.
  • El flujo de CI exige:
    • ruff format --check .
    • ruff check .
    • pytest
  • CI usa BINARY_NINJA_HEADLESS_MCP_FAKE_BACKEND=1 para que las comprobaciones se ejecuten sin requerir instalación de Binary Ninja.
  • Pruebas estructurales adicionales verifican la consistencia del registro de herramientas y la alcanzabilidad del backend.

Controles de Contexto

  • El modo de solo lectura es el predeterminado para las sesiones abiertas (read_only=true).
  • binary.basic_blocks_at y function.basic_blocks están paginados (offset/limit).
  • memory.read tiene un tope de respuesta estricto: length <= 65536.

Limitaciones

  • Las APIs Enterprise actualmente no están cubiertas.
  • Las APIs del depurador actualmente no están cubiertas.

Modelo de Seguridad

  • La comunicación MCP (stdio/tcp) no está autenticada por defecto.
  • El servidor expone scripting arbitrario mediante binja.eval y acceso amplio a la API mediante binja.call.
  • Esto es intencional para entornos de agentes confiables y contenedorizados.
  • No expongas este servidor directamente a usuarios o redes no confiables.

Flujo de Trabajo de Desarrollo Local

ruff format --check .
ruff check .
BINARY_NINJA_HEADLESS_MCP_FAKE_BACKEND=1 pytest -q
## Fuzzer de Características

Usa el fuzzer de características MCP incorporado para ejercitar una amplia superficie de herramientas contra `samples/ls`.

Backend real Binary Ninja:

```bash
python3 -m binary_ninja_headless_mcp.fuzzer --binary samples/ls --iterations 120 --seed 1337

Ejecución de prueba con backend falso:

python3 -m binary_ninja_headless_mcp.fuzzer --binary samples/ls --fake-backend --iterations 20

Escribe un informe de cobertura JSON:

python3 -m binary_ninja_headless_mcp.fuzzer --binary samples/ls --report-json /tmp/mcp-fuzzer-report.json
## Banderas útiles:

- `--min-success-tools N`: sale con código no cero si menos de `N` herramientas tuvieron éxito.
- `--verbose`: imprime cada llamada a herramienta mientras se fuzzea.
- `--update-analysis`: abre la sesión semilla con `update_analysis=true`.

## Catálogo de Características
Descargar herramienta