Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
binary-ninja-headless-mcp — Servidor MCP Headless do Binary Ninja — fornecendo a agentes de IA capacidades profundas de engenharia reversa por meio de 180 ferramentas. | Kitploit
Ferramentas/GitHubGitHub/mrphrazer/binary-ninja-headless-mcp
Engenharia ReversaScripting e AutomaçãoDepuradoresFuzzingUtilitários e FrameworksAnálise de BináriosAprendizado e EducaçãoEngenharia Reversa Assistida por IA

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
GitHub
mrphrazer/binary-ninja-headless-mcp

binary-ninja-headless-mcp

Servidor MCP Headless do Binary Ninja — fornecendo a agentes de IA capacidades profundas de engenharia reversa por meio de 180 ferramentas.

Ver Repositório
2351935há 1 mêsRevisado pelo Kitploit
Compartilhar

Binary Ninja Headless MCP

Um servidor headless Binary Ninja que fala MCP (Protocolo de Contexto de Modelo), dando a agentes de IA acesso completo a fluxos de trabalho profundos de engenharia reversa — desmontagem, IL, patches, tipos, referências cruzadas e mais — sem uma GUI.

Projetado para rodar no mesmo contêiner Docker que o runtime do agente. Sem sidecars, sem serviços extras.

Este projeto inteiro — código, testes e documentação — é 100% vibe coded.

Porquê

Os servidores MCP existentes do Binary Ninja são vinculados à GUI ou expõem uma superfície de ferramentas limitada. Este servidor é apenas headless e projetado para fluxos de trabalho orientados por agentes em ambientes de VM/contêiner em sandbox: o agente obtém controle total sobre o sistema de análise, automatizando grandes partes da engenharia reversa enquanto você discute interativamente e direciona o processo.

O objetivo é uma interface onde agentes possam inspecionar, refinar e estender uma análise ao longo do tempo — atualizando tipos, símbolos e metadados, melhorando incrementalmente o banco de dados de análise, aplicando patches e iterando com segurança usando desfazer/refazer, e executando scripts personalizados quando um fluxo de trabalho precisar de algo sob medida.

Funcionalidades

  • 181 ferramentas em 36 grupos de funcionalidades: análise, desmontagem, IL, patches, desfazer/refazer, tipos, fluxos de trabalho, memória, busca, referências cruzadas, scripts e mais.
  • Somente leitura por padrão com fluxos de trabalho seguros de mutação (desfazer/refazer, transações).
  • Acesso a scripts via binja.eval e binja.call para qualquer coisa que o catálogo de ferramentas não cubra.
  • Transportes Stdio e TCP.
  • Zero dependências de runtime além do próprio Binary Ninja.
  • Modo falso de backend para CI e desenvolvimento sem licença do Binary Ninja.

Pré-requisitos

  • Python 3.11+
  • Uma instalação do Binary Ninja com uma licença compatível com headless e o módulo Python binaryninja importável no seu runtime (para análise real)
  • Para CI/desenvolvimento sem Binary Ninja, use o modo falso de backend

Instalação

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

Ou instale diretamente da raiz do repositório sem clonar:

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

Início Rápido

Transporte Stdio (padrão):

python3 binary_ninja_headless_mcp.py

Transporte TCP:

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

Modo falso de backend (nenhum Binary Ninja necessário):

python3 binary_ninja_headless_mcp.py --fake-backend

Uso com Agentes de IA

Este servidor fala MCP padrão sobre stdio (padrão) ou tcp, então qualquer host de agente compatível com MCP pode usá-lo.

Claude Code

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

Ou adicione ao .mcp.json do seu projeto:

{
  "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

Host MCP Genérico

  • Registre um servidor chamado binary_ninja_headless_mcp.
  • Use o comando python3 com args ["binary_ninja_headless_mcp.py"] quando o cwd for a raiz do repositório, ou use um caminho absoluto do script em args.
  • Defina cwd para o caminho do repositório se você quiser que caminhos relativos como samples/ls sejam resolvidos corretamente.
  • Use transporte stdio a menos que seu host exija TCP.
  • Para modo falso (sem Binary Ninja instalado), adicione --fake-backend.
  • Verifique a conectividade chamando health.ping, depois session.open.

Padrão de Co-localização Docker

Modelo de implantação recomendado: execute o processo do agente e este servidor MCP na mesma imagem de contêiner.

Exemplo base:

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"]

Se você precisar de análise real do Binary Ninja no contêiner, adicione seu runtime do Binary Ninja + configuração de licença nesta mesma imagem e inicie o agente com este servidor MCP configurado.

Métodos MCP

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

Comportamento de tools/list:

  • Sem parâmetros explícitos de paginação, retorna o catálogo completo de ferramentas.
  • Se offset ou limit for fornecido, usa saída paginada (offset=0, limit=50 padrão no modo paginado).
  • Suporta filtragem via:
    • prefix (por exemplo binary.)
    • query (correspondência de substring contra nome/descrição da ferramenta)
  • Retorna metadados de paginação: offset, limit, total, has_more.
  • Quando uma página é truncada (has_more=true), inclui next_offset e uma dica notice.

Comportamento da resposta de chamada de ferramenta:

  • structuredContent é o payload completo canônico.
  • content[0].text é uma string de resumo compacta (não duplicação completa de JSON).
  • Essa divisão é intencional para manter o uso de contexto menor enquanto ainda expõe dados completos legíveis por máquina.

Qualidade e Testes

Este repositório é bem testado e possui portões de qualidade obrigatórios.

  • Suíte de testes: execute pytest --collect-only -q para a contagem atual de testes coletados.
  • Fluxo de trabalho de CI exige:
    • ruff format --check .
    • ruff check .
    • pytest
  • CI usa BINARY_NINJA_HEADLESS_MCP_FAKE_BACKEND=1 para que as verificações sejam executadas sem exigir instalação do Binary Ninja.
  • Testes estruturais adicionais verificam consistência do registro de ferramentas e alcançabilidade do backend.

Controles de Contexto

  • O modo somente leitura é o padrão para sessões abertas (read_only=true).
  • binary.basic_blocks_at e function.basic_blocks são paginados (offset/limit).
  • memory.read tem um limite de resposta: length <= 65536.

Limitações

  • APIs Empresariais atualmente não são cobertas.
  • APIs do Depurador atualmente não são cobertas.

Modelo de Segurança

  • A comunicação MCP (stdio/tcp) não é autenticada por padrão.
  • O servidor expõe scripts arbitrários via binja.eval e acesso amplo à API via binja.call.
  • Isso é proposital para ambientes de contêiner confiáveis e orientados a agentes.
  • Não exponha este servidor diretamente a usuários ou redes não confiáveis.

Fluxo de Trabalho de Desenvolvimento Local

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

Fuzzer de Funcionalidades

Use o fuzzer de funcionalidades MCP embutido para exercitar uma ampla superfície de ferramentas contra samples/ls.

Backend real do Binary Ninja:

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

Execução de teste com backend falso:

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

Escreva um relatório JSON de cobertura:

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

Flags úteis:

  • --min-success-tools N: sai com código diferente de zero se menos de N ferramentas tiverem sucesso.
  • --verbose: imprime cada chamada de ferramenta durante o fuzzing.
  • --update-analysis: abre a sessão semente com update_analysis=true.

Catálogo de Funcionalidades

O servidor atualmente expõe 181 ferramentas em 36 grupos de funcionalidades.

Baixar ferramenta