Files
rea/README_pt-BR.md

20 KiB

English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Türkçe · Русский · Tiếng Việt · ไทย · Deutsch · Español · Français · Українська · Polski · Português (Brasil) · العربية · فارسی · Bahasa Indonesia · Italiano

REA: Faça engenharia reversa de qualquer coisa

Um único MCP para engenharia reversa de binários, aplicativos e comportamento em execução.

Viu uma funcionalidade de que gostou? Entenda como ela funciona, até o nível binário.

npm version MCP tool catalog Node.js requirements skills.sh MIT license Discord

morluto%2Frea | Trendshift

Site · Guias · Casos de uso

Início rápido · Como o REA funciona · O que você pode analisar · Casos de uso · Perguntas frequentes · Documentação

npx rea-agents setup


REA inicia sua ponte de análise dentro do Hopper enquanto inspeciona um binário nativo



Discord
Participe da comunidade de engenharia reversa

Discord · Perguntas e respostas · Compartilhe seus resultados


Viu uma funcionalidade em um aplicativo que gostaria de ter no seu próprio produto? Peça ao seu agente para investigá-la com o REA. Ele pode inspecionar o aplicativo sem o código-fonte, explicar como a funcionalidade funciona, apresentar as evidências e criar uma versão para o seu projeto.

O REA conecta seu agente a ferramentas para inspecionar binários nativos, aplicativos JavaScript e Electron, assemblies .NET e sites. Você também pode usar as mesmas ferramentas pelo terminal. A análise acontece localmente, e os resultados incluem as evidências e limitações por trás de cada conclusão.

A configuração registra o REA no seu agente e instala as instruções de fluxo de trabalho correspondentes. A análise nativa pode usar uma instalação existente do Hopper ou do Ghidra; a configuração também pode instalar o Hopper opcionalmente, mediante aprovação. A análise estática de JavaScript não precisa de nenhum dos dois motores.

Visite o site do REA para instruções de configuração, guias ilustrados e estudos de caso reais.

Início rápido

Configure seu agente

Com Node.js e npm instalados, execute:

npx rea-agents setup

Escolha seus agentes, revise as alterações propostas e aprove-as. A configuração adiciona o servidor MCP do REA e as instruções de fluxo de trabalho correspondentes, com backups das configurações existentes. Reinicie seu agente depois.

A configuração oferece suporte ao Claude Code, Codex, Cursor, Gemini CLI, Grok Build e outros agentes. Consulte instalação e configuração para configurar provedores e registrar o MCP manualmente.

Peça ao seu agente

Investigue como a busca funciona no aplicativo Notes, mostre as evidências e crie uma funcionalidade semelhante para o meu projeto.

Substitua Notes pelo aplicativo alvo e indique a funcionalidade que deseja entender.

Use o terminal

Inspecione um diretório extraído de um aplicativo JavaScript/Electron ou um arquivo ASAR:

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

O resultado inclui módulos, importações, limites do Electron e suas evidências. Substitua o caminho pelo do seu alvo, como "D:/apps/example" no Windows.

Para instalar o comando rea e usá-lo regularmente:

npm install --global rea-agents
rea --help

Para análise nativa, configure primeiro um provedor. Consulte o guia de CLI e Evidence para comandos nativos, seleção de provedores, snapshots e uso em scripts.

Atualize o REA

O REA muda rapidamente, e novas versões incluem correções frequentes de bugs. Mantenha sua instalação atualizada.

Para uma CLI instalada pelo npm:

rea update

Para atualizar os registros dos agentes e a skill, execute o comando de configuração exibido pela atualização.

Se você usa npx, atualize a configuração do agente com:

npx rea-agents@latest setup

Revise as alterações de configuração e reinicie seu agente. Para comandos avulsos da CLI, use npx rea-agents@latest seguido do comando.

Como o REA funciona

Seu agente chama o REA por MCP para inspecionar o alvo e rastrear o código relevante. O REA retorna os resultados com suas evidências. O agente usa esses resultados para fazer novas perguntas, explicar o comportamento ou escrever e testar uma implementação. Os comandos da CLI usam os mesmos fluxos de trabalho.

