O que é o REA (Reverse Engineer Anything) e por que ele é um MCP, não uma ferramenta solta?

diagrama mostrando o REA Reverse Engineer Anything funcionando como servidor MCP conectado a um agente de código
Resposta rápida

O REA Reverse Engineer Anything é um projeto open source (licença MIT, mantido por morluto em github.com/morluto/rea) que funciona como CLI e servidor MCP e roda localmente. Ele dá ao seu agente de código acesso a ferramentas de engenharia reversa pra investigar binários nativos (via Hopper, Ghidra ou IDA), apps JavaScript/Electron, assemblies .NET, websites, HAR, APKs, firmware e bytecode EVM, tudo sem o código-fonte. Por ser MCP, o próprio agente chama a análise e trabalha em loop: descompila, implementa, testa e repete. Ele não recupera o fonte original nem clona apps. Pra configurar: npx rea-agents setup e reiniciar o agente

E se o agente de código que você já usa no terminal conseguisse investigar um app sem ter o código-fonte dele?

É exatamente essa a proposta do REA (Reverse Engineer Anything) 😀

O REA é um projeto open source com licença MIT, publicado no GitHub pela conta morluto

O repositório oficial é o morluto/rea, e o próprio README se descreve como "um MCP para engenharia reversa de binários, aplicações e comportamento em runtime"

Na prática, ele funciona como CLI e como servidor MCP, roda localmente e é publicado no npm com o nome rea-agents

Bora entender por que esse detalhe do MCP muda tudo?

REA em vídeo

Também gravei um vídeo sobre o REA no canal Hora de Codar. Dê o play abaixo ou assista no YouTube.

Por que o REA é um MCP e não uma ferramenta solta?

Pensa no jeito tradicional de fazer engenharia reversa com IA

Você abre o Hopper, o Ghidra ou o IDA na mão, navega pelo binário, copia o pseudocódigo, cola no chat do agente e pergunta "o que essa função faz?"

Aí o agente responde, você volta pro descompilador, copia mais um pedaço, cola de novo… e por aí vai 😛

Quem opera a análise é VOCÊ, o agente só lê o que você entrega

Que MCP? MCP é o protocolo que deixa um agente chamar ferramentas externas por conta própria, como se fossem funções built-in dele

Se você conhece plugins de editor, a ideia é bem semelhante: você conecta uma vez e o agente passa a ter aquela capacidade disponível

Como MCP, o REA vira algo que o próprio agente chama, e o fluxo fica assim:

  • o agente pede a descompilação ao REA
  • recebe o pseudocódigo e os pontos que ainda são desconhecidos
  • escreve a implementação
  • testa
  • repete até o comportamento bater com o do original

Esse loop é o coração da coisa

E tem um detalhe mto massa: o setup não registra só o servidor MCP, ele também instala as instruções de workflow que acompanham o MCP

Isso importa porque ferramenta conectada sem orientação é meio caminho pro agente se perder, o mesmo problema de organizar as habilidades de um agente pra ele não escolher a ferramenta errada

Outro ponto: qualquer agente que aceite servidores MCP locais pode usar o REA, então ele não te prende a um cliente específico

O que o REA consegue analisar?

Aqui o nome "Reverse Engineer Anything" faz jus, a lista de alvos é grande

Se liga no que cada um devolve, de acordo com a documentação do projeto:

Binários nativos:

A análise nativa usa uma instalação já existente de Hopper, Ghidra ou IDA

O REA devolve pseudocódigo, assembly, strings, símbolos, chamadas e referências

Tome cuidado se estiver no Windows: segundo o README, o suporte a Ghidra no Windows é experimental

Apps JavaScript e Electron:

O REA inspeciona um app JavaScript/Electron já extraído, seja um diretório ou um arquivo ASAR

O resultado traz módulos, imports e as fronteiras do Electron, junto com a evidência de cada um

Esse "com evidência" é o que separa análise de chute, o agente mostra de onde tirou cada conclusão

Outros alvos:

Além dos dois acima, o REA também analisa:

  • websites
  • capturas de rede HAR
  • assemblies .NET
  • APKs Android
  • firmware
  • bytecode EVM
  • comportamento de processos

Pra esses, a documentação lista o suporte, mas não detalha o formato do retorno da mesma forma que faz com binários e Electron, então vale conferir no README antes de contar com uma saída específica

O que muda para quem já usa agente de código no terminal?

A grande mudança é que a investigação acontece dentro da mesma conversa com o agente

Nada de ficar alternando janela, copiando saída de descompilador e colando no chat

O agente descompila, implementa, testa e repete, tudo no mesmo fluxo em que ele já escreve o seu código

É como ter um colega que abre o descompilador sozinho quando precisa, em vez de ficar te pedindo print de tela haha

