Binary Ninja MCP

by fosdickio
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

MCP de Binary Ninja

Este repositorio contiene un complemento de Binary Ninja, un servidor MCP y un puente que permite una integración perfecta de las capacidades de Binary Ninja con su cliente LLM favorito.

Características

  • Integración perfecta y en tiempo real entre los clientes Binary Ninja y MCP
  • Flujo de trabajo de ingeniería inversa mejorado con asistencia de IA
  • Soporte principal para Claude Desktop como cliente MCP, pero extensible para otras integraciones

Ejemplos

Generar un informe de análisis binario

Cambiar el nombre de las funciones

Componentes

Este repositorio contiene dos componentes separados:

  1. Un complemento de Binary Ninja que proporciona un servidor MCP que expone las capacidades de Binary Ninja mediante puntos finales HTTP. Puede usarse con cualquier cliente que implemente el protocolo MCP.
  2. Un componente puente MCP independiente que conecta su cliente MCP favorito con el servidor MCP de Binary Ninja. Si bien Claude Desktop es la ruta de integración principal, el servidor MCP puede usarse con otros clientes.

Integraciones compatibles

La siguiente tabla detalla qué integraciones con Binary Ninja son compatibles actualmente.

FunciónDescripción
get_binary_statusObtener el estado actual del binario cargado.
list_classesEnumere todos los nombres de espacios de nombres/clases en el programa.
list_data_itemsEnumere las etiquetas de datos definidas y sus valores.
list_exportsLista de funciones/símbolos exportados.
list_importsEnumere los símbolos importados en el programa.
list_methodsEnumere todos los nombres de funciones en el programa.
list_namespacesEnumere todos los espacios de nombres no globales en el programa.
list_segmentsEnumere todos los segmentos de memoria en el programa.
rename_dataCambiar el nombre de una etiqueta de datos en la dirección especificada.
rename_functionCambiar el nombre de una función por su nombre actual a un nuevo nombre definido por el usuario.
search_functions_by_nameBusque funciones cuyo nombre contenga la subcadena dada.
decompile_functionDescompila una función específica por nombre y devuelve el código C descompilado.
set_commentEstablecer un comentario en una dirección específica.
set_function_commentEstablecer un comentario para una función.
get_commentObtenga el comentario en una dirección específica.
get_function_commentObtener el comentario de una función.
delete_commentEliminar el comentario en una dirección específica.
delete_function_commentEliminar el comentario de una función.

Prerrequisitos

Instalación

Complemento Binary Ninja

Puede instalar el complemento a través del Administrador de complementos de Binary Ninja ( Plugins > Manage Plugins ).

Para configurar manualmente el complemento, este repositorio se puede copiar en la carpeta de complementos de Binary Ninja.

Puente de escritorio de Claude (opcional)

Esto solo es necesario si desea usar Claude Desktop como cliente MCP. Asegúrese de configurar primero su entorno virtual:

git clone git@github.com:fosdickio/binary_ninja_mcp.git cd binary_ninja_mcp python3 -m venv .venv source .venv/bin/activate # On macOS/Linux pip install -r bridge/requirements.txt

Configuración automatizada (Mac)

En una Mac, puedes automatizar la configuración ejecutando:

./scripts/setup_claude_desktop.py

Configuración manual

En otros sistemas operativos o para configurar manualmente la integración de Claude Desktop:

  1. Vaya a Settings > Developer > Edit Config
  2. Agregue la siguiente configuración:
{ "mcpServers": { "binary_ninja_mcp": { "command": "/ABSOLUTE/PATH/TO/binary_ninja_mcp/.venv/bin/python", "args": [ "/ABSOLUTE/PATH/TO/binary_ninja_mcp/bridge/binja_mcp_bridge.py" ] } } }

Nota: Reemplace /ABSOLUTE/PATH/TO con la ruta absoluta real al directorio de su proyecto. Debe usar el intérprete de Python del entorno virtual para acceder a las dependencias instaladas.

Uso

Escritorio de Claude

  1. Abra Binary Ninja e instale el complemento Binary Ninja MCP
  2. Reinicie Binary Ninja y luego abra un binario
  3. Inicie el servidor MCP ( Plugins > MCP Server > Start MCP Server )
  4. Iniciar Claude Desktop

La integración estará disponible automáticamente después de abrir Claude Desktop.

Ahora puedes empezar a preguntarle a Claude sobre el binario abierto. Ejemplos de preguntas:

  • "Generar un informe de análisis binario para el binario actual".
  • "Cambiar el nombre de la función X a Y en el binario actual".
  • "Enumera todas las funciones en el binario actual".
  • "¿Cuál es el estado del binario cargado?"

Otras integraciones de clientes de MCP

El puente se puede utilizar con otros clientes MCP implementando la capa de integración adecuada.

Desarrollo

La estructura del proyecto está organizada de la siguiente manera:

binary_ninja_mcp/ ├── bridge/ # MCP client integration ├── plugin/ # Binary Ninja plugin ├── scripts/ │ └── setup_claude_desktop.py # Setup script for Claude Desktop

Contribuyendo

Se agradecen las contribuciones. No dudes en enviar una solicitud de incorporación de cambios.

-
security - not tested
A
license - permissive license
-
quality - not tested

Un servidor que permite la integración perfecta de las capacidades de ingeniería inversa de Binary Ninja con la asistencia de LLM, lo que permite que herramientas de IA como Claude interactúen con las funciones de análisis binario en tiempo real.

  1. Features
    1. Examples
      1. Generating a Binary Analysis Report
      2. Renaming Functions
    2. Components
      1. Supported Integrations
        1. Prerequisites
          1. Installation
            1. Binary Ninja Plugin
            2. Claude Desktop Bridge (Optional)
          2. Usage
            1. Claude Desktop
            2. Other MCP Client Integrations
          3. Development
            1. Contributing
              ID: 2ezqrix216