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:
- 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.
- 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. |
Prerrequisitos
- Ninja binario
- Python 3.12+
- Claude Desktop (o su integración preferida)
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:
Configuración automatizada (Mac)
En una Mac, puedes automatizar la configuración ejecutando:
Configuración manual
En otros sistemas operativos o para configurar manualmente la integración de Claude Desktop:
- Vaya a
Settings > Developer > Edit Config
- Agregue la siguiente configuración:
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
- Abra Binary Ninja e instale el complemento
Binary Ninja MCP
- Reinicie Binary Ninja y luego abra un binario
- Inicie el servidor MCP (
Plugins > MCP Server > Start MCP Server
) - 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:
Contribuyendo
Se agradecen las contribuciones. No dudes en enviar una solicitud de incorporación de cambios.
This server cannot be installed
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.