Двоичный ниндзя MCP
Этот репозиторий содержит плагин Binary Ninja, сервер MCP и мост, который обеспечивает бесшовную интеграцию возможностей Binary Ninja с вашим любимым клиентом LLM.
Функции
Простая интеграция в реальном времени между клиентами Binary Ninja и MCP
Улучшенный процесс обратного проектирования с помощью ИИ
Основная поддержка Claude Desktop как клиента MCP, но расширяемая для других интеграций
Related MCP server: MCPunk
Примеры
Создание отчета по двоичному анализу

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

Компоненты
Этот репозиторий содержит два отдельных компонента:
Плагин Binary Ninja, который предоставляет сервер MCP, раскрывающий возможности Binary Ninja через конечные точки HTTP. Его можно использовать с любым клиентом, реализующим протокол MCP.
Отдельный компонент моста MCP, который соединяет ваш любимый клиент MCP с сервером Binary Ninja MCP. Хотя Claude Desktop является основным путем интеграции, сервер MCP может использоваться с другими клиентами.
Поддерживаемые интеграции
В следующей таблице указано, какие интеграции с Binary Ninja поддерживаются в настоящее время.
Функция | Описание |
| Получить текущий статус загруженного двоичного файла. |
| Перечислите все имена пространств имен/классов в программе. |
| Перечислите определенные метки данных и их значения. |
| Список экспортированных функций/символов. |
| Список импортированных символов в программе. |
| Перечислите все имена функций в программе. |
| Перечислите все неглобальные пространства имен в программе. |
| Перечислите все сегменты памяти в программе. |
| Переименовать метку данных по указанному адресу. |
| Переименовать функцию, присвоив ей новое имя, определенное пользователем. |
| Поиск функций, имя которых содержит заданную подстроку. |
| Декомпилировать определенную функцию по имени и вернуть декомпилированный код C. |
| Оставьте комментарий по определенному адресу. |
| Установить комментарий для функции. |
| Получите комментарий по определенному адресу. |
| Получить комментарий к функции. |
| Удалить комментарий по указанному адресу. |
| Удалить комментарий к функции. |
| Получить ассемблерное представление функции по имени или адресу. |
| Получите имя функции, которой принадлежит адрес. |
| Получить имена и адреса функций, которые вызывают заданную функцию. |
| Извлечь определение пользовательского типа (структура, перечисление, typedef, объединение). |
| Переименовать переменную внутри заданной функции. |
| Перепечатайте переменную внутри заданной функции. |
| Добавьте определения типов из определения типа строки C. |
| Изменить сигнатуру данной функции, заданную как строковый тип. |
Предпосылки
Питон 3.12+
Claude Desktop (или предпочтительная интеграция)
Установка
Плагин Binary Ninja
Вы можете установить плагин через менеджер плагинов Binary Ninja ( Plugins > Manage Plugins ).

Чтобы вручную настроить плагин, этот репозиторий можно скопировать в папку плагинов Binary Ninja.
Claude Desktop Bridge (опционально)
Это необходимо только в том случае, если вы хотите использовать Claude Desktop в качестве клиента MCP. Сначала убедитесь, что у вас настроена виртуальная среда:
Автоматическая конфигурация (Mac)
На Mac вы можете автоматизировать настройку, выполнив:
Ручная настройка
В других операционных системах или для ручной настройки интеграции Claude Desktop:
Перейдите в
Settings > Developer > Edit ConfigДобавьте следующую конфигурацию:
Примечание: замените /ABSOLUTE/PATH/TO на фактический абсолютный путь к каталогу вашего проекта. Для доступа к установленным зависимостям необходимо использовать интерпретатор Python виртуальной среды.
Использование
Клод Десктоп
Откройте Binary Ninja и установите плагин
Binary Ninja MCPПерезапустите Binary Ninja, а затем откройте двоичный файл.
Запустите сервер MCP (
Plugins > MCP Server > Start MCP Server)Запустить Claude Desktop
Интеграция будет автоматически доступна после открытия Claude Desktop.

Теперь вы можете начать подсказывать Клоду о текущем открытом бинарнике. Примеры подсказок:
«Создать отчет по бинарному анализу для текущего двоичного файла».
«Переименовать функцию X в Y в текущем двоичном файле».
«Перечислить все функции в текущем двоичном файле».
«Каков статус загруженного двоичного файла?»
Другие интеграции MCP-клиента
Мост можно использовать с другими клиентами MCP, реализовав соответствующий уровень интеграции.
Разработка
Структура проекта организована следующим образом:
Внося вклад
Вклады приветствуются. Пожалуйста, не стесняйтесь отправлять запрос на включение.