fosdickio/binary_ninja_mcp

fosdickio/binary_ninja_mcp

от fosdickio
MCP сервер для Binary Ninja открывает доступ к функциям реверс-инжиниринга через LLM-клиенты: декомпиляция, типы, патчинг, ссылки и другое. Полезен для CTF, малвар-анализа.

Binary Ninja MCP

This repository contains a Binary Ninja plugin, MCP server, and bridge that enables seamless integration of Binary Ninja's capabilities with your favorite LLM client.

Binary Ninja MCP Logo

Features

  • Seamless, real-time integration between Binary Ninja and MCP clients
  • Enhanced reverse engineering workflow with AI assistance
  • Support for every MCP client (Cline, Claude desktop, Roo Code, etc.)
  • Open multiple binaries and switch the active target automatically

Examples

Solving a CTF Challenge

Check out this demo video on YouTube that uses the extension to solve a CTF challenge.

Components

This repository contains two separate components:

  1. A Binary Ninja plugin that provides an MCP server that exposes Binary Ninja's capabilities through HTTP endpoints. This can be used with any client that implements the MCP protocol.
  2. A separate MCP bridge component that connects your favorite MCP client to the Binary Ninja MCP server.

Prerequisites

  • Binary Ninja
  • Python 3.12+
  • MCP client (those with auto-setup support are listed below)

Часто задаваемые вопросы

Инструменты были проиндексированы:
convert_number

Преобразует число или строку в несколько представлений (шестнадцатеричное/десятичное/двоичное, C-литералы).

Параметры
  • sizenumber

    Размер в байтах (0 для авто)

  • textstringобязательный

    Число или строка для преобразования (десятичное, шестнадцатеричное 0x7b, двоичное 0b1111011, символ 'A' или строка)

declare_c_type

Создаёт или обновляет локальный тип на основе объявления на C.

Параметры
  • c_declarationstringобязательный

    Объявление типа в C

decompile_function

Декомпилирует указанную функцию по имени и возвращает декомпилированный C-код.

Параметры
  • namestringобязательный

    Имя функции или адрес

define_types

Определяет типы из строки C-кода.

Параметры
  • c_codestringобязательный

    C-код с определениями типов.

delete_comment

Удалить комментарий по конкретному адресу.

Параметры
  • addressstringобязательный

    Адрес (шестнадцатеричный, например 0x401000)

delete_function_comment

Удалить комментарий для функции.

Параметры
  • function_namestringобязательный

    Имя функции

fetch_disassembly

Извлекает дизассемблированный код функции в виде мнемонических инструкций ассемблера.

Параметры
  • namestringобязательный

    Имя функции

format_value

Преобразовать и аннотировать значение по адресу в Binary Ninja.

Параметры
  • addressstringобязательный

    Адрес (шестнадцатеричный, например 0x401000)

  • sizenumber

    Размер в байтах

  • textstringобязательный

    Пожалуйста, предоставьте текст для перевода.

function_at

Получает имя функции, которой принадлежит адрес.

Параметры
  • addressstringобязательный

    Адрес (шестнадцатеричный формат 0x00001)

get_binary_status

Получает текущий статус загруженного бинарного файла.

Параметры

Без параметров.

get_comment

Получает комментарий по указанному адресу.

Параметры
  • addressstringобязательный

    Адрес (шестнадцатеричный, например 0x401000)

get_data_decl

Возвращает строку, похожую на объявление, и hexdump для символа данных.

Параметры
  • lengthnumber

    Количество байт

  • name_or_addressstringобязательный

    Имя символа или адрес (hex)

get_entry_points

Выведи точку(и) входа загруженного бинарного файла.

Параметры

Без параметров.

get_function_comment

Получить комментарий для функции.

Параметры
  • function_namestringобязательный

    Имя функции

get_il

Получить IL для функции в выбранном представлении (hlil, mlil, llil).

Параметры
  • name_or_addressstringобязательный

    Имя функции или адрес (в шестнадцатеричном формате, например 0x401000)

  • ssaboolean

    Запросить форму SSA (только MLIL/LLIL)

  • viewenum

    Представление IL: hlil, mlil или llil.

get_stack_frame_vars

Получить информацию о переменных стекового кадра функции (имена, смещения, размеры, типы).

Параметры
  • function_identifierstringобязательный

    Имя функции или адрес (hex)

get_type_info

