Двоичный ниндзя MCP
Этот репозиторий содержит плагин Binary Ninja, сервер MCP и мост, который обеспечивает бесшовную интеграцию возможностей Binary Ninja с вашим любимым клиентом LLM.
Функции
- Простая интеграция в реальном времени между клиентами Binary Ninja и MCP
- Улучшенный процесс обратного проектирования с помощью ИИ
- Основная поддержка Claude Desktop как клиента MCP, но расширяемая для других интеграций
Примеры
Создание отчета по двоичному анализу
Переименование функций
Компоненты
Этот репозиторий содержит два отдельных компонента:
- Плагин Binary Ninja, который предоставляет сервер MCP, раскрывающий возможности Binary Ninja через конечные точки HTTP. Его можно использовать с любым клиентом, реализующим протокол MCP.
- Отдельный компонент моста 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 | Изменить сигнатуру данной функции, заданную как строковый тип. |
Предпосылки
- Двоичный ниндзя
- Питон 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, реализовав соответствующий уровень интеграции.
Разработка
Структура проекта организована следующим образом:
Внося вклад
Вклады приветствуются. Пожалуйста, не стесняйтесь отправлять запрос на включение.
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Сервер, который обеспечивает бесшовную интеграцию возможностей обратного проектирования Binary Ninja с помощью LLM, позволяя инструментам ИИ, таким как Claude, взаимодействовать с функциями двоичного анализа в режиме реального времени.
Related MCP Servers
- AsecurityFlicenseAqualityThe server facilitates natural language interactions for exploring and understanding codebases, providing insights into data models and system architecture using a cost-effective, simple setup with support for existing Claude Pro subscriptions.Last updated -416Python
- AsecurityAlicenseAqualityChat with your codebase through intelligent code searching without embeddings by breaking files into logical chunks, giving the LLM tools to search these chunks, and letting it find specific code needed to answer your questions.Last updated -851PythonMIT License
- -securityAlicense-qualityA server that enables LLM applications to interact directly with DaVinci Resolve video editing software, allowing AI-assisted capabilities like accessing timeline information and automating editing workflows.Last updated -265PythonMIT License
- -securityAlicense-qualityA 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 -2PythonMIT License