ghidraMCP

by LaurieWired
Verified
Apache 2.0
4,102
  • Apple

local-only server

The server can only run on the client’s local machine because it depends on local resources.

ghidraMCP

ghidraMCP es un servidor de Protocolo de Contexto de Modelo que permite a los LLM realizar ingeniería inversa de aplicaciones de forma autónoma. Expone numerosas herramientas de la funcionalidad principal de Ghidra a los clientes MCP.

https://github.com/user-attachments/assets/36080514-f227-44bd-af84-78e29ee1d7f9

Características

Servidor MCP + complemento Ghidra

  • Descompilar y analizar binarios en Ghidra
  • Renombrar automáticamente métodos y datos
  • Enumere métodos, clases, importaciones y exportaciones

Instalación

Prerrequisitos

Ghidra

Primero, descarga la última versión de este repositorio. Esta contiene el plugin de Ghidra y el cliente MCP de Python. Después, puedes importar el plugin directamente a Ghidra.

  1. Ejecutar Ghidra
  2. Seleccione File -> Install Extensions
  3. Haga clic en el botón +
  4. Seleccione GhidraMCP-1-2.zip (o la versión que elija) de la versión descargada
  5. Reiniciar Ghidra
  6. Asegúrese de que GhidraMCPPlugin esté habilitado en File -> Configure -> Developer
  7. Opcional : Configure el puerto en Ghidra con Edit -> Tool Options -> GhidraMCP HTTP Server

Guía de instalación en vídeo:

https://github.com/user-attachments/assets/75f0c176-6da1-48dc-ad96-c182eb4648c3

Clientes de MCP

En teoría, cualquier cliente MCP debería funcionar con ghidraMCP. A continuación se muestran dos ejemplos.

Ejemplo 1: Claude Desktop

Para configurar Claude Desktop como un cliente Ghidra MCP, vaya a Claude -> Settings -> Developer -> Edit Config -> claude_desktop_config.json y agregue lo siguiente:

{ "mcpServers": { "ghidra": { "command": "python", "args": [ "/ABSOLUTE_PATH_TO/bridge_mcp_ghidra.py", "--ghidra-server", "http://127.0.0.1:8080/" ] } } }

Alternativamente, edite este archivo directamente:

/Users/YOUR_USER/Library/Application Support/Claude/claude_desktop_config.json

La IP y el puerto del servidor son configurables y deben apuntar a la instancia de Ghidra de destino. Si no se configuran, ambos se establecerán como localhost:8080.

Ejemplo 2: Cline

Para usar GhidraMCP con Cline , también es necesario ejecutar manualmente el servidor MCP. Primero, ejecute el siguiente comando:

python bridge_mcp_ghidra.py --transport sse --mcp-host 127.0.0.1 --mcp-port 8081 --ghidra-server http://127.0.0.1:8080/

El único argumento requerido es el transporte. Si no se especifican los demás argumentos, se usarán los predeterminados. Una vez que el servidor MCP esté en ejecución, abra Cline y seleccione MCP Servers en la parte superior.

Luego, seleccione Remote Servers y agregue lo siguiente, asegurándose de que la URL coincida con el host y el puerto de MCP:

  1. Nombre del servidor: GhidraMCP
  2. URL del servidor: http://127.0.0.1:8081/sse

Ejemplo 3: 5ire

Otro cliente MCP compatible con múltiples modelos en el backend es 5ire . Para configurar GhidraMCP, abra 5ire y vaya a Tools -> New y configure lo siguiente:

  1. Clave de herramienta: ghidra
  2. Nombre: GhidraMCP
  3. Comando: python /ABSOLUTE_PATH_TO/bridge_mcp_ghidra.py

Construyendo desde la fuente

Construya con Maven ejecutando:

mvn clean package assembly:single

El archivo zip generado incluye el plugin de Ghidra compilado y sus recursos. Estos archivos son necesarios para que Ghidra reconozca la nueva extensión.

  • lib/GhidraMCP.jar
  • extensiones.propiedades
  • Módulo.manifiesto
-
security - not tested
A
license - permissive license
-
quality - not tested

Un servidor MCP que permite a los LLM realizar ingeniería inversa de aplicaciones de forma autónoma al exponer la funcionalidad de Ghidra, lo que permite la descompilación, el análisis y el cambio de nombre automático de métodos y datos.

  1. Features
    1. Installation
      1. Prerequisites
      2. Ghidra
      3. MCP Clients
      4. Example 1: Claude Desktop
      5. Example 2: Cline
      6. Example 3: 5ire
    2. Building from Source
      ID: 0k3c7mhg5q