1 pontos por GN⁺ 2026-02-06 | 1 comentários | Compartilhar no WhatsApp
  • Ghidra MCP Server é um servidor Model Context Protocol (MCP) que conecta os recursos de engenharia reversa do Ghidra a frameworks de IA e automação
  • Por meio de 110 ferramentas MCP e 132 endpoints, oferece amplas capacidades de análise de binários, como análise de funções, exploração de estruturas de dados e extração de strings
  • Suporta processamento em lote, transações atômicas e análise em tempo real, podendo operar com implantação via Docker e modo headless
  • O recurso de transferência de documentação entre binários faz a correspondência automática da documentação de funções entre diferentes versões de binários
  • Uma plataforma que permite implementar fluxos de trabalho de engenharia reversa com IA com estabilidade em nível de produção

Visão geral

  • O Ghidra MCP Server é um servidor MCP pronto para produção que conecta o mecanismo de análise do Ghidra a ferramentas de IA e sistemas de automação
    • Implementa completamente o Model Context Protocol, permitindo interação com modelos de IA
    • Expõe os recursos do Ghidra via HTTP REST e protocolo MCP (stdio/SSE)

Principais recursos

  • Integração MCP central
    • Compatibilidade total com MCP, fornecimento de 110 ferramentas MCP, suporte a operações em lote e transações atômicas
    • Integração em tempo real com o mecanismo de análise do Ghidra
  • Análise de binários
    • Decompilação de funções, grafo de chamadas, referências cruzadas e geração automática de estruturas de dados
    • Inclui extração de strings, análise de tabela de símbolos, mapeamento de memória e transferência de documentação entre binários
  • Desenvolvimento e automação
    • Pipeline automatizado de build-teste-implantação-validação
    • Criação, execução e gerenciamento de scripts do Ghidra, comparação entre múltiplos programas, renomeação em massa e inserção de comentários

Instalação e execução

  • Pré-requisitos: Java 21 LTS, Apache Maven 3.9+, Ghidra 12.0.2, Python 3.8+
  • Procedimento de instalação
    • Clonar o repositório e instalar as dependências Python
    • Copiar 14 bibliotecas do Ghidra e fazer o build com Maven
    • Implantar o plugin na pasta de extensões do Ghidra
  • Formas de execução
    • Escolher entre transporte via stdio (padrão, para ferramentas de IA) ou SSE (para clientes Web/HTTP)
    • No Ghidra, executar Tools > GhidraMCP > Start MCP Server

Desempenho e estabilidade

  • Implementação completa de 110 ferramentas MCP, com tempo de resposta abaixo de 1 segundo na maioria das operações
  • Estrutura de operações em lote que alcança redução de 93% nas chamadas de API
  • Todas as operações são processadas como transações atômicas, garantindo confiabilidade
  • Fornece scripts de implantação automática com reconhecimento de versão

Estrutura da API

  • Operações centrais: verificação de conexão, consulta de metadados, informações de versão, exploração de entry points
  • Análise de funções: lista de funções, busca por nome, decompilação, grafo de relações de chamada, avaliação da completude da documentação
  • Memória e dados: lista de segmentos, disassembly, referências cruzadas, inspeção de conteúdo de memória
  • Documentação entre binários: geração de hash de função, exportação/aplicação de documentação, correspondência baseada em hash
  • Gerenciamento de tipos de dados: criação de structs e enums, modificação de campos, mesclagem de tipos duplicados
  • Gerenciamento de símbolos e labels: listas de import/export, análise de strings, namespaces e gerenciamento de variáveis globais
  • Renomeação e comentários: renomeação de funções, dados e variáveis, definição de comentários em massa
  • Sistema de tipos: definição de protótipos de função, configuração de tipos de variáveis, consulta de convenções de chamada
  • Gerenciamento de scripts do Ghidra: listagem, execução, salvamento, modificação e exclusão de scripts
  • Suporte a múltiplos programas: alternância entre programas abertos, lista de arquivos de projeto, comparação de documentação
  • Ferramentas de análise: busca de funções indefinidas, pesquisa baseada em strings, busca de padrões de bytes

