Skip to main content
Glama

Binary Ninja MCP

by fosdickio

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

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

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

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. Características
    1. Ejemplos
      1. Generar un informe de análisis binario
      2. Cambiar el nombre de las funciones
    2. Componentes
      1. Integraciones compatibles
        1. Prerrequisitos
          1. Instalación
            1. Complemento Binary Ninja
            2. Puente de escritorio de Claude (opcional)
          2. Uso
            1. Escritorio de Claude
            2. Otras integraciones de clientes de MCP
          3. Desarrollo
            1. Contribuyendo

              Related MCP Servers

              • A
                security
                F
                license
                A
                quality
                The server facilitates natural language interactions for exploring and understanding codebases, providing insights into data models and system architecture using a cost-effective, simple setup with support for existing Claude Pro subscriptions.
                Last updated -
                4
                20
                • Apple
              • A
                security
                A
                license
                A
                quality
                Chat with your codebase through intelligent code searching without embeddings by breaking files into logical chunks, giving the LLM tools to search these chunks, and letting it find specific code needed to answer your questions.
                Last updated -
                8
                55
                MIT License
              • -
                security
                A
                license
                -
                quality
                A Model Context Protocol server that enables Large Language Models to interact with Binary Ninja for reverse engineering tasks like viewing assembly code, decompiled code, renaming functions, and adding comments.
                Last updated -
                2
                MIT License
                • Linux
                • Apple
              • A
                security
                A
                license
                A
                quality
                A multi-language code analysis server that helps LLMs or humans automatically lint, type-check, and improve code with minimal installation friction, currently supporting Python with plans for other languages.
                Last updated -
                1
                3
                MIT License

              View all related MCP servers

              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