Os clientes que o setup configura automaticamente são:

  • Claude Code
  • Claude Desktop
  • Codex
  • Cursor
  • Gemini CLI
  • Windsurf
  • Devin
  • OpenCode
  • Antigravity
  • GitHub Copilot CLI
  • Command Code
  • VS Code

Usa outro cliente? Se ele aceita servidores MCP locais, dá pra registrar o MCP do REA manualmente

O que o REA NÃO faz:

Aqui é importante alinhar a expectativa, porque o nome pode enganar

O projeto avisa que não recupera o código-fonte original e não clona apps automaticamente

O que ele faz é explicar e reconstruir o comportamento, sempre com evidência anexada

Ou seja: não é botão mágico de "me dá o fonte desse app", é uma forma do agente entender como algo funciona e reimplementar a partir disso

O que você precisa para rodar o REA?

A lista é curta:

  • Sistema: macOS 12+ ou Ubuntu 24.04+ / Fedora 41+ / Arch Linux 64-bit
  • Node.js: 22.19+, 24.11+ ou 26+
  • npm
  • Para análise nativa: uma instalação de Hopper, Ghidra ou IDA

Se você não tiver nenhum dos três, o setup pode instalar o Hopper pra você, mas só com a sua aprovação

Nada é instalado escondido, beleza? 🙂

Como configurar o REA no seu agente?

Bora ver na prática?

  1. Rode o setup. Se você não quer instalar nada globalmente, use o npx:
npx rea-agents setup

Prefere ter o comando rea disponível sempre? Instale globalmente e rode o setup:

npm install --global rea-agents
rea setup

O rea --help mostra a ajuda com os comandos disponíveis

O erro comum aqui é a versão do Node: confira se a sua está numa das faixas suportadas (22.19+, 24.11+ ou 26+) antes de começar

  1. Escolha os agentes e aprove. O setup é interativo: você escolhe em quais agentes quer o REA, revisa as mudanças propostas e aprova

A configuração que já existia ganha backup, então você não perde o que tinha antes

O erro comum é aprovar no automático, no estilo next, next e finish xD Leia o que vai ser alterado, principalmente se você já tem outros MCPs configurados

  1. Reinicie o agente. Depois do setup, é preciso reiniciar o agente pra ele carregar o servidor MCP do REA

Esse é O erro clássico: rodar o setup, abrir a mesma sessão que já estava aberta e achar que não funcionou

Fecha e abre de novo, só assim o agente enxerga o MCP novo

Vale olhar o REA?

Recapitulando: o REA Reverse Engineer Anything é um projeto open source, com licença MIT, que conecta o seu agente de código a ferramentas de engenharia reversa e roda localmente

O valor não está em ser mais uma ferramenta pra você operar na mão

Está em ser um MCP que o próprio agente opera em loop (descompilar, implementar, testar, repetir), com evidência anexada em cada conclusão

E com limites claros: ele explica e reconstrói comportamento, não devolve o fonte original nem clona app sozinho

Se isso casa com o que você faz, o próximo passo é ler o README no repositório morluto/rea e rodar npx rea-agents setup no agente que você já usa

Depois me conta o que achou, bora trocar uma ideia 😀

Até o próximo post!

Perguntas frequentes

O REA funciona com o Claude Code?

Sim, o Claude Code está na lista de 12 clientes que o setup do REA configura automaticamente. Basta rodar o npx rea-agents setup ou o rea setup (se instalado globalmente) e escolher o Claude Code na etapa interativa. Depois disso só falta reiniciar o agente pra ele carregar o servidor MCP.

O REA é gratuito e open source?

Sim, o REA é um projeto open source publicado sob licença MIT. O código fica no repositório morluto/rea no GitHub e o pacote é distribuído no npm com o nome rea-agents.

Preciso ter o Ghidra, o IDA ou o Hopper instalado pra usar o REA?

Pra análise de binários nativos, sim: o REA usa uma instalação já existente de Hopper, Ghidra ou IDA. Se você não tiver nenhum dos três, o setup pode instalar o Hopper por você, mas só com a sua aprovação explícita.

O REA substitui o Hopper, o Ghidra ou o IDA?

Não, ele não substitui, ele orquestra. O REA se conecta a uma dessas ferramentas já instaladas e devolve pseudocódigo, assembly, strings, símbolos, chamadas e referências pro agente trabalhar dentro da mesma conversa.

Dá pra usar o REA sem instalar nada globalmente?

Dá sim, rodando npx rea-agents setup direto. Esse comando registra o servidor MCP no agente escolhido e instala as instruções de workflow, sem precisar do npm install --global rea-agents.

O REA funciona no Windows?

Os requisitos oficiais listam macOS 12+ ou Linux (Ubuntu 24.04+, Fedora 41+, Arch 64-bit), sem mencionar Windows como sistema suportado. O README cita apenas que o suporte a Ghidra no Windows é experimental, então o cenário Windows não é o caminho documentado como padrão.

Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 30min

Blog | Mais populares