Arquitetura

  • Estrutura ferramentas de IA/automação ↔ ponte MCP ↔ plugin do Ghidra
    • bridge_mcp_ghidra.py: servidor Python que converte o protocolo MCP em chamadas HTTP
    • GhidraMCP.jar: plugin Java que expõe recursos do Ghidra via HTTP
    • ghidra_scripts/: inclui mais de 70 scripts de automação

Desenvolvimento e build

  • Fornece build baseado em Maven e scripts de implantação em PowerShell
  • A estrutura do projeto é composta por servidor Python, plugin Java, bibliotecas do Ghidra, documentação, exemplos e scripts de build
  • É necessário copiar 14 bibliotecas obrigatórias (cerca de 37 MB) do caminho de instalação do Ghidra
  • Inclui implantação automática, operações em lote, transações atômicas e logging detalhado

Documentação e fluxo de trabalho com IA

  • A pasta docs/ inclui documentação completa, estrutura do projeto, convenções de nomenclatura e notação húngara
  • Prompts de fluxo de trabalho com IA: documentação de funções, correspondência entre versões e prompts de início rápido
  • Histórico de versões: CHANGELOG.md e docs/releases trazem detalhes por versão

Licença e status

  • Aplica-se a Apache License 2.0
  • Versão 2.0.0, implementação completa de 110 ferramentas MCP, com mais de 70 scripts do Ghidra incluídos
  • Pronto para implantação em ambiente de produção, adequado para engenharia reversa com IA

Projetos relacionados

  • re-universe: plataforma de análise de similaridade de binários em larga escala baseada em PostgreSQL
  • cheat-engine-server-python: servidor MCP para análise dinâmica de memória e depuração

Agradecimentos

  • Agradecimentos à equipe do Ghidra, aos desenvolvedores do Model Context Protocol e aos contribuidores da comunidade

