REA · Ghidra · agentes de IA

Seu agente abre qualquer programa e explica como funciona

O REA dá ao Claude Code, Codex ou Cursor as ferramentas de engenharia reversa. Aqui você entende a tecnologia, vê os casos reais e descobre se vale pra você.

Engenharia reversa com IA: REA + Ghidra
Em resumo

Engenharia reversa é descobrir como um programa funciona olhando só o executável, sem o código-fonte. O REA (Reverse Engineer Anything) é uma ferramenta aberta que liga o seu agente de IA a descompiladores como o Ghidra, da NSA, e devolve as conclusões com a prova e os limites de cada uma. Serve para desenvolvedores, gente de segurança e quem estuda software. Este guia reúne os links, explica tudo em português, mostra casos reais e um teste feito aqui. Para usar, você precisa de Node.js e de um agente de IA no terminal.

O que é

Uma ponte entre o seu agente e as ferramentas de especialista

O REA não é um descompilador novo. Ele dá ao agente comandos simples em cima do Ghidra, do Hopper e do IDA, que antes levavam semanas pra dominar.

Engenharia reversa com IA: o que é, Ghidra, como funciona, casos, vale a pena, cuidados

🔍 Sem o código-fonte

Abre binários nativos (Mac, Windows, Linux), apps Electron/JavaScript, .NET, Android e sites, e mostra como uma função funciona.

🧾 Com prova anexada

Cada resposta vem em quatro partes: evidência, mapa recuperado, limites e o que ficou sem resposta. Nada de parágrafo "confia em mim".

💻 Tudo na sua máquina

A análise roda localmente. O programa analisado não é enviado; só os resultados vão para o modelo do seu agente.

Como funciona

Do binário à explicação

Compilar apaga nomes, tipos e comentários. Engenharia reversa é o caminho de volta, e o REA põe o agente para fazer esse caminho.

Você pergunta ao agente→ REA (servidor MCP)→ Ghidra · Hopper · IDA→ pseudocódigo, chamadas, textos→ evidência + limites→ o agente explica ou implementa
Código-fonte passa pelo compilador e vira binário
Compilar transforma o código em instruções de máquina; os nomes somem pelo caminho.
Electron fácil, nativo difícil
App Electron ainda guarda o JavaScript (análise fácil, sem rodar nada). App nativo precisa de descompilador.
Ghidra grátis, Hopper, IDA Pro caro
Ghidra (grátis, da NSA), Hopper (leve) e IDA Pro (padrão da indústria, caro): o REA usa o que você tiver.
Seu agente, REA via MCP, Ghidra Hopper IDA
O agente fala com o REA por MCP: "abrir binário", "achar textos", "quem chama essa função?".
Pré-requisitos

O que você precisa

Para apps JavaScript/Electron basta o Node. Para binários nativos, um descompilador instalado.

Node.js

Versões 22.19+, 24.11+ ou 26+ (23 e 25 não são suportadas).

node -v

Um agente com MCP

Claude Code, Claude Desktop, Codex, Cursor, Gemini CLI, Windsurf, OpenCode, Copilot CLI, VS Code e outros.

claude --version

Descompilador (só p/ nativo)

Ghidra (grátis, precisa de Java), Hopper ou IDA. O setup pode instalar o Hopper, com sua permissão.

# Ghidra: baixe em
github.com/NationalSecurityAgency/ghidra/releases
Guia de uso · passo a passo

Começar em 4 passos

Comandos do próprio projeto. O REA muda quase todo dia: confira a versão antes.

1

Teste sem instalar nada

A análise estática de um app Electron não precisa de Ghidra nem de MCP, e não executa o app. Aponte para a pasta ou o app.asar.

npx -y rea-agents@latest analyze-javascript-application /caminho/absoluto/app.asar --json
2

Ligue o REA ao seu agente

O setup mostra o plano, faz cópia da sua configuração e pergunta antes de mudar. Registra o servidor MCP e instala o método de investigação (skill).

npx rea-agents setup   # reinicie o agente depois
3

Confira só o que a sua tarefa precisa

O doctor com escopo testa um agente ou um motor específico, sem reprovar por algo que você nem vai usar.

rea doctor --client claude_code --json
rea doctor --provider ghidra --json
4

Peça ao agente