Fluxo de investigação do REA: seu agente pergunta sobre um alvo local, o REA o inspeciona e rastreia com ferramentas de análise, e o agente usa o código, as referências e os pontos desconhecidos retornados para explicar, implementar e testar.

Abra a figura em tamanho completo.

O que você pode analisar

O REA requer Node.js 22.x (>=22.19), 24.x (>=24.11) ou 26+, além do npm. As ferramentas adicionais e os sistemas anfitriões compatíveis dependem do alvo:

Alvo O que o REA retorna Requisitos e guia
Binários nativos Pseudocódigo, assembly, strings, símbolos, chamadas e referências Hopper, Ghidra ou IDA; análise nativa
Estrutura ELF sem execução Seções, segmentos, símbolos/relocações originais e possíveis mecanismos de mitigação identificados por análise estática pwntools fornecido pelo chamador no Linux x64; diagnóstico de binários
Bytecode EVM Seletores de despacho, offsets de bytes, argumentos inferidos e mutabilidade Entrada local com bytes brutos ou representação hexadecimal no Linux x64; guia de EVM sem execução
Falhas do Linux registradas Registros note brutos, registradores/sinais de cada thread registrada e candidatos opcionais a mapeamentos pwntools fornecido pelo chamador no Linux x64; GDB/pwndbg opcionais; falhas registradas
JavaScript / Electron Módulos, importações, source maps, rotas, IPC e relações com complementos nativos Node.js e npm; análise de aplicativos
Sites Estrutura da página, scripts, observações de rede e capturas de tela solicitadas Um navegador da família Chrome; análise do navegador
Capturas de rede salvas Requisições, respostas, payloads acessíveis e localizações de origem HAR; mitmdump no Linux para capturas no formato nativo do mitmproxy; guia de capturas
Assemblies .NET Metadados, instruções CIL, dependências nativas declaradas e comparações de builds Inspeção estática; guia de código gerenciado
APKs Android Declarações do manifesto, classes, métodos descompilados e referências JADX sem interface gráfica e um JDK completo no Linux/macOS/Windows x64; guia de Android
Dispositivos Android Dispositivos, pacotes, processos, logs, despejos, capturas de tela e transferências de APK/arquivos adb fornecido pelo chamador (emulador ou aparelho); guia de ADB
Projetos JEB Unidades de projeto do motor, hashes de artefatos e pseudocódigo de tipos/métodos Um cliente JEB iniciado pelo chamador servindo MCP, selecionado com REA_JEB_MCP_URL; guia de JEB
Recursos do Android Manifesto decodificado, tabelas de strings, idiomas e fatos de versão Lançador do Apktool fornecido pelo chamador; guia de recursos
Firmware Regiões, resultados de extração e encaminhamentos à análise nativa Binwalk / Unblob no Linux; guia de firmware
Pacotes e recursos Inventários de arquivos, digests, plists, estrutura de bundles Apple e recursos extraídos Guia de artefatos e JavaScript, aplicativos Apple
Comportamento de processos Saída do terminal, interações, observações de encerramento e do sistema de arquivos, e comparações entre execuções Linux/macOS com PTY nativo; captura de processos

A inspeção estática de JavaScript e .NET lê os arquivos fornecidos sem executar o aplicativo. A captura em execução inicia o alvo selecionado ou interage com ele usando as permissões do seu usuário; cada guia descreve seus efeitos.

Os formatos nativos e os sistemas anfitriões compatíveis variam por provedor. Consulte configuração do Hopper e Ghidra, o guia do IDA e o suporte experimental ao Ghidra no Windows. O Ghidra também oferece análise de DOS de 16 bits. Para selecionar um provedor, consulte o guia da CLI. Verifique a disponibilidade nas versões das funcionalidades adicionadas após a versão mais recente no npm.

Casos de uso

Ilustrações dos estudos de panoramização de áudio do DX-Ball, da ponte da área de transferência do Notion e do anel de projéteis do TH04

DX-Ball: reconstruir um cálculo de panorâmica de áudio