1 comentários

 
GN⁺ 2026-02-06
Comentários do Hacker News
  • Criei este projeto porque o processo de fazer engenharia reversa de várias versões de software era doloroso demais
    O ponto central é um sistema de hash normalizado de funções, que gera hashes com base na estrutura lógica da função (instruções, operandos, fluxo de controle)
    Graças a isso, mesmo que o binário seja recompilado ou rebaseado, a mesma função mantém o mesmo hash, e todos os comentários, tipos e nomes são transferidos automaticamente
    Inclui 110 ferramentas com uma ponte MCP para o Ghidra, podendo ser integrado ao Claude, Claude Code ou outros clientes MCP
    Foi validado com várias versões de patch de Diablo II, e foi possível transferir automaticamente mais de 1.300 comentários de funções
    A integração com CI também é possível com o modo headless baseado em Docker
    Na v2.0.0, foram adicionados binding apenas para localhost, configuração de timeout, exclusão de labels, configurações via .env etc.
    Discussões sobre a abordagem de hashing ou o design de MCP são bem-vindas

    • Fiquei curioso sobre o que muda em comparação com o FunctionID padrão do Ghidra ou o plugin BinDiff
    • Gostaria de saber como ele se compara ao ReVa
      O guia de instalação parece incompleto. Instalei no Ghidra e reiniciei, mas o GhidraMCP não aparece no menu Tools
    • Tentei usar diretamente, mas o Ghidra não reconhece o plugin
      Queria saber se o GH Discussions é o canal certo para comunicação
    • Gostaria de entender a diferença em relação a outros servidores MCP para Ghidra (pyghidra-mcp, ReVa, GhidrAssistMCP etc.)
    • Queria saber se há suporte para descompilação de binários Android
  • Já usei o servidor MCP do Ghidra da LaurieWired, e a análise de binários e a criação de keygens foram divertidas e simples demais
    Com certeza vou usar este servidor MCP também

    • No passado, um software que eu tinha feito pedia autenticação a um servidor que não existe mais, então não era possível instalar; tentei criar meu próprio Ghidra MCP e falhei
      É curioso ver este projeto aparecer justo agora
    • Este branch está 110 commits à frente da main de LaurieWired/GhidraMCP
  • Vi um colega de trabalho usar Ghidra com Claude para hackear o jogo River Ride e resolvi tentar também
    Eu havia portado um jogo antigo de PowerPC para Apple Silicon, e embora tenha testado vários MCPs, o Claude Code alucinava código com frequência
    No fim, obtive os melhores resultados com o modo headless do Cursor + GPT 5.2 Codex

    • Também estou experimentando engenharia reversa, e o GPT-5.2 Codex é muito superior ao Claude
      Por exemplo, ele restaurou completamente um arquivo C64-SID de 1.300 linhas em 30 minutos
      Atualmente estou criando um sistema multiagente para fazer engenharia reversa de um jogo inteiro de C64
      Veja o código de exemplo
  • A engenharia reversa com IA está sendo subestimada
    Consegui extrair chaves de criptografia de um app Android, mas as chaves estavam escondidas dentro de shaders, e só dava para obtê-las executando o shader de fato

    • Dei a um Claude, junto com um amigo, um jogo antigo feito em Unity, e ele gerou um port completo em TypeScript
      Agora estamos adicionando multiplayer no navegador
    • É interessante essa parte de extrair a chave do shader. Queria saber mais sobre o método específico
    • Também tentei conectar MCP e várias ferramentas para restaurar código-fonte e detectar vulnerabilidades a partir de binários, e o resultado ficou quase idêntico ao código real
  • Uso há meses a versão de 15 ferramentas da LaurieWired, e a sensação é de que a estrutura interna do app fica completamente transparente
    Dá para rastrear bugs, criar plugins e até modificar o app
    Para código Objective-C, também uso o Hopper Disassembler
    Artigo relacionado: Full recompilation with LLMs and Ghidra

    • Como funcionário do GitHub, não me passa uma boa impressão equiparar engenharia reversa de apps com OSS
  • Engenharia reversa com LLM realmente está sendo subestimada
    Estou restaurando um jogo de 30 anos, e quando forneço ao modelo o resultado da descompilação do Ghidra e informações de símbolos em estilo RAG, saem resultados impressionantes
    Até modelos baratos como Gemini 3 Flash já são suficientemente úteis

    • Mas o Gemini frequentemente gera pseudocódigo incompleto
      Ele omite partes da função ou deixa o interior de blocos switch apenas em comentários
      Já Claude Opus e Qwen3-30B-A3B produzem código muito mais completo
      A grande janela de contexto do Gemini é uma vantagem, mas na prática há muitas limitações por causa da verbosidade do PCode
  • Eu achava que conectar ferramentas demais ao MCP prejudicava o desempenho, e isso não parece um bom design

    • Hoje em dia, o lazy loading resolve em parte o problema das ferramentas MCP
      Ainda assim, ferramentas muito centradas em conversão de API continuam tendo pouca compatibilidade com LLMs
    • Ferramentas em formato de skill, baseadas em vibecoded, parecem muito mais eficientes
  • Não sou engenheiro reverso, mas usei Claude Code e Ghidra MCP para melhorar um descriptografador de ransomware
    Quando consegui recuperar vários terabytes de dados, foi realmente como ganhar um superpoder

    • Ouvi a piada: “Com esse superpoder, você não poderia ter feito o criptografador ficar mais confiável?”
  • Acho que a IA pode demonstrar capacidade sobre-humana em análise de binários
    Hoje isso ainda é um trabalho de baixa produtividade e entediante, mas com IA pode ser usado também em auditorias de segurança e na defesa contra ataques à cadeia de suprimentos

    • Exato, e além disso a IA também pode analisar a si mesma
      O “skill-snitch” do MOOLLM monitora como outras skills funcionam, e o “cursor-mirror” examina completamente o estado interno do Cursor
      Essas skills podem ser combinadas e chamadas recursivamente, funcionando de forma “speed of light”, muito mais rápida que MCP
      Materiais relacionados: Leela MOOLLM Demo Transcript, speed-of-light skill, skill-snitch report
  • Fiquei curioso sobre por que isso não foi feito de forma baseada em CLI. Parece que hoje em dia os LLMs e agentes lidam melhor com CLI

    • Acho que isso só vale quando a CLI está presente nos dados de treinamento. Se for uma ferramenta nova, de qualquer forma seria preciso colocar toda a documentação no contexto
    • Este projeto começou antes de o MCP consumir contexto demais (LaurieWired/GhidraMCP)
    • Ferramentas recentes como Claude Code agora suportam carregamento baseado em busca de ferramentas, então a sobrecarga de contexto do MCP diminuiu bastante
    • Também penso assim. Se as descrições das 110 ferramentas entram sempre no contexto, isso só aumenta o ruído