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

Внося вклад

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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
    A
    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.
    49
    MIT
  • A
    license
    Not graded
    quality
    B
    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.
    151
    Apache 2.0

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