Em linguagem normal, com um programa seu ou que você tem autorização para analisar.

"Entenda como a busca funciona no app X, me mostre a evidência
e faça algo parecido no meu projeto."
Casos reais

O que já fizeram com isso

Números tirados dos repositórios e do site oficial em 10/10/2026.

As 3 regras do cofre
O cofre. App compilado sem nomes (242+ funções FUN_…). O agente achou a função certa, recuperou as 3 regras do código e escreveu um gerador: AGNT-1001 abriu.
Ciclo rastrear, escrever, compilar, comparar
DX-Ball (anos 90). 528 funções candidatas, 283 reescritas em C, 140 idênticas byte a byte. O som esquerda/direita passou em 3.205 testes contra o original.
Fone e app de um botão
Fone de ouvido. Em ~30 min de idas e vindas, um usuário ganhou um app próprio de um botão para ligar a redução de vento. Outros casos: o copiar e colar do Notion e o padrão de tiros de um jogo de PC-98.
Clean room: mesmo resultado sem ver o código
PhotoCraft. Outro método (clean room, sem olhar o binário): Photoshop refeito em Rust com documentação pública + testes contra o original. Ainda em alfa.
Vale a pena?

Para quem é útil, e para quem não é

Avaliação feita a partir da documentação, dos casos publicados e de um teste nesta máquina.

✅ Útil de verdade

• Desenvolvedores que querem entender como um app muito bom resolve busca, sincronização ou área de transferência.
• Segurança e privacidade: auditar os apps da sua máquina e ver o que mandam pra fora.
• Recuperar lógica de um programa seu cujo código se perdeu.
• Estudo, CTF e preservação de software antigo.
• Quem cria ferramentas para IA: o formato evidência · mapa · limites · desconhecidos é um ótimo modelo.

⛔ Não é para

• Quem não usa terminal: exige Node e paciência com versões que mudam todo dia (5.0 → 6.3 em três dias).
• Copiar o produto de um concorrente: arriscado juridicamente e perde o ponto.
• Programas muito protegidos (VMProtect, ofuscação pesada) ou com a lógica no servidor.
• Esperar milagre de qualquer modelo: em binários protegidos de propósito, até os melhores modelos resolvem só parte dos casos (SRE-Bench).

🧪 Teste feito aqui (10/10/2026)

Rodamos o REA 6.3.0 (analyze-javascript-application, sem Ghidra e sem MCP) num servidor Linux ARM. Funcionou num app Node nosso (97 arquivos, 3,5 MB): em 20 s e 1,3 GB de RAM devolveu um grafo com 2.109 nós e 3.104 ligações, 2.508 achados e 5 limitações declaradas, sem executar o app. Travou em dois alvos que tinham um único arquivo JS gigante (o bundle de um app Electron instalado e o typescript/_tsc.js, de 6 MB): ficou a 100% de CPU por mais de 20 min no mesmo arquivo, ignorou o SIGTERM e só parou com kill -9. Conclusão: funciona bem em projetos de tamanho normal; em apps grandes, rode com teto de tempo (timeout -s KILL) e sem node_modules. O JSON completo é enorme (241 MB aqui): no dia a dia, deixe o agente consultar pelo MCP em vez de ler o arquivo inteiro.

Dados, servidor, distribuição, confiança, velocidade

Para quem vende software: assuma que qualquer agente consegue mapear o seu app. O que protege são os dados, o servidor, a distribuição, a confiança e a velocidade, não o código fechado.

Cuidados

Antes de apontar para um programa

O próprio REA avisa: a responsabilidade é sua.

Licença e lei, não é sandbox, muda todo dia
Três cuidados que valem para qualquer uso.
1 · Lei
Licença e leiMuitas licenças proíbem engenharia reversa; quebrar proteção contra cópia é outro problema. Terreno seguro: seus programas, código aberto, desafios de segurança e o que você tem autorização para testar. Não é aconselhamento jurídico.
2 · Isole
Não é sandboxSe o REA executar o alvo, ele roda com as suas permissões. Um binário estranho pode esconder instruções para enganar o agente. Use máquina isolada e mantenha as aprovações do agente ligadas.
3 · Atualize
Muda todo diaRode rea update ou npx rea-agents@latest setup antes de reportar um problema.