REA:deixe agentes de IA ajudarem você a dissecar software sem código-fonte

O projeto open source REA (Reverse Engineer Anything) conecta ferramentas de análise reversa a agentes de programação com IA como Claude Code, Codex e Cursor. Se você vir um ótimo recurso em um app de outra pessoa, pode pedir ao agente para desmontar o programa, explicar como a funcionalidade foi implementada e apresentar evidências, para então escrever algo semelhante no seu próprio projeto. Engenharia reversa aqui significa descobrir, a partir de um programa compilado e sem o código-fonte, como ele foi escrito.

O REA em si é um serviço MCP. MCP é uma interface genérica para agentes de IA chamarem ferramentas externas; depois de conectado, o agente pode invocar diretamente as funções de análise do REA na conversa. A instalação requer apenas um comando: npx rea-agents setup. Ele será registrado em agentes como Claude Code, Codex, Cursor, Gemini CLI e Grok Build; antes de alterar a configuração, fará backup e pedirá sua confirmação. Se você não usar um agente, também é possível executar os comandos diretamente no terminal.

Há muita coisa que ele consegue analisar. Programas nativos, que são compilados diretamente para código de máquina, dependem de ferramentas de desassemblagem como Hopper, Ghidra ou IDA para reconstruir o código de máquina em assembly e pseudocódigo parecido com C. Aplicativos Electron — softwares de desktop feitos com tecnologias web, como o Notion — podem ser desmontados diretamente pelos arquivos de arquivamento ASAR dentro do instalador, permitindo entender módulos e comunicação entre processos sem ferramentas extras. Além disso, ele também suporta programas .NET, APKs Android, firmware, sites, registros de captura de pacotes, bytecode de contratos Ethereum, e ainda o registro do comportamento de programas em tempo de execução no Linux e no macOS.

A análise é feita localmente; o REA não envia o programa-alvo, mas os resultados da análise são entregues ao fornecedor do modelo por trás do agente, então o tratamento dos dados depende das políticas de cada empresa.

O projeto traz três casos de exemplo. O primeiro é o clássico jogo de quebra-tijolos DX-Ball: a partir de uma chamada que reproduz um efeito sonoro, ele chega até a função que calcula os canais esquerdo e direito com base na posição da bola, reconstrói pseudocódigo incompleto em código C, e 3205 conjuntos de testes coincidiram com o original; os 63 bytes compilados também ficaram exatamente iguais aos da versão original. O segundo é o Notion para desktop: rastreia a cadeia completa da ação de copiar e colar, da interface ao script de preload, passando pela comunicação entre processos até o processo principal. O terceiro é o jogo 东方幻想乡 (TH04) para o antigo PC-98 japonês: a partir de instruções de 16 bits, reconstrói o algoritmo de ângulo dos anéis de projéteis no bullet hell.

Para pesquisadores de segurança, pessoas que fazem recriações de jogos antigos e quem trabalha com preservação de software, antes era preciso ler linha por linha e seguir chamada por chamada nas ferramentas de desassemblagem; agora é possível deixar o agente fazer a primeira passagem e depois revisar as evidências que ele apresentar. Desenvolvedores comuns que queiram estudar como um concorrente implementa certo recurso também ganham mais uma opção.

O README mostra que o projeto já tem 50 mil estrelas no GitHub. O pacote npm foi lançado pela primeira vez em julho deste ano, e a versão mais recente, 6.3.0, foi lançada hoje.

Antes de usar, há dois pontos a notar. O projeto afirma que só oferece suporte à pesquisa reversa legal, e que a autorização e a conformidade são responsabilidade do usuário; fazer engenharia reversa de software de terceiros pode violar termos de uso ou leis de copyright. O projeto também afirma que nunca emitiu nem endossou qualquer criptomoeda, e que qualquer token que use o nome REA não tem relação com ele.

https://github.com/morluto/rea