Разрешить имя типа и вернуть его объявление и детали (вид, члены, значения перечисления).

Параметры
  • type_namestringобязательный

    Введите имя

get_user_defined_type

Извлекает определение определяемого пользователем типа (структура, перечисление, typedef, объединение).

Параметры
  • type_namestringобязательный

    Введите имя

get_xrefs_to

Получить все перекрёстные ссылки (кода и данных) на указанный адрес.

Параметры
  • addressstringобязательный

    Адрес (hex или decimal)

get_xrefs_to_enum

Получает использования/xrefs перечисления, сканируя значения его элементов и совпадения.

Параметры
  • enum_namestringобязательный

    Имя Enum

get_xrefs_to_field

Получить все перекрестные ссылки на именованное поле структуры (член).

Параметры
  • field_namestringобязательный

    Имя поля

  • struct_namestringобязательный

    Имя структуры

get_xrefs_to_struct

Получает перекрёстные ссылки/использования, связанные с именем структуры.

Параметры
  • struct_namestringобязательный

    Имя структуры

get_xrefs_to_type

Получить перекрестные ссылки/использования, связанные с именем структуры или типа.

Параметры
  • type_namestringобязательный

    Введите имя

get_xrefs_to_union

Получить перекрестные ссылки/использования, связанные с типом-объединением, по имени.

Параметры
  • union_namestringобязательный

    Название объединения

hexdump_address

Hexdump данных, начиная с адреса.

Параметры
  • addressstringобязательный

    Адрес (шестнадцатеричный, например 0x401000)

  • lengthnumber

    Количество байт (используйте -1 для заданного размера)

hexdump_data

Сделать hexdump символа данных по имени или адресу.

Параметры
  • lengthnumber

    Количество байт (используйте -1 для заданного размера)

  • name_or_addressstringобязательный

    Имя символа или адрес (hex)

list_all_strings

Перечисли все строки в базе данных (агрегированные по страницам).

Параметры
  • batch_sizenumber

    Размер пакета для агрегации

list_binaries

Вывести управляемые/открытые бинарные файлы, известные серверу, с их идентификаторами и флагом активности.

Параметры

Без параметров.

list_classes

Перечисли все имена пространств имен и классов в программе с пагинацией.

Параметры
  • limitnumber

    Количество результатов для возврата.

  • offsetnumber

    Смещение для пагинации

list_data_items

Вывести список заданных меток данных и их значений с пагинацией.

Параметры
  • limitnumber

    Количество результатов для возврата.

  • offsetnumber

    Смещение для пагинации

list_exports

Список экспортируемых функций/символов с пагинацией.

Параметры
  • limitnumber

    Количество результатов для возврата.

  • offsetnumber

    Смещение для пагинации

list_imports

Вывести список импортированных символов в программе с постраничным выводом.

Параметры
  • limitnumber

    Количество результатов для возврата.

  • offsetnumber

    Смещение для пагинации

list_local_types

Вывести все локальные типы в базе данных (с постраничной разбивкой).

Параметры
  • countnumber

    Количество результатов для возврата.

  • include_librariesboolean

    Включить типы библиотек

  • offsetnumber

    Смещение для пагинации

list_methods

Выведи все названия функций в программе с пагинацией.

Параметры
  • limitnumber

    Количество результатов для возврата.

  • offsetnumber

    Смещение для пагинации

list_namespaces

Вывести список всех неглобальных пространств имен в программе с постраничной навигацией.

Параметры
  • limitnumber

    Количество результатов для возврата.

  • offsetnumber

    Смещение для пагинации

list_platforms

Перечисли все доступные названия платформ из Binary Ninja.

Параметры

Без параметров.

list_sections

Вывести список разделов программы с пагинацией.

Параметры
  • limitnumber

    Количество результатов для возврата.

  • offsetnumber

    Смещение для пагинации

list_segments

Вывести список всех сегментов памяти в программе с разбивкой на страницы.

Параметры
  • limitnumber

    Количество результатов для возврата.

  • offsetnumber

    Смещение для пагинации

list_strings

Перечислить все строки в базе данных (постранично).

Параметры
  • countnumber

    Количество результатов для возврата.

  • offsetnumber

    Смещение для пагинации

list_strings_filter

Перечислить совпадающие строки в базе данных (постранично, с фильтрацией).