Siga uma chamada de áudio até a função auxiliar que converte posição em panorâmica, inspecione as instruções e transforme pseudocódigo incompleto em C. A reconstrução passa em 3.205 casos com o x86 original e reproduz todos os 63 bytes da função compilada.

Leia o estudo de caso · Repositório da reconstrução

Notion: rastrear a ponte da área de transferência do Electron

Encontre a API da área de transferência do renderizador, siga-a por preload e IPC até o processo principal e inspecione o formato da área de transferência com seus dados de formatação.

Leia o estudo de caso

TH04: recuperar o cálculo de um anel de projéteis no DOS

Inspecione as instruções de 16 bits do jogo original para PC-98, recupere os cálculos de ângulos fixos e direcionados e compare o C++ reconstruído com a saída do compilador da época.

Leia o estudo de caso · Repositório da reconstrução

Se você usou o REA em algo interessante, gostaríamos de conhecer. Compartilhe seu caso em uma issue ou um pull request, incluindo o alvo, sua pergunta, como o REA ajudou e o que descobriu.

Perguntas frequentes

Quais agentes podem usar o REA?

Qualquer agente que ofereça suporte a servidores MCP locais. A configuração prepara os agentes compatíveis; outros clientes podem usar o registro manual do MCP.

Preciso do Hopper, Ghidra ou IDA?

A análise nativa aprofundada usa um desses motores. A inspeção estática de JavaScript e .NET funciona sem um motor de análise nativa. A configuração pode instalar o Hopper após aprovação; Ghidra e IDA usam as instalações existentes. Consulte configuração dos provedores.

Preciso iniciar o Hopper antes?

O REA inicia o Hopper quando uma operação precisa dele. No macOS, um diálogo na primeira execução pode pedir que você escolha o modo de demonstração ou ative a licença. Consulte inicialização do Hopper e solução de problemas.

O que faz a instalação da skill pelo skills.sh?

A skill fornece instruções de investigação ao seu agente. Use npx rea-agents setup para registrar o servidor MCP do REA e instalar as instruções correspondentes, depois reinicie seu agente. Consulte instalação apenas da skill.

Que código o REA retorna?

A análise nativa retorna pseudocódigo e assembly. A análise de JavaScript/Electron recupera módulos e suas relações. Seu agente usa esses resultados para escrever e testar uma implementação; os casos de uso apresentam exemplos completos.

O REA envia meu aplicativo para algum servidor?

O REA analisa os alvos localmente. Seu agente recebe os resultados das ferramentas, e o provedor do modelo tem sua própria política de dados.

O que devo fazer se encontrar um bug?

Atualize primeiro; uma versão recente pode já ter corrigido o problema.

Para uma CLI instalada pelo npm:

rea update

Para configurar o agente por npx:

npx rea-agents@latest setup

Se você usa um agente, conclua a atualização da configuração e reinicie-o. Tente executar a mesma tarefa novamente. Se o problema persistir, abra uma issue com sua versão do REA, o tipo de alvo, os passos para reproduzir e a saída do erro.

Documentação

Comece pelos guias práticos do site. Para opções exatas, pré-requisitos e contratos dos resultados:

Relate vulnerabilidades conforme SECURITY.md.

Histórico de estrelas

🎉 90.000 estrelas no GitHub — muito obrigado!

Obrigado a todos que usam o REA, relatam bugs, sugerem funcionalidades, testam builds e contribuem com correções.

Histórico de estrelas do REA no GitHub

O REA fornece ferramentas para pesquisa, análise e reconstrução por engenharia reversa dentro da lei. Você é responsável por obter as autorizações necessárias e cumprir as leis aplicáveis. O projeto não apoia usos ilegais ou não autorizados.

Contribuir

Sua ajuda com o REA é bem-vinda! Abra uma issue para relatar um bug ou sugerir uma funcionalidade, ou envie um pull request para melhorar o código ou a documentação.

Consulte CONTRIBUTING.md para configurar o ambiente de desenvolvimento e as verificações, o guia de testes para os fluxos de verificação e o mapa da arquitetura para a estrutura do projeto.

Licença

MIT