Skip to main content
Glama
fosdickio

Binary Ninja MCP

by fosdickio

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

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

Функции

  • Простая интеграция в реальном времени между клиентами Binary Ninja и MCP

  • Улучшенный процесс обратного проектирования с помощью ИИ

  • Основная поддержка Claude Desktop как клиента MCP, но расширяемая для других интеграций

Related MCP server: GhidraMCP

Примеры

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

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

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

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

Компоненты

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

  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

Внося вклад

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    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.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that allows LLMs to autonomously reverse engineer applications by exposing Ghidra's functionality, including decompiling binaries, analyzing code, and renaming methods and data.
    Apache 2.0
  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables AI-assisted reverse engineering by bridging Binary Ninja with Large Language Models through 40+ analysis tools. Provides comprehensive binary analysis capabilities including decompilation, symbol management, type analysis, and documentation generation through natural language interactions.
    50
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A multi-backend MCP server that exposes binary analysis capabilities from IDA Pro and Ghidra, allowing LLMs to directly drive reverse-engineering tools via natural language.
    11
    177
    Apache 2.0