Параметры
  • countnumber

    Количество результатов для возврата.

  • filterstring

    Строка фильтра

  • offsetnumber

    Смещение для пагинации

make_function_at

Создает функцию по заданному адресу.

Параметры
  • addressstringобязательный

    Адрес (шестнадцатеричный, например 0x401000, или десятичный)

  • platformstring

    Платформа (например, linux-x86_64)

patch_bytes

Патчит байты по указанному адресу в бинарном файле.

Параметры
  • addressstringобязательный

    Адрес (шестнадцатеричный, например 0x401000, или десятичный)

  • datastringобязательный

    Шестнадцатеричная строка записываемых байтов (например, '90 90' или '9090')

  • save_to_fileboolean

    Сохранить пропатченный бинарный файл на диск.

rename_data

Переименовать метку данных по указанному адресу.

Параметры
  • addressstringобязательный

    Адрес (шестнадцатеричный, например 0x401000)

  • new_namestringобязательный

    Новое имя для метки данных

rename_function

Переименовывает функцию по её текущему имени. Настроенный префикс будет добавлен автоматически, если он отсутствует.

Параметры
  • new_namestringобязательный

    Новое имя функции

  • old_namestringобязательный

    Текущее имя функции

rename_multi_variables

Переименовывает несколько локальных переменных за один вызов.

Параметры
  • function_identifierstringобязательный

    Имя функции или адрес (hex)

  • mapping_jsonstring

    JSON-объект из старого в новый

  • pairsstring

    Пары старый:новый, разделённые запятыми

  • renames_jsonstring

    JSON-массив объектов {old,new}

rename_single_variable

Переименовать переменную в функции.

Параметры
  • function_namestringобязательный

    Имя функции

  • new_namestringобязательный

    Новое имя переменной

  • variable_namestringобязательный

    Текущее имя переменной

retype_variable

Изменяет тип переменной в функции.

Параметры
  • function_namestringобязательный

    Имя функции

  • type_strstringобязательный

    Новый тип переменной.

  • variable_namestringобязательный

    Имя переменной

search_functions_by_name

Выполняет поиск функций, имя которых содержит указанную подстроку.

Параметры
  • limitnumber

    Количество результатов для возврата.

  • offsetnumber

    Смещение для пагинации

  • querystringобязательный

    Строка поискового запроса

search_types

Поиск локальных типов, имя или объявление которых содержит подстроку.

Параметры
  • countnumber

    Количество результатов для возврата.

  • include_librariesboolean

    Включить типы библиотек

  • offsetnumber

    Смещение для пагинации

  • querystringобязательный

    Поисковый запрос

select_binary

Выбирает бинарный файл для анализа по порядковому номеру, внутреннему идентификатору представления, полному пути или базовому имени.

Параметры
  • viewstringобязательный

    Порядковый номер, идентификатор представления, полный путь или базовое имя

set_comment

Устанавливает комментарий по конкретному адресу.

Параметры
  • addressstringобязательный

    Адрес (шестнадцатеричный, например 0x401000)

  • commentstringобязательный

    Текст комментария

set_function_comment

Задать комментарий для функции.

Параметры
  • commentstringобязательный

    Текст комментария

  • function_namestringобязательный

    Имя функции

set_function_prototype

Устанавливает прототип функции по имени или адресу.

Параметры
  • name_or_addressstringобязательный

    Имя функции или адрес

  • prototypestringобязательный

    Новый прототип функции

set_local_variable_type

Устанавливает тип локальной переменной.

Параметры
  • function_addressstringобязательный

    Адрес или имя функции

  • new_typestringобязательный

    Новый тип

  • variable_namestringобязательный

    Имя переменной

1.0.0основная

