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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
pyghidra-mcp — Python Ghidra MCP da riga di comando | Kitploit
Strumenti/GitHubGitHub/clearbluejar/pyghidra-mcp
Sicurezza Sistemi EmbeddedAnalisi StaticaAnalisi del CodiceReverse EngineeringDebuggerAnalisi MalwareAnalisi di BinariApprendimento e FormazioneReverse Engineering Assistito dall'IAAnalisi del Firmware
GitHub
404554511 giorni faRevisionato da Kitploit

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 →
Condividi
clearbluejar/pyghidra-mcp

pyghidra-mcp

Python Ghidra MCP da riga di comando

Vedi Repository

GitHub Workflow Status (with event) PyPI - Downloads

PyGhidra-MCP - Server Model Context Protocol per Ghidra

Panoramica

pyghidra-mcp è un server Model Context Protocol (MCP) da riga di comando che porta tutta la potenza analitica di Ghidra, una solida suite di reverse engineering del software (SRE), nel mondo degli agenti intelligenti e degli strumenti basati su LLM. Collega le ProgramAPI e FlatProgramAPI di Ghidra a Python usando pyghidra e jpype, per poi esporre tale funzionalità tramite il Model Context Protocol.

MCP è un'interfaccia unificata che consente a modelli linguistici, strumenti di sviluppo (come VS Code) e agenti autonomi di accedere a contesto strutturato, invocare strumenti e collaborare in modo intelligente. Pensate a MCP come al ponte tra potenti strumenti di analisi e l'ecosistema degli LLM.

Con pyghidra-mcp, Ghidra diventa un backend intelligente—pronto a rispondere a query ricche di contesto, automatizzare attività di reverse engineering approfondite e integrarsi in flussi di lavoro assistiti dall'IA.

pyghidra-mcp ora supporta due modalità operative:

  • modalità headless per analisi e automazione guidate da CLI
  • modalità --gui, che avvia Ghidra tramite pyghidra-mcp e condivide lo stato del programma in tempo reale con la GUI in esecuzione

[!NOTE] Questo progetto beta è in fase di sviluppo attivo. Gradiremmo il vostro feedback, segnalazioni di bug, richieste di funzionalità e codice.

L'ennesimo Ghidra MCP?

Sì, l'originale ghidra-mcp è fantastico. Ma pyghidra-mcp adotta un approccio diverso:

  • 🐍 Headless-first, GUI-capable – Eseguibile interamente via CLI per un'automazione snella, oppure avvia Ghidra con --gui quando desideri navigazione ed editing in tempo reale tramite GUI.
  • 🔁 Progettato per l'automazione – Ideale per l'integrazione con LLM, pipeline CI e strumenti che richiedono un comportamento ripetibile.
  • ✅ Compatibile con CI/CD – Costruito con solidi test unitari e di integrazione sia per le sessioni client che server.
  • 🚀 Avvio rapido – L'avvio asincrono consente al server di iniziare a gestire richieste mentre i binari sono ancora in fase di analisi in background. Supporta l'avvio rapido da riga di comando con configurazione minima.
  • 📦 Analisi a livello di progetto – Consente il reverse engineering concorrente di tutti i binari in un progetto Ghidra
  • 🤖 Pronto per gli agenti – Costruito per flussi di lavoro guidati da agenti intelligenti e automazione del reverse engineering su larga scala.
  • 🔍 Ricerca semantica del codice – Utilizza embedding vettoriali (tramite ChromaDB) per consentire una ricerca rapida e fuzzy tra funzioni decompilate, commenti e simboli—perfetto per l'esplorazione di pseudo-C e il triage guidato da agenti.

Questo progetto offre un'esperienza Python-first ottimizzata per lo sviluppo locale, ambienti headless e flussi di lavoro testabili.

Diagrammi di configurazione

Come si collegano i componenti

flowchart LR
    subgraph Clients["Clients"]
        Agent["MCP host / agent"]
        Cli["pyghidra-mcp-cli"]
        User["Ghidra user"]
    end

    subgraph Process["pyghidra-mcp process"]
        Transport["streamable HTTP (recommended)<br/>stdio (local fallback)"]
        Tools["MCP tools"]
        Context["PyGhidra context"]
    end

    Project["Ghidra project<br/>.gpr / .rep"]
    Artifacts["MCP artifacts<br/>ChromaDB + GZF cache"]
    Gui["Ghidra GUI / CodeBrowser<br/>only with --gui"]

    Agent -->|"HTTP (recommended)"| Transport
    Cli -->|"HTTP only"| Transport
    Transport --> Tools
    Tools --> Context
    Context --> Project
    Context --> Artifacts
    Context -.-> Gui
    User -.-> Gui
    Gui -.-> Project

Scegliere una Modalità

flowchart TD
    Start["What do you need?"]
    Start --> Headless["Agent or automation"]
    Start --> GuiNeed["Live Ghidra GUI control"]
    Start --> Terminal["Interactive terminal client"]

    Headless --> Http["pyghidra-mcp<br/>--transport streamable-http"]
    GuiNeed --> GuiMode["pyghidra-mcp --gui<br/>--transport streamable-http<br/>--project-path project.gpr"]
    Terminal --> HttpServer["Start pyghidra-mcp<br/>--transport streamable-http"]
    HttpServer --> CliMode["Run pyghidra-mcp-cli commands"]
  • Headless MCP: usa streamable-http. Mantiene Ghidra e il suo progetto attivi come un unico server a esecuzione prolungata e funziona sia con host MCP sia con il client CLI.
  • Modalità GUI: pyghidra-mcp avvia Ghidra, apre il progetto ed espone strumenti aggiuntivi che guidano il CodeBrowser nella stessa JVM.
  • Client CLI: pyghidra-mcp-cli è un client HTTP. Avvia prima un server streamable-http, poi invia comandi da terminale a quel server in esecuzione.
  • stdio: mantienilo solo per gli host MCP che non possono connettersi a un endpoint HTTP.
Architettura dettagliata e superficie degli strumenti
flowchart TD
    subgraph Clients
        Agent["LLM / MCP host"]
        Cli["pyghidra-mcp-cli"]
        Automation["scripts and CI"]
    end

    subgraph Transports
        Stdio["stdio"]
        Http["streamable-http"]
        Sse["sse legacy"]
    end

    subgraph Server["pyghidra-mcp server"]
        McpServer["MCPServer tool server"]
        Context["PyGhidra context"]
        Indexing["background analysis and Chroma indexing"]

        subgraph Tools["MCP tools"]
            Analysis["decompile, xrefs, bytes, callgraph"]
            Search["symbols, strings, code"]
            ProjectOps["import, delete, metadata, list binaries"]
            Edits["rename function, rename variable, set type, set prototype, set comment"]
            GuiOnly["GUI only: open program, goto, list open programs, set current program"]
        end
    end

    subgraph GhidraRuntime["Ghidra runtime"]
        PyGhidra["pyghidra"]
        Jpype["JPype shared JVM"]
        Project["Ghidra project"]
        Programs["program databases"]
        CodeBrowser["Ghidra GUI / CodeBrowser"]
    end

    Agent --> Http
    Automation --> Http
    Automation --> Sse
    Cli --> Http

    Stdio --> McpServer
    Http --> McpServer
    Sse --> McpServer

    McpServer --> Context
    Context --> PyGhidra
    PyGhidra --> Jpype
    Jpype --> Project
    Project --> Programs
    Context --> Indexing
    Indexing --> Search

    McpServer --> Tools
    Tools --> Context
    GuiOnly -.-> CodeBrowser
    Context -.-> CodeBrowser

Contenuti

Scarica lo strumento