Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
binary-ninja-headless-mcp — Headless Binary Ninja MCP server — fornendo agli agenti AI profonde capacità di reverse engineering tramite 180 strumenti. | Kitploit
Strumenti/GitHubGitHub/mrphrazer/binary-ninja-headless-mcp
Reverse EngineeringScripting e AutomazioneDebuggerFuzzingUtilità e FrameworkAnalisi di BinariApprendimento e FormazioneReverse Engineering Assistito dall'IA

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
GitHub
mrphrazer/binary-ninja-headless-mcp

binary-ninja-headless-mcp

Headless Binary Ninja MCP server — fornendo agli agenti AI profonde capacità di reverse engineering tramite 180 strumenti.

Vedi Repository
235192211 giorni faRevisionato da Kitploit
Condividi

Binary Ninja Headless MCP

Un server Binary Ninja headless che parla MCP (Model Context Protocol), fornendo agli agenti AI pieno accesso a flussi di lavoro complessi di reverse engineering — disassemblaggio, IL, patching, tipi, xref e altro — senza GUI.

Progettato per funzionare nello stesso container Docker del runtime dell'agente. Niente sidecar, niente servizi aggiuntivi.

L'intero progetto — codice, test e documentazione — è realizzato al 100% con vibe coding.

Perché

I server MCP per Binary Ninja esistenti sono legati alla GUI o espongono una superficie strumentale limitata. Questo server è solo headless e progettato per flussi di lavoro guidati da agenti in ambienti VM/container sandbox: l'agente ha il pieno controllo del sistema di analisi, automatizzando gran parte del reverse engineering mentre tu interagisci e guidi il processo in modo interattivo.

L'obiettivo è un'interfaccia in cui gli agenti possano ispezionare, perfezionare ed estendere un'analisi nel tempo — aggiornando tipi, simboli e metadati, migliorando incrementalmente il database di analisi, applicando patch e iterando in modo sicuro con undo/redo, ed eseguendo script personalizzati quando un flusso di lavoro necessita di qualcosa di ad hoc.

Caratteristiche

  • 181 strumenti in 36 gruppi di funzionalità: analisi, disassemblaggio, IL, patching, undo/redo, tipi, flussi di lavoro, memoria, ricerca, xref, scripting e altro.
  • Sola lettura di default con flussi di mutazione sicuri (undo/redo, transazioni).
  • Accesso scripting tramite binja.eval e binja.call per tutto ciò che il catalogo strumenti non copre.
  • Trasporti Stdio e TCP.
  • Zero dipendenze runtime oltre a Binary Ninja stesso.
  • Modalità backend fittizio per CI e sviluppo senza licenza Binary Ninja.

Prerequisiti

  • Python 3.11+
  • Un'installazione di Binary Ninja con una licenza headless e il modulo Python binaryninja importabile nel tuo runtime (per analisi reali)
  • Per CI/sviluppo senza Binary Ninja, usa la modalità backend fittizio

Installazione

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

Oppure installa direttamente dalla root del repository senza clonare:

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

Avvio Rapido

Trasporto Stdio (default):

python3 binary_ninja_headless_mcp.py

Trasporto TCP:

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

Modalità backend fittizio (nessun Binary Ninja richiesto):

python3 binary_ninja_headless_mcp.py --fake-backend

Utilizzo con Agenti AI

Questo server parla MCP standard su stdio (default) o tcp, quindi qualsiasi host agente compatibile con MCP può utilizzarlo.

Claude Code

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

Oppure aggiungilo al .mcp.json del tuo progetto:

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

  • Registra un server chiamato binary_ninja_headless_mcp.
  • Usa il comando python3 con argomenti ["binary_ninja_headless_mcp.py"] quando cwd è la root del repository, oppure usa un percorso assoluto dello script in args.
  • Imposta cwd sul percorso del repo se vuoi che percorsi relativi come samples/ls vengano risolti correttamente.
  • Usa il trasporto stdio a meno che il tuo host non richieda TCP.
  • Per la modalità fittizia (nessun Binary Ninja installato), aggiungi --fake-backend.
  • Verifica la connettività chiamando health.ping, poi session.open.

Pattern di Co-Localizzazione Docker

Modello di deployment consigliato: esegui il processo agente e questo server MCP nella stessa immagine container.

Esempio 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 hai bisogno di analisi reale con Binary Ninja all'interno del container, aggiungi il tuo runtime Binary Ninja + configurazione licenza nella stessa immagine e avvia l'agente con questo server MCP configurato.

Metodi MCP

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

Comportamento di tools/list:

  • Senza parametri espliciti di paginazione, restituisce il catalogo completo degli strumenti.
  • Se vengono forniti offset o limit, usa output paginato (offset=0, limit=50 di default in modalità paginata).
  • Supporta il filtraggio tramite:
    • prefix (ad esempio binary.)
    • query (corrispondenza parziale su nome/descrizione dello strumento)
  • Restituisce metadati di paginazione: offset, limit, total, has_more.
  • Quando una pagina è troncata (has_more=true), include next_offset e un suggerimento notice.

Comportamento della risposta alle chiamate strumento:

  • structuredContent è il payload completo canonico.
  • content[0].text è una stringa riassuntiva compatta (non una duplicazione JSON completa).
  • Questa suddivisione è intenzionale per mantenere ridotto l'uso del contesto, esponendo comunque dati completi e leggibili dalle macchine.

Qualità e Testing

Questo repository è ben testato e ha gate di qualità obbligatori.

  • Suite di test: esegui pytest --collect-only -q per il conteggio corrente dei test raccolti.
  • Il workflow CI impone:
    • ruff format --check .
    • ruff check .
    • pytest
  • La CI usa BINARY_NINJA_HEADLESS_MCP_FAKE_BACKEND=1 in modo che i controlli vengano eseguiti senza richiedere l'installazione di Binary Ninja.
  • Ulteriori test strutturali verificano la consistenza del registro strumenti e la raggiungibilità del backend.

Controlli di Contesto

  • La modalità sola lettura è l'impostazione predefinita per le sessioni aperte (read_only=true).
  • binary.basic_blocks_at e function.basic_blocks sono paginati (offset/limit).
  • memory.read ha un limite massimo di risposta: length <= 65536.

Limitazioni

  • Le API Enterprise non sono attualmente coperte.
  • Le API del debugger non sono attualmente coperte.

Modello di Sicurezza

  • La comunicazione MCP (stdio/tcp) non è autenticata di default.
  • Il server espone scripting arbitrario tramite binja.eval e ampio accesso API tramite binja.call.
  • Questo è voluto per ambienti agenti containerizzati fidati.
  • Non esporre questo server direttamente a utenti o reti non fidati.

Flusso di Lavoro per Sviluppo Locale

ruff format --check .
ruff check .
BINARY_NINJA_HEADLESS_MCP_FAKE_BACKEND=1 pytest -q
## Fuzzer di Funzionalità

Usa il fuzzer MCP integrato per testare un'ampia superficie strumentale su `samples/ls`.

Backend Binary Ninja reale:

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

Esecuzione di prova con backend fittizio:

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

Scrivi un report di copertura JSON:

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

Flag utili:

  • --min-success-tools N: esce con codice diverso da zero se meno di N strumenti hanno successo.
  • --verbose: stampa ogni chiamata strumento durante il fuzzing.
  • --update-analysis: apre la sessione seed con update_analysis=true.

Catalogo delle Funzionalità

Il server espone attualmente 181 strumenti in 36 gruppi di funzionalità.

Scarica lo strumento