Выберите клиент, чтобы установить fosdickio/binary_ninja_mcp:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "fosdickio-binaryninjamcp-m4kla68qmh": {
      "command": "npx",
      "args": [
        "-y",
        "binary-ninja-mcp",
        "--host",
        "localhost",
        "--port",
        "9009"
      ]
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "fosdickio-binaryninjamcp-m4kla68qmh": {
      "command": "npx",
      "args": [
        "-y",
        "binary-ninja-mcp",
        "--host",
        "localhost",
        "--port",
        "9009"
      ]
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "fosdickio-binaryninjamcp-m4kla68qmh": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "binary-ninja-mcp",
        "--host",
        "localhost",
        "--port",
        "9009"
      ]
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"fosdickio-binaryninjamcp-m4kla68qmh\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"-y\",\"binary-ninja-mcp\",\"--host\",\"localhost\",\"--port\",\"9009\"]}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "fosdickio-binaryninjamcp-m4kla68qmh": {
      "command": "npx",
      "args": [
        "-y",
        "binary-ninja-mcp",
        "--host",
        "localhost",
        "--port",
        "9009"
      ]
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add fosdickio-binaryninjamcp-m4kla68qmh -- npx -y binary-ninja-mcp --host localhost --port 9009

Либо через JSON-конфиг:

claude mcp add-json fosdickio-binaryninjamcp-m4kla68qmh "{\"command\":\"npx\",\"args\":[\"-y\",\"binary-ninja-mcp\",\"--host\",\"localhost\",\"--port\",\"9009\"]}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add fosdickio-binaryninjamcp-m4kla68qmh -- npx -y binary-ninja-mcp --host localhost --port 9009

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.fosdickio-binaryninjamcp-m4kla68qmh]
command = "npx"
args = ["-y", "binary-ninja-mcp", "--host", "localhost", "--port", "9009"]
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите fosdickio/binary_ninja_mcp, а в поле команды запуска — строку ниже:
npx -y binary-ninja-mcp --host localhost --port 9009

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "fosdickio-binaryninjamcp-m4kla68qmh": {
      "command": "npx",
      "args": [
        "-y",
        "binary-ninja-mcp",
        "--host",
        "localhost",
        "--port",
        "9009"
      ]
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "fosdickio-binaryninjamcp-m4kla68qmh": {
      "command": "npx",
      "args": [
        "-y",
        "binary-ninja-mcp",
        "--host",
        "localhost",
        "--port",
        "9009"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например fosdickio-binaryninjamcp-m4kla68qmh.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: fosdickio-binaryninjamcp-m4kla68qmh
    command: npx
    args:
      - "-y"
      - "binary-ninja-mcp"
      - "--host"
      - "localhost"
      - "--port"
      - "9009"
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "fosdickio-binaryninjamcp-m4kla68qmh": {
      "command": "npx",
      "args": [
        "-y",
        "binary-ninja-mcp",
        "--host",
        "localhost",
        "--port",
        "9009"
      ]
    }
  }
}

Похожие MCP-сервера

Skyrxin/sast-mcp-server

Skyrxin/sast-mcp-server

от skyrxin

MCP сервер для статического анализа безопасности (SAST) — даёт AI-агентам сканировать код на уязвимости с помощью 11 сканеров (Bandit, CodeQL, Trivy и др.). Полезен разработчикам и DevSecOps для по...

Python⭐ 4
goklab/guardvibe

goklab/guardvibe

от goklab

MCP-сервер для безопасности AI-кода. Детерминистично проверяет уязвимости, CVE и целостность репозитория в реальном времени. Полезен разработчикам с AI-агентами — предупреждает угрозы до появления кода.

TypeScript⭐ 6
zboralski/ida-headless-mcp

zboralski/ida-headless-mcp

от zboralski

Сервер для бинарного анализа через IDA Pro в headless-режиме. Поддерживает параллельные сессии, 52 MCP-инструмента, импорт метаданных Unity (Il2CppDumper) и Flutter (unflutter). Полезен реверсерам ...

Python⭐ 3
muhannad-hash/mcp-shield

muhannad-hash/mcp-shield

от muhannad-hash

mcp-shield - сканер безопасности MCP-серверов, выявляющий бэкдоры, утечки данных, инъекции промптов и риски цепочки поставок. Позволяет аудировать npm-пакеты или локальные директории перед подключе...

TypeScript⭐ 2
shyshlakov/pci-dss-mcp

shyshlakov/pci-dss-mcp

от shyshlakov

MCP-сервер статического анализа Go-кода платежных сервисов. Детектирует нарушения PCI DSS v4.0.1 с привязкой к требованиям. Запускает 12 сканеров и AI-триаж — помогает разработчикам блокировать уязвимости до релиза.

Go⭐ 5
zinja-coder/jadx-ai-mcp

zinja-coder/jadx-ai-mcp

от zinja-coder

Ищет уязвимости в Android-APK прямо в JADX: декомпилирует, анализирует код и тут же подсказывает, что исправить.

Java⭐ 2918
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин