Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
binary-ninja-headless-mcp — Headless Binary Ninja MCP server — предоставляющий агентам ИИ глубокие возможности реверс-инжиниринга через 180 инструментов. | Kitploit
Инструменты/GitHubGitHub/mrphrazer/binary-ninja-headless-mcp
Обратная инженерияСкриптинг и автоматизацияОтладчикиФаззингУтилиты и фреймворкиАнализ Бинарных ФайловОбучение и ОбразованиеОбратная Разработка с Помощью ИИ

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
GitHub
mrphrazer/binary-ninja-headless-mcp

binary-ninja-headless-mcp

Headless Binary Ninja MCP server — предоставляющий агентам ИИ глубокие возможности реверс-инжиниринга через 180 инструментов.

Репозиторий
235192211 дней назадПроверено Kitploit
Поделиться

Binary Ninja Headless MCP

Сервер Binary Ninja без графического интерфейса, работающий по протоколу MCP (Model Context Protocol), предоставляющий AI-агентам полный доступ к глубоким процессам реверс-инжиниринга — дизассемблированию, IL, патчингу, типам, перекрёстным ссылкам и многому другому — без GUI.

Спроектирован для запуска в том же Docker-контейнере, что и среда выполнения агента. Без сайдкаров, без дополнительных сервисов.

Весь этот проект — код, тесты и документация — на 100% сделан по принципу vibe coding.

Зачем

Существующие MCP-серверы Binary Ninja либо привязаны к GUI, либо предоставляют ограниченный набор инструментов. Этот сервер работает исключительно без GUI и предназначен для управляемых агентами процессов в изолированных средах VM/контейнеров: агент получает полный контроль над системой анализа, автоматизируя большие части реверс-инжиниринга, пока вы интерактивно обсуждаете и направляете процесс.

Цель — интерфейс, в котором агенты могут со временем просматривать, уточнять и расширять анализ: обновлять типы, символы и метаданные, инкрементально улучшать базу данных анализа, безопасно применять патчи и итерации с помощью отмены/повтора, а также запускать пользовательские скрипты, когда рабочий процесс требует чего-то особенного.

Возможности

  • 181 инструмент в 36 функциональных группах: анализ, дизассемблирование, IL, патчинг, отмена/повтор, типы, рабочие процессы, память, поиск, перекрёстные ссылки, скриптинг и многое другое.
  • По умолчанию только для чтения с безопасными рабочими процессами модификации (отмена/повтор, транзакции).
  • Доступ к скриптингу через binja.eval и binja.call для всего, что не покрывается каталогом инструментов.
  • Транспорты Stdio и TCP.
  • Ноль зависимостей во время выполнения помимо самого Binary Ninja.
  • Режим фиктивного бэкенда для CI и разработки без лицензии Binary Ninja.

Предварительные требования

  • Python 3.11+
  • Установленный Binary Ninja с лицензией, поддерживающей работу без GUI, и модулем binaryninja Python, доступным для импорта в вашей среде выполнения (для реального анализа)
  • Для CI/разработки без Binary Ninja используйте режим фиктивного бэкенда

Установка

git clone https://github.com/mrphrazer/binary-ninja-headless-mcp.git
cd binary-ninja-headless-mcp
pip install .

Или установите напрямую из корня репозитория без клонирования:

pip install git+https://github.com/mrphrazer/binary-ninja-headless-mcp.git

Быстрый старт

Транспорт Stdio (по умолчанию):

python3 binary_ninja_headless_mcp.py

Транспорт TCP:

python3 binary_ninja_headless_mcp.py --transport tcp --host 127.0.0.1 --port 8765

Режим фиктивного бэкенда (Binary Ninja не требуется):

python3 binary_ninja_headless_mcp.py --fake-backend

Использование с AI-агентами

Этот сервер использует стандартный MCP через stdio (по умолчанию) или tcp, поэтому любой хост агента, поддерживающий MCP, может его использовать.

Claude Code

claude mcp add binary_ninja_headless_mcp -- python3 /path/to/binary-ninja-headless-mcp/binary_ninja_headless_mcp.py

Или добавьте его в .mcp.json вашего проекта:

{
  "mcpServers": {
    "binary_ninja_headless_mcp": {
      "command": "python3",
      "args": ["binary_ninja_headless_mcp.py"],
      "cwd": "/path/to/binary-ninja-headless-mcp"
    }
  }
}

Codex

codex mcp add binary_ninja_headless_mcp -- python3 binary_ninja_headless_mcp.py

Универсальный MCP-хост

  • Зарегистрируйте сервер с именем binary_ninja_headless_mcp.
  • Используйте команду python3 с аргументами ["binary_ninja_headless_mcp.py"], когда cwd указывает на корень репозитория, или используйте абсолютный путь к скрипту в args.
  • Установите cwd в путь к репозиторию, если хотите, чтобы относительные пути, такие как samples/ls, разрешались правильно.
  • Используйте транспорт stdio, если ваш хост не требует TCP.
  • Для фиктивного режима (Binary Ninja не установлен) добавьте --fake-backend.
  • Проверьте связь, вызвав health.ping, затем session.open.

Паттерн совместного размещения в Docker

Рекомендуемая модель развёртывания: запуск процесса агента и этого MCP-сервера в одном образе контейнера.

Пример базового образа:

FROM python:3.11-slim
WORKDIR /app
COPY . /app
RUN python -m pip install --upgrade pip && pip install ruff pytest
CMD ["python3", "binary_ninja_headless_mcp.py"]

Если вам нужен реальный анализ Binary Ninja внутри контейнера, добавьте среду выполнения Binary Ninja + настройку лицензии в этот же образ и запустите агента с настроенным MCP-сервером.

Методы MCP

  • initialize
  • ping
  • tools/list
  • tools/call
  • shutdown

Поведение tools/list:

  • Без явных параметров постраничного вывода возвращает полный каталог инструментов.
  • Если указаны offset или limit, используется постраничный вывод (по умолчанию offset=0, limit=50 в постраничном режиме).
  • Поддерживает фильтрацию через:
    • prefix (например, binary.)
    • query (поиск по подстроке в имени/описании инструмента)
  • Возвращает метаданные постраничного вывода: offset, limit, total, has_more.
  • Когда страница усечена (has_more=true), включает next_offset и подсказку notice.

Поведение ответов на вызовы инструментов:

  • structuredContent — это каноническая полная нагрузка.
  • content[0].text — это компактная строка сводки (не полное дублирование JSON).
  • Это разделение сделано намеренно, чтобы уменьшить использование контекста, но при этом предоставлять полные машиночитаемые данные.

Качество и тестирование

Этот репозиторий хорошо протестирован и имеет принудительные шлюзы качества.

  • Набор тестов: выполните pytest --collect-only -q для получения текущего количества собранных тестов.
  • CI-процесс обеспечивает:
    • ruff format --check .
    • ruff check .
    • pytest
  • В CI используется BINARY_NINJA_HEADLESS_MCP_FAKE_BACKEND=1, поэтому проверки выполняются без необходимости установки Binary Ninja.
  • Дополнительные структурные тесты проверяют согласованность реестра инструментов и доступность бэкенда.

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

  • Режим только для чтения используется по умолчанию для открытых сеансов (read_only=true).
  • binary.basic_blocks_at и function.basic_blocks имеют постраничный вывод (offset/limit).
  • memory.read имеет жёсткое ограничение ответа: length <= 65536.

Ограничения

  • API уровня Enterprise в настоящее время не охвачены.
  • API отладчика в настоящее время не охвачены.

Модель безопасности

  • Взаимодействие по MCP (stdio/tcp) по умолчанию не аутентифицировано.
  • Сервер предоставляет произвольный скриптинг через binja.eval и широкий доступ к API через binja.call.
  • Это сделано намеренно для доверенных контейнеризированных сред агентов.
  • Не открывайте прямой доступ к этому серверу для недоверенных пользователей или сетей.

Локальный рабочий процесс разработки

ruff format --check .
ruff check .
BINARY_NINJA_HEADLESS_MCP_FAKE_BACKEND=1 pytest -q

Фаззер функций

Используйте встроенный MCP-фаззер функций для тестирования широкого спектра инструментов на samples/ls.

Реальный бэкенд Binary Ninja:

python3 -m binary_ninja_headless_mcp.fuzzer --binary samples/ls --iterations 120 --seed 1337

Дымовое тестирование фиктивного бэкенда:

python3 -m binary_ninja_headless_mcp.fuzzer --binary samples/ls --fake-backend --iterations 20

Записать отчёт о покрытии в JSON:

python3 -m binary_ninja_headless_mcp.fuzzer --binary samples/ls --report-json /tmp/mcp-fuzzer-report.json

Полезные флаги:

  • --min-success-tools N: завершается с ненулевым кодом, если успешно выполнилось менее N инструментов.
  • --verbose: выводить каждый вызов инструмента во время фаззинга.
  • --update-analysis: открыть начальный сеанс с update_analysis=true.

Каталог функций

Скачать инструмент