Skip to main content
Glama

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

Related MCP server: MCPunk

Ejemplos

Generar un informe de análisis binario

Generación de informes de análisis binario

Cambiar el nombre de las funciones

Demostración de la función Cambiar nombre

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ón

Descripción

get_binary_status

Obtener el estado actual del binario cargado.

list_classes

Enumere todos los nombres de espacios de nombres/clases en el programa.

list_data_items

Enumere las etiquetas de datos definidas y sus valores.

list_exports

Lista de funciones/símbolos exportados.

list_imports

Enumere los símbolos importados en el programa.

list_methods

Enumere todos los nombres de funciones en el programa.

list_namespaces

Enumere todos los espacios de nombres no globales en el programa.

list_segments

Enumere todos los segmentos de memoria en el programa.

rename_data

Cambiar el nombre de una etiqueta de datos en la dirección especificada.

rename_function

Cambiar el nombre de una función por su nombre actual a un nuevo nombre definido por el usuario.

search_functions_by_name

Busque funciones cuyo nombre contenga la subcadena dada.

decompile_function

Descompila una función específica por nombre y devuelve el código C descompilado.

set_comment

Establecer un comentario en una dirección específica.

set_function_comment

Establecer un comentario para una función.

get_comment

Obtenga el comentario en una dirección específica.

get_function_comment

Obtener el comentario de una función.

delete_comment

Eliminar el comentario en una dirección específica.

delete_function_comment

Eliminar el comentario de una función.

get_assembly_function

Obtenga la representación del ensamblaje de una función por nombre o dirección.

function_at

Recupera el nombre de la función a la que pertenece la dirección.

code_references

Recupera nombres y direcciones de funciones que llaman a la función dada.

get_user_defined_type

Recupera la definición de un tipo definido por el usuario (estructura, enumeración, typedef, unión).

rename_variable

Cambiar el nombre de una variable dentro de una función dada.

retype_variable

Reescribir la variable dentro de una función dada.

define_types

Agregar definiciones de tipo desde una definición de tipo de cadena C.

edit_function_signature

Editar la firma de una función dada, expresada como una cadena de tipo.

Prerrequisitos

Instalación

Complemento Binary Ninja

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

Listado del administrador de complementos

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.

Integración de Claude

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fosdickio/binary_ninja_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server