Skip to main content
Glama

Binary Ninja MCP

by fosdickio

Двоичный ниндзя MCP

Этот репозиторий содержит плагин Binary Ninja, сервер MCP и мост, который обеспечивает бесшовную интеграцию возможностей Binary Ninja с вашим любимым клиентом LLM.

Функции

  • Простая интеграция в реальном времени между клиентами Binary Ninja и MCP
  • Улучшенный процесс обратного проектирования с помощью ИИ
  • Основная поддержка Claude Desktop как клиента MCP, но расширяемая для других интеграций

Примеры

Создание отчета по двоичному анализу

Генерация отчета по двоичному анализу

Переименование функций

Демонстрация функции переименования

Компоненты

Этот репозиторий содержит два отдельных компонента:

  1. Плагин Binary Ninja, который предоставляет сервер MCP, раскрывающий возможности Binary Ninja через конечные точки HTTP. Его можно использовать с любым клиентом, реализующим протокол MCP.
  2. Отдельный компонент моста MCP, который соединяет ваш любимый клиент MCP с сервером Binary Ninja MCP. Хотя Claude Desktop является основным путем интеграции, сервер MCP может использоваться с другими клиентами.

Поддерживаемые интеграции

В следующей таблице указано, какие интеграции с Binary Ninja поддерживаются в настоящее время.

ФункцияОписание
get_binary_statusПолучить текущий статус загруженного двоичного файла.
list_classesПеречислите все имена пространств имен/классов в программе.
list_data_itemsПеречислите определенные метки данных и их значения.
list_exportsСписок экспортированных функций/символов.
list_importsСписок импортированных символов в программе.
list_methodsПеречислите все имена функций в программе.
list_namespacesПеречислите все неглобальные пространства имен в программе.
list_segmentsПеречислите все сегменты памяти в программе.
rename_dataПереименовать метку данных по указанному адресу.
rename_functionПереименовать функцию, присвоив ей новое имя, определенное пользователем.
search_functions_by_nameПоиск функций, имя которых содержит заданную подстроку.
decompile_functionДекомпилировать определенную функцию по имени и вернуть декомпилированный код C.
set_commentОставьте комментарий по определенному адресу.
set_function_commentУстановить комментарий для функции.
get_commentПолучите комментарий по определенному адресу.
get_function_commentПолучить комментарий к функции.
delete_commentУдалить комментарий по указанному адресу.
delete_function_commentУдалить комментарий к функции.
get_assembly_functionПолучить ассемблерное представление функции по имени или адресу.
function_atПолучите имя функции, которой принадлежит адрес.
code_referencesПолучить имена и адреса функций, которые вызывают заданную функцию.
get_user_defined_typeИзвлечь определение пользовательского типа (структура, перечисление, typedef, объединение).
rename_variableПереименовать переменную внутри заданной функции.
retype_variableПерепечатайте переменную внутри заданной функции.
define_typesДобавьте определения типов из определения типа строки C.
edit_function_signatureИзменить сигнатуру данной функции, заданную как строковый тип.

Предпосылки

Установка

Плагин Binary Ninja

Вы можете установить плагин через менеджер плагинов Binary Ninja ( Plugins > Manage Plugins ).

Список менеджеров плагинов

Чтобы вручную настроить плагин, этот репозиторий можно скопировать в папку плагинов Binary Ninja.

Claude Desktop Bridge (опционально)

Это необходимо только в том случае, если вы хотите использовать Claude Desktop в качестве клиента MCP. Сначала убедитесь, что у вас настроена виртуальная среда:

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
Автоматическая конфигурация (Mac)

На Mac вы можете автоматизировать настройку, выполнив:

./scripts/setup_claude_desktop.py
Ручная настройка

В других операционных системах или для ручной настройки интеграции Claude Desktop:

  1. Перейдите в Settings > Developer > Edit Config
  2. Добавьте следующую конфигурацию:
{ "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" ] } } }

Примечание: замените /ABSOLUTE/PATH/TO на фактический абсолютный путь к каталогу вашего проекта. Для доступа к установленным зависимостям необходимо использовать интерпретатор Python виртуальной среды.

Использование

Клод Десктоп

  1. Откройте Binary Ninja и установите плагин Binary Ninja MCP
  2. Перезапустите Binary Ninja, а затем откройте двоичный файл.
  3. Запустите сервер MCP ( Plugins > MCP Server > Start MCP Server )
  4. Запустить Claude Desktop

Интеграция будет автоматически доступна после открытия Claude Desktop.

Клод Интеграция

Теперь вы можете начать подсказывать Клоду о текущем открытом бинарнике. Примеры подсказок:

  • «Создать отчет по бинарному анализу для текущего двоичного файла».
  • «Переименовать функцию X в Y в текущем двоичном файле».
  • «Перечислить все функции в текущем двоичном файле».
  • «Каков статус загруженного двоичного файла?»

Другие интеграции MCP-клиента

Мост можно использовать с другими клиентами MCP, реализовав соответствующий уровень интеграции.

Разработка

Структура проекта организована следующим образом:

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

Внося вклад

Вклады приветствуются. Пожалуйста, не стесняйтесь отправлять запрос на включение.

-
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.

Сервер, который обеспечивает бесшовную интеграцию возможностей обратного проектирования Binary Ninja с помощью LLM, позволяя инструментам ИИ, таким как Claude, взаимодействовать с функциями двоичного анализа в режиме реального времени.

  1. Функции
    1. Примеры
      1. Создание отчета по двоичному анализу
      2. Переименование функций
    2. Компоненты
      1. Поддерживаемые интеграции
        1. Предпосылки
          1. Установка
            1. Плагин Binary Ninja
            2. Claude Desktop Bridge (опционально)
          2. Использование
            1. Клод Десктоп
            2. Другие интеграции MCP-клиента
          3. Разработка
            1. Внося вклад

              Related MCP Servers

              • A
                security
                A
                license
                A
                quality
                A Model Context Protocol server that enables AI assistants to interact with IDA Pro for reverse engineering and binary analysis tasks.
                Last updated -
                8
                14
                Python
                MIT License
                • Linux
                • Apple
              • -
                security
                F
                license
                -
                quality
                A server that provides remote binary analysis capabilities through IDA Pro's headless mode, allowing users to manage and manipulate functions, variables, and other binary elements via the Multi-Client Protocol.
                Last updated -
                3
                Python
              • A
                security
                A
                license
                A
                quality
                An MCP server that enables Cline to analyze binaries using Binary Ninja with a Personal License through a bridge implementation.
                Last updated -
                4
                4
                Python
                GPL 3.0
              • -
                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 -
                Python
                MIT License
                • Linux
                • Apple

              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