REA em CTF e pesquisa de segurança: onde um MCP de engenharia reversa encaixa no seu fluxo

O REA (Reverse Engineer Anything) é um toolkit open source de engenharia reversa, publicado por morluto no GitHub sob licença MIT, que conecta agentes de código como Claude Code, Codex, Cursor e Gemini CLI a ferramentas de análise via MCP ou CLI. Em CTF e pesquisa de segurança, ele ajuda na triagem: devolve pseudocódigo, assembly, strings, símbolos e referências de binários nativos (via Ghidra, IDA Pro ou Hopper), checa layout ELF e mitigações via pwntools, analisa crashes Linux gravados, bytecode EVM, firmware e APKs. Cada conclusão vem com evidência e limitações, mas quem valida e decide a exploração continua sendo você
Fala aí, beleza? Se tu já resolve desafio de reverse na mão, sabe que boa parte do tempo vai embora no vai e vem entre decompilador, terminal e anotações
E é exatamente nesse vai e vem que um agente pode entrar 🙂
O REA (Reverse Engineer Anything) é um toolkit open source que conecta agentes de código a ferramentas de análise via MCP
Que MCP? É o protocolo que deixa o agente chamar ferramentas externas, em vez de ficar só no chute em cima do texto que você cola no chat
Neste post eu te mostro onde o REA encaixa no fluxo de CTF e pesquisa de segurança, categoria por categoria
E já deixo claro desde o começo: a ideia aqui NÃO é prometer que o agente resolve o desafio sozinho, beleza?
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 48min
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.
O que é o REA e por que ele chamou atenção da comunidade de segurança
O REA é um toolkit de engenharia reversa publicado por morluto no GitHub, no repositório morluto/rea
Ele é open source, sob licença MIT, gratuito e roda localmente na sua máquina
O projeto é escrito em TypeScript, e os mesmos fluxos rodam de dois jeitos: via MCP (pelo seu agente) e via CLI (direto no terminal)
Ou seja, se tu prefere scriptar na mão em vez de conversar com agente, também dá 😀
Um detalhe massa pra quem lê melhor em português: o repositório tem um README em PT-BR, o README_pt-BR.md
Sobre a repercussão: o REA apareceu no topo do GitHub Trending em outubro de 2026
E não foi só hype, gerou debate de verdade na comunidade sobre segurança de software e propriedade intelectual
Faz sentido, né? Uma ferramenta que facilita abrir qualquer coisa também facilita abrir o que não devia ser aberto… volto nesse ponto no veredito
Alvos de CTF que o REA analisa e o que cada um devolve
Aqui tá o mapa que interessa pra quem joga CTF: o tipo de alvo, o que o REA devolve e o que precisa estar instalado
| Tipo de alvo | O que o REA devolve | Dependência exigida |
|---|---|---|
| Binário nativo | Pseudocódigo, assembly, strings, símbolos, chamadas e referências | Ghidra, IDA Pro ou Hopper |
| Layout ELF e mitigações | Checagem de layout ELF e mitigações | pwntools |
| Crash Linux gravado | Notas brutas, registradores e sinais de todas as threads gravadas, candidatos de mapeamento opcionais | GDB/pwndbg (opcional) |
| Bytecode EVM | Seletores de dispatch, offsets de byte, argumentos inferidos e mutabilidade | Não listada no README |
| Firmware | Regiões e resultados de extração | Binwalk ou Unblob, no Linux |
| APK e dispositivo Android | Manifest, métodos decompilados, logs e capturas de tela | JADX + JDK, e adb |
Uma nota importante: a análise estática de JavaScript não precisa de motor nativo
O README ainda lista outros alvos, como assemblies .NET, módulos WebAssembly, apps Electron, bancos SQLite, capturas de rede salvas e sites
O detalhe de cada um tá no README do repositório, vale dar uma olhada antes de partir pra esses alvos
Como usar um MCP de engenharia reversa em cada categoria de CTF
Antes de entrar nas categorias, se liga: o foco aqui é ONDE o agente entra no raciocínio de cada tipo de desafio
Porque saber pedir a coisa certa vale mais do que decorar comando, beleza?
Rev de binário nativo: achando a função de verificação
No rev clássico, o trabalho chato é achar onde o binário compara o input com a flag
Aqui o agente brilha no cruzamento: tu pede pra ele juntar strings, símbolos e referências com o pseudocódigo e apontar a provável função de verificação
Algo como: cruza as strings de mensagem de sucesso e erro com as referências e me diz qual função decide o caminho
Depois disso, a validação é tua: abre a função no assembly e confere se a lógica bate com o que o agente descreveu

