REA (Reverse Engineer Anything): instale e use skills de engenharia reversa no Claude Code / Codex
REA é o morluto/rea no GitHub: um servidor MCP com licença MIT, uma CLI e uma skill de agente reverse-engineer-anything que permitem ao Claude Code, ao Codex, ao Cursor e a outros clientes inspecionar binários, apps Electron, assemblies .NET, APKs e sites — localmente, com evidências. Aqui estão a instalação verificada, os primeiros comandos e onde fica, de fato, a linha legal.
O REA em resumo
- Um projeto, três peças: o pacote npm `rea-agents` traz a CLI `rea`, um servidor MCP local e a skill `reverse-engineer-anything`, que diz ao agente qual ferramenta serve para qual alvo.
- A instalação é um único comando revisado: `npx rea-agents setup` lista os caminhos exatos de configuração, os backups e os destinos das skills, e então espera sua aprovação. Nada é gravado antes de você aprovar.
- Claude Code, Codex e Cursor também têm uma rota nativa — dois prompts `/plugin`, dois comandos `codex plugin` ou um plugin no Cursor Marketplace — e o setup consegue configurar 28 clientes diretamente.
- O REA não é um sandbox e não decide o que é legal: ele roda com as permissões do seu usuário em alvos que você precisa ter autorização para analisar, e o próprio aviso legal do projeto lista com o que ele se recusa a ajudar.
morluto/rea — README
Fonte: github.comchecked 2026-11-13
docs/getting-started/installation.md
Fonte: github.comchecked 2026-11-13
.agents/skills/reverse-engineer-anything/SKILL.md
Fonte: github.comchecked 2026-11-13
docs/getting-started/cli.md
Fonte: github.comchecked 2026-11-13
rea-agents — npm registry
Fonte: registry.npmjs.orgchecked 2026-11-13
DISCLAIMER.md + SECURITY.md
Fonte: github.comchecked 2026-11-13
dsh-rea — DeepSeek Harness directory
Fonte: deepseekharnessplugins.comchecked 2026-11-13
dsh-reverse-skill — DeepSeek Harness directory
Fonte: deepseekharnessplugins.comchecked 2026-11-13
Cada comando, ID de cliente, versão e número desta página foi lido das fontes acima em 2026-11-13: o README do repositório, docs/getting-started/installation.md, o SKILL.md incluído no pacote, docs/getting-started/cli.md, DISCLAIMER.md e SECURITY.md, e o registro do npm. Os dados do repositório vêm do GitHub API no mesmo dia: 455,720 stars, 111,916 forks, criado em 2026-04-14; versão mais recente no npm do `rea-agents` 6.9.0, publicada em 2026-11-12. A contagem de stars muda todo dia, então trate-a como um retrato com data. Esta página não cita nenhum número de desempenho: o README e a documentação que verificamos não trazem resultados de benchmark.
O que o REA é de fato
REA é a sigla de Reverse Engineer Anything. É um projeto de código aberto de terceiros, de morluto, com licença MIT, em github.com/morluto/rea, com o site rea.tools. Não é um produto da Anthropic, da OpenAI ou da Cursor, e não é um descompilador: é a camada que permite a um agente de código acionar descompiladores e parsers estáticos e depois explicar o que encontrou.
A distribuição é o pacote npm `rea-agents`. Ele expõe o comando `rea`, um servidor MCP local e a skill `reverse-engineer-anything` — um documento de fluxo de trabalho que manda o agente primeiro classificar o alvo (ASAR/Electron, arquivo compactado, APK, .NET, firmware, binário nativo, página de navegador, captura) e manter cada conclusão amarrada a Evidence. A análise roda na sua máquina; o agente recebe os resultados das ferramentas, e o provedor de modelo dele aplica sua própria política de dados.
A análise nativa profunda é por sua conta: Hopper, Ghidra, IDA ou Kuna. O setup consegue instalar o Hopper depois de uma aprovação separada e reaproveita um Ghidra, IDA ou Kuna já existente. A inspeção estática de JavaScript/Electron e de .NET não precisa de motor nativo nenhum — por isso um primeiro teste em um app Electron é a forma mais barata de descobrir se o REA merece lugar no seu fluxo de trabalho.
- versão no npm
- rea-agents 6.9.0
- Licença
- MIT
- GitHub stars
- 455,720
- Repositório criado
- 2026-04-14
O que ele consegue examinar
A tabela de alvos do README tem 39 linhas; aqui está a parte que decide se você instala ou não. A última coluna é o requisito que a documentação realmente informa — a maioria dos itens não precisa de nada além do Node.js.
| Alvo | O que você recebe | Precisa de |
|---|---|---|
JavaScript / Electron | Módulos, imports, source maps, rotas, fronteiras de IPC e add-ons nativos — de forma estática, sem executar o app. | Node.js + npm (no Linux, um `ps` do procps) |
Native binaries | Pseudocódigo, assembly, strings, símbolos, chamadas e referências cruzadas. | Hopper, Ghidra, IDA ou Kuna |
.NET assemblies | Metadados, instruções CIL, dependências nativas declaradas, comparação entre builds. | Nada extra (apenas estático) |
Android APK | Declarações do Manifest, classes, métodos descompilados e referências; dados de assinatura do APK. | JADX headless + um JDK completo (assinaturas não precisam de nada) |
Websites / captures | Estrutura da página, scripts, observações de rede, capturas de tela solicitadas; capturas HAR e SAZ. | Um navegador da família Chrome (capturas: HAR ou SAZ) |
Go / Rust / PE / WASM | Informações de build do Go, crates cargo-auditable do Rust, imports e certificados de PE, notas ELF, WASM, flags de hardening. | Nada extra (apenas estático) |
Archives / firmware | Inventário de membros e extração para ZIP/APK/IPA/MSIX/DMG, Godot PCK, UnityFS, wxapkg; regiões de firmware. | Binwalk ou Unblob no Linux, para firmware |
GGUF / safetensors | Metadados de GGUF e safetensors, declarações de tensores, hash opcional do arquivo inteiro. | Nada extra (apenas estático) |
Release exposure | Um relatório de exposição de release com IDs de verificação estáveis, status e correção: source maps enviados, fuses do Electron, marcadores de credenciais. | Nada extra (apenas estático) |
Duas fronteiras merecem leitura dupla. A inspeção estática analisa arquivos e não executa o alvo; já a captura em tempo de execução, os cenários de navegador e os fluxos de dispositivo executam o alvo ou interagem com ele, sob as permissões do seu usuário. E todo resultado traz suas próprias limitações e incógnitas — a documentação diz claramente que um relatório de exposição de release limpo não significa que a aplicação é segura.
Instalação: um comando revisado e, depois, rotas por cliente
O setup é interativo por padrão: lista os clientes suportados, mostra os arquivos exatos que vai tocar mais os backups e pergunta antes de gravar. A aprovação de download do npm e a aprovação do próprio REA são prompts separados, então aprovar o npm não aprova as mudanças de configuração.
1. O setup guiado — funciona para todo cliente suportado
Rode com Node.js e npm no PATH. Selecione os clientes (registros REA existentes vêm pré-selecionados, os recém-detectados não), leia o plano e aprove. Depois reinicie por completo os agentes citados na mensagem de conclusão: um cliente em execução pode sobrescrever o próprio registro. Para scripts, acrescente `--client <id>` e comece com `--dry-run --json` para obter um plano somente leitura.
Comandos
npx rea-agents setupnpx rea-agents setup --client claude_code --dry-run --json2. Claude Code: dois prompts /plugin, sem rodar o setup
O pacote npm do REA também é um plugin do Claude Code. Adicione o repositório como marketplace e instale `rea@rea`. Um plugin não executa `rea setup`, então a configuração de motores (caminhos de Ghidra/IDA) continua vindo das seções abaixo, e o `rea doctor` reporta o plugin como `missing` — verifique com `/plugin` e `/mcp`. Use o plugin ou um registro do setup para um dado cliente, nunca os dois, ou dois servidores `rea` sobem.
Comandos
/plugin marketplace add morluto/rea/plugin install rea@rea3. Codex: o mesmo plugin, dois comandos codex
O mesmo pacote npm traz um manifesto `.codex-plugin`. Adicione o marketplace e instale `rea@rea`. O cliente precisa de um `node` autônomo no PATH. Como no Claude Code, uma instalação por plugin é invisível ao `rea doctor`; use `codex plugin list` para verificá-la.
Comandos
codex plugin marketplace add morluto/reacodex plugin add rea@rea4. Cursor: registro do setup ou o plugin do Marketplace
`rea setup --client cursor` grava `~/.cursor/mcp.json` mais a skill gerenciada pelo setup. O Marketplace do Cursor também lista o repositório como um plugin que empacota a skill e um servidor MCP `rea` fixado em uma versão publicada; essa rota é um checkout Git e não coloca `rea` no PATH. Escolha uma das duas, não ambas.
Comandos
npx rea-agents setup --client cursor5. Só a skill — instruções sem ferramentas
Se você quer apenas as instruções, por exemplo para combiná-las com um servidor MCP que registrou à mão, instale a skill pelo skills.sh. Isso dá ao agente as regras de roteamento e as referências empacotadas, mas não registra ferramenta nenhuma, então as chamadas ao REA continuam ausentes até existir um servidor MCP.
Comandos
npx skills add morluto/rea --skill reverse-engineer-anything6. Verifique antes de confiar
`rea doctor` é somente leitura. Verifique separadamente um cliente, a skill instalada e um motor: a falha de um provedor não bloqueia as ferramentas que não precisam dele, e a checagem de cliente valida o registro, não uma investigação bem-sucedida. O doctor lê arquivos e pré-requisitos; ele não vê a sessão em execução, então um servidor registrado ainda precisa de reinício ou reconexão.
Comandos
rea doctor --client claude_code --jsonrea doctor --skill --jsonrea doctor --provider ghidra --jsonRequisitos, conforme documentados
- 1Node.js 22.x (>= 22.23.4), 24.x (>= 24.22.1) ou 26.12.1+, mais o npm que acompanha essa versão. Node 23, 25, versões 26.x anteriores e pré-lançamentos não são suportados.
- 2Um cliente que suporte servidores MCP locais. O setup conhece 28 IDs de cliente, incluindo claude_code, claude_desktop, codex, cursor, gemini_cli, windsurf, opencode, copilot_cli, antigravity, kimi, dsh e pi.
- 3Um motor nativo apenas para trabalho nativo. Análise estática de JavaScript/Electron e de .NET não precisa de mais nada; Android precisa de JADX headless e de um JDK; firmware precisa de Binwalk ou Unblob no Linux.
- 4Obtenha o pacote a partir de um diretório confiável fora do projeto alvo e passe caminhos absolutos para os comandos de análise — um executor de pacotes pode selecionar pacotes locais do projeto, e o REA não consegue validar o que aconteceu antes de seu ponto de entrada iniciar.
Uma primeira sessão que prova alguma coisa
O teste honesto mais barato é um recurso que você já entende, em um app que é seu, em um alvo sem motor nativo no caminho. Peça a evidência, não só a resposta: o ponto do REA é que o agente precisa mostrar o caminho de código que afirma ter encontrado.
Pergunte ao agente
O exemplo do próprio README, na íntegra. Troque Notes pelo seu alvo e o recurso por algo que você consiga verificar à mão. Espere que o agente chame ferramentas do REA, leia a Evidence e nomeie as partes que não conseguiu estabelecer — se ele responder sem evidência, provavelmente falta a conexão MCP ou a skill.
Prompt
Understand how search works in the Notes app, show me the evidence,and build a similar feature for my project.Ou conduza a CLI você mesmo
Todo fluxo de trabalho MCP tem um equivalente na CLI, que é a forma mais rápida de checar se uma afirmação sobre o REA é verdadeira. O primeiro comando devolve um registro de Evidence para um diretório Electron extraído ou um ASAR sem motor nenhum; o segundo audita um artefato publicado e sai com código 3 quando uma verificação exposta atinge a severidade que você passar.
Comandos
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --jsonrea audit-release-exposure ./dist/MyApp.app --fail_on high --jsonPor que a saída é grande — e o que fazer com isso
A Evidence de uma aplicação real pode chegar a centenas de megabytes. A resposta documentada é salvá-la e projetar uma visão: `rea analyze-javascript-application … > app-evidence.json`, depois `rea inspect-analysis-view` com um resumo ou uma página de módulos. Via MCP, `REA_MCP_MAX_RESPONSE_BYTES`, `REA_MCP_INPUT_SCHEMA_PROFILE=full` e `REA_MCP_OUTPUT_SCHEMA_PROFILE=compact` ajustam quanto disso o modelo vê.
Atualizar e remover
`rea update` atualiza a instalação global via npm ou Bun à qual pertence a CLI em execução; um setup feito com `npx` é atualizado rodando `npx rea-agents@latest setup` de novo. `rea uninstall` remove apenas registros e arquivos de skill que pertencem ao REA, `--purge-data` também descarta cache e estado, e nenhum dos dois toca em Hopper, Node.js, arquivos de Evidence ou skills não relacionadas.
Comandos
rea updatenpx rea-agents@latest setuprea uninstallrea uninstall --purge-dataREA vs. fazer à mão vs. um pacote de skills só com instruções
A comparação honesta não é REA contra um engenheiro reverso humano. É REA contra o mesmo agente com um shell e nenhuma ferramenta, e contra pacotes de skills que entregam instruções mas nenhum servidor.
| Aspecto | Agente + shell, sem REA | Agente + REA |
|---|---|---|
| Ligação das ferramentas | Você cola comandos e caminhos no chat e o modelo adivinha qual flag de descompilador usar. | A skill encaminha o alvo para uma ferramenta com schema; o servidor valida os argumentos e devolve Evidence estruturada. |
| Evidence | Só o que o agente citar, sem registro de qual arquivo ou offset aquilo veio. | As descobertas carregam sua evidência e seus limites, e as incógnitas ficam listadas em vez de serem alisadas. |
| Saída grande | Um dump de 300 MB ou estoura a janela de contexto ou é truncado por `head`. | A Evidence é salva e projetada — resumo, página de módulo ou um único módulo — antes de chegar ao modelo. |
| Pacotes só com instruções | Um pacote de skills de engenharia reversa ensina método, mas não registra ferramentas, então o agente continua apelando para o shell. | O REA entrega as duas metades: a skill e o servidor MCP/CLI que ela descreve. Instalações só com a skill são suportadas, mas deixam as ferramentas ausentes. |
Fronteiras legais e de segurança — vindas do projeto, não inventadas aqui
O DISCLAIMER.md e o SECURITY.md do próprio REA traçam a linha, e ela é mais rígida do que o marketing em torno desse tipo de ferramenta costuma ser. A versão curta: poder analisar um software não é o mesmo que ter permissão para isso.
- Usos pretendidos: pesquisa de segurança, análise de malware e de incidentes, pesquisa de vulnerabilidades e divulgação coordenada, CTFs e ensino, interoperabilidade, preservação de software e auditoria de software que você possui ou está autorizado a examinar.
- Explicitamente não suportados: contornar DRM, verificações de licença, anti-cheat ou outras medidas de proteção técnica; trapaças em jogos ou adulteração de serviços online; burlar autenticação ou controles de acesso que você não está autorizado a testar; copiar código e assets proprietários; evadir políticas de provedores de modelo.
- Estabelecer a autorização é responsabilidade sua. A disponibilidade pública de um binário, a posse de um arquivo ou o acesso a um endpoint de depuração não concedem permissão por si só, e a engenharia reversa pode ser restringida por lei ou pela licença do software na sua jurisdição.
- Ferramentas comerciais continuam comerciais: IDA Pro/Hex-Rays, Hopper e JEB precisam ser obtidos e licenciados legalmente. O REA não concede chave, licença nem ativação, e cópias crackeadas ou chaves compartilhadas não são autorizadas.
Mais dois pontos práticos do SECURITY.md: o REA não é um sandbox — a CLI e o MCP rodam com as permissões da sua conta — e arquivos de alvo, capturas e páginas web são dados não confiáveis, então uma instrução embutida em um binário não é uma instrução sua. Use uma VM ou contêiner descartável para qualquer coisa que você não construiu, e nunca aponte fluxos de trabalho em tempo de execução para sistemas que não são seus.
Antes de instalar: cinco ressalvas honestas
Nenhuma delas é motivo para pular o REA; todas são motivo para testá-lo primeiro em um único alvo.
- 1É um projeto de terceiros que se move rápido: o npm foi de 6.8.0 para 6.9.0 em três semanas, e a documentação avisa que uma skill instalada a partir da `main` pode descrever capacidades que uma versão mais antiga do npm não tem. Confie na lista de ferramentas do servidor conectado, não no texto da skill.
- 2A cobertura de clientes é ampla, mas desigual: alguns IDs de cliente exigem um rea-agents mais novo (droid, dsh, kimi, qoder, trae, workbuddy e zcode a partir da 6.5.0; freebuff a partir da 6.8.0), e `lm_studio` exige um release posterior à 6.8.0.
- 3O setup grava na configuração do seu agente e nos diretórios de skills. Ele mantém snapshots `.rea.backup` e se recusa a sobrescrever arquivos que não consegue verificar, mas não consegue coordenar com outro processo escrevendo no mesmo arquivo — feche o cliente primeiro, como a documentação pede.
- 4A configuração de motores é a parte que morde. Hopper é comercial, com um demo limitado, o instalador automático cobre apenas macOS e Linux x86_64, e outras arquiteturas estão documentadas para usar Ghidra. Sem motor, o `healthy` geral do doctor pode ficar false; a documentação diz que isso é normal enquanto o fluxo escolhido funciona, e só bloqueia pseudocódigo nativo.
- 5Contexto e privacidade: o agente vê a Evidence, então seu provedor de modelo também vê. A análise é local, mas os resultados não são — mantenha alvos sensíveis em um modelo local ou fora do circuito por completo.
DeepSeek Harness e os pacotes de skills vizinhos
O README do REA não menciona o DeepSeek Harness, mas o pacote consegue se registrar lá: `dsh` é um dos IDs de cliente do setup, e o diretório do DSH lista tanto o próprio projeto REA quanto adaptadores da comunidade. zhaofeng130/dsh-rea é um adaptador não oficial que registra a skill `reverse-engineer-anything` mais as ferramentas `rea` e `rea_doctor`, e explicitamente não empacota o REA. dhicoc/dsh-reverse-skill é outra coisa ainda: um port do pacote reverse-skill (87 arquivos SKILL.md para engenharia reversa, pentest autorizado e CTF) sem nenhuma dependência do REA. Nenhum dos dois tem vínculo com morluto/rea — leia antes de instalar.