VPS Hostinger para seu sistema
10% OFF extraVPS com SSD NVMe e backups semanais. O cupom MATHEUSHORADECODAR é aplicado automaticamente pelo link.
Ver planos com 10% OFF →Pseudocódigo de decompilador às vezes simplifica coisa que importa, então Tome cuidado com confiar só nele!
Pwn: começando pelo layout ELF e pelas mitigações
Em pwn, a primeira pergunta nunca é como explorar, é o que está ligado nesse binário?
O REA faz a checagem de layout ELF e mitigações via pwntools, e o pwntools é quem traz o utilitário checksec
As mitigações típicas que um checksec verifica são estas:
- RELRO: protege a GOT contra sobrescrita (no modo completo, ela fica somente leitura)
- Stack Canary: um valor na pilha que denuncia o overflow antes do retorno da função
- NX: impede executar código em regiões de dados, como a pilha
- PIE: o binário é carregado em endereço base aleatório
- ASLR: randomiza endereços de pilha, heap e bibliotecas
- Fortify Source: troca funções perigosas por versões com checagem de tamanho
Por que isso define a estratégia? Porque cada combinação fecha uma porta e deixa outra aberta
Com NX ligado, shellcode na pilha já era, e tu parte pra ROP
Com PIE, tu vai precisar de um leak antes de montar qualquer cadeia, e por aí vai
Então o agente te entrega o cenário, e a decisão da técnica continua sendo tua 🙂
Crash gravado: triagem a partir de registradores e sinais
Pra crash Linux gravado, o REA devolve notas brutas, registradores e sinais de todas as threads gravadas, além de candidatos de mapeamento opcionais
Usar GDB ou pwndbg aqui é opcional
Esse material é o ponto de partida da triagem: qual sinal derrubou o processo, em qual thread, e o que estava nos registradores naquele momento
Se o ponteiro de instrução tá apontando pra lixo que parece vindo do teu input, já é uma pista forte de controle de fluxo, né?
Lembrando que esse fluxo é voltado pra crashes Linux gravados
Blockchain e EVM: mapeando um contrato sem código fonte
Desafio de smart contract sem fonte publicado é aquele bytecode gigante que ninguém quer ler na mão haha
O REA devolve seletores de dispatch, offsets de byte, argumentos inferidos e mutabilidade
Com isso tu monta o mapa das funções do contrato: quais existem, onde começam no bytecode, o que recebem e se alteram estado
A palavra-chave aqui é inferidos: argumento inferido é hipótese, então confere antes de montar a transação do exploit
Firmware e IoT: extração antes do mergulho
Em firmware, não adianta abrir o blob inteiro no decompilador e rezar
O caminho é extrair primeiro, e o REA devolve as regiões e os resultados de extração
Pra isso ele exige Binwalk ou Unblob, no Linux
Com as regiões separadas, aí sim tu escolhe qual binário extraído merece a análise nativa
Mobile: manifest e métodos decompilados de APK
Em desafio Android, o manifest costuma ser o primeiro lugar a olhar: activities expostas, permissões, componentes exportados
O REA devolve o manifest, os métodos decompilados, logs e capturas de tela
Isso exige JADX mais um JDK, e o adb pra parte do dispositivo
O combo de método decompilado com log do app rodando ajuda a ligar o que o código diz com o que realmente acontece em execução
Evidência junto da conclusão: por que isso importa para quem faz reverse
Se liga nisso, porque pra mim é a parte mais importante do projeto
O REA devolve cada descoberta acompanhada da evidência e das limitações por trás da conclusão
Isso vem em registros reproduzíveis Evidence v2 e em dossiês completos de função
Por que isso importa tanto? Porque em segurança, conclusão sem prova é palpite
Agente de IA é ótimo em soar confiante, e um esta função valida a flag dito com convicção pode estar simplesmente errado
Quando a evidência vem junto, tu consegue fazer o que todo reverser faz: conferir

Crie sistemas com IA para vender
Prompts, modelos e checklists para criar e publicar seu sistema com IA e preparar a oferta para o primeiro cliente.
Quero o e-book gratuito Receba o livro e os bônus no seu e-mail.O papel do humano no loop fica bem definido:
- Ler a evidência que o agente apresentou
- Abrir o mesmo ponto no motor de análise (Ghidra, IDA Pro ou Hopper)
- Só então escrever o exploit ou submeter a flag
É o mesmo princípio da revisão humana no fluxo de segurança: a IA acelera, mas a assinatura final é tua
E tem um bônus: as limitações declaradas te dizem onde NÃO confiar, o que vale MUITO quando o desafio tem ofuscação ou anti-debug
O que você precisa antes de colocar o REA no seu agente
A lista é enxuta, e o melhor: tu só instala o que o teu tipo de desafio usa
- Node.js e npm: base pra rodar o setup
- Um agente suportado: Claude Code, Codex, Cursor, Gemini CLI, Grok Build e outros
- Um motor nativo, se for analisar binário: Ghidra, IDA Pro ou Hopper já instalado (o setup pode instalar o Hopper opcionalmente, com a tua aprovação)
- Dependências por alvo: pwntools pra ELF e mitigações, GDB/pwndbg (opcional) pra crash gravado, Binwalk ou Unblob no Linux pra firmware, JADX + JDK e adb pra Android
Vai jogar só categoria de mobile? Não precisa sair instalando Binwalk
Vai focar em JavaScript? A análise estática nem pede motor nativo
Nada de montar um PC da Nasa de ferramentas antes da hora 😛
Como instalar o REA no Claude Code e em outros agentes
O setup é o mesmo pra Claude Code e pros outros agentes suportados, bora ver
- Com Node.js e npm instalados, rode o setup:
npx rea-agents setup
- Escolha os agentes onde quer o REA (Claude Code, Codex, Cursor, Gemini CLI, Grok Build ou outro suportado)
- Revise as mudanças propostas e aprove
Nesse passo, o setup adiciona o servidor MCP do REA e as instruções de fluxo correspondentes (a skill de roteamento), fazendo backup da configuração existente
Erro comum deste passo: aprovar sem ler o que muda na configuração do agente
O backup existe, mas revisar é justamente o motivo de o setup pedir aprovação, então lê antes de sair no next, next e finish haha
Se tu prefere ter a CLI instalada globalmente, a alternativa é esta:
npm install --global rea-agents && rea setup
Erro comum depois da instalação: esperar análise de binário nativo sem ter um motor instalado
Sem Ghidra, IDA Pro ou Hopper, não tem pseudocódigo nem assembly, então confere isso antes de abrir o primeiro desafio de rev
Vale colocar um agente no loop de reverse engineering?
Veredito honesto, e sem experiência própria pra te vender: pelo que o projeto entrega, faz sentido pra quem JÁ resolve desafios na mão
O ganho tá na triagem, no cruzamento de strings, símbolos e referências e na documentação do raciocínio, que vem junto com a evidência
O que ele não faz: substituir saber ler assembly nem decidir a estratégia de exploração
Se tu não entende por que PIE muda o plano, o agente vai te entregar o dado e tu não vai saber o que fazer com ele
Pra quem tá começando em CTF, o risco é real: terceirizar o aprendizado
CTF é treino, e pular a parte de sofrer em cima do binário é pular justamente o que te deixa bom nisso
Outro ponto que não dá pra ignorar: use o REA só em alvos que você tem autorização pra analisar
Desafio de CTF, binário teu, pesquisa com escopo autorizado, beleza
Software de terceiros sem permissão entra exatamente no debate sobre propriedade intelectual que o lançamento levantou
E se o teu interesse vai mais pra análise de ameaças, vale ver também como a IA se sai em engenharia reversa de malware, que tem outras armadilhas
Próximo passo: teste o REA no próximo desafio que você já sabe resolver
Recapitulando: o REA conecta teu agente a Ghidra, IDA Pro, Hopper, pwntools, GDB/pwndbg, Binwalk, Unblob, JADX e adb, via MCP ou CLI
Ele cobre binário nativo, ELF e mitigações, crash Linux gravado, EVM, firmware e Android, sempre com evidência e limitações junto da conclusão
Minha sugestão de teste é simples: roda o npx rea-agents setup e aplica o agente num desafio que tu JÁ resolveu na mão
Aí compara a evidência que ele devolve com o caminho que tu fez
Se ele chegou no mesmo lugar e mais rápido, massa, tu ganhou um parceiro de triagem
Se errou, tu descobriu onde não confiar nele, o que também vale muiiito 😀
Pra qualquer dúvida de configuração, a referência oficial é o README_pt-BR.md no repositório
Até o próximo post!
Perguntas frequentes
O REA exige conexão com algum servidor externo pra funcionar?
Não, o REA roda localmente na sua máquina, sem depender de servidor externo
Ele é open source, sob licença MIT, e gratuito
Preciso ter Ghidra, IDA Pro ou Hopper já instalado pra usar o REA?
Pra análise de binários nativos, o REA controla um desses três motores, e pode usar uma instalação existente de qualquer um deles
O setup consegue instalar o Hopper opcionalmente, com tua aprovação
Já a análise estática de JavaScript não precisa de motor nativo nenhum
Como instalar o REA pra usar junto com um agente de código?
Com Node.js e npm instalados, roda npx rea-agents setup, escolhe os agentes e aprova as mudanças propostas
O setup adiciona o servidor MCP do REA e a skill de roteamento correspondente, fazendo backup da configuração existente
Também dá pra instalar a CLI global com npm install --global rea-agents && rea setup
O REA funciona com Claude Code?
Sim, Claude Code está entre os agentes suportados pelo setup, junto com Codex, Cursor, Gemini CLI, Grok Build e outros agentes
O REA mostra como chegou em cada conclusão, ou só entrega o resultado final?
O REA devolve as descobertas acompanhadas da evidência e das limitações por trás de cada conclusão
Isso vem em registros reproduzíveis chamados Evidence v2, além de dossiês completos de função
Analisar firmware ou APK Android no REA exige alguma ferramenta extra instalada?
Pra firmware, exige Binwalk ou Unblob, no Linux
Já pra APK e dispositivo Android, exige JADX mais um JDK, e adb
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 30min
Blog | Mais populares

REA (Reverse Engineer Anything) precisa de Ghidra, IDA ou Hopper para funcionar?
REA Reverse Engineer Anything precisa de Ghidra, IDA ou Hopper? Depende do alvo: veja quando dá pra usar só Node.js e npm.

Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação A popularidade da automação de processos com o n8n está em alta, principalmente […]
O que significa “ChatGPT network error” e como resolver
Network error indica falha de comunicação, mas não identifica sozinho a causa. Confira o status do ChatGPT, teste uma nova conversa e uma janela sem […]
