Como analisar JavaScript e apps Electron com o REA sem instalar Ghidra, IDA ou Hopper

Com o pacote rea-agents instalado e o Node.js na faixa suportada (22.19+, 24.11+ ou 26+), você roda rea analyze apontando para o diretório ou o .asar do app, sempre com --approved. O REA monta um grafo do app sem executar o código e sem precisar de Ghidra, IDA ou Hopper. O resultado vem num envelope Evidence v2, com o grafo e um resumo da fronteira Electron (preload, contextBridge, IPC e por aí vai). Pelo Claude Code, a ferramenta MCP analyze_javascript_application entrega o mesmo serviço.
Fala aí, beleza? Dá pra investigar um app JavaScript ou Electron com o REA sem instalar Ghidra, IDA ou Hopper, e esse é o jeito mais leve de começar com a ferramenta 🙂
O REA (Reverse Engineer Anything) é um servidor MCP e CLI de código aberto, com licença MIT
Ele conecta agentes de código a ferramentas que inspecionam binários nativos, apps JavaScript e Electron, assemblies .NET e sites
Se tu ainda não sabe por que o REA é um MCP e não uma ferramenta solta, vale ler esse contexto antes
A análise de JavaScript do REA trabalha só com os arquivos que você fornece, um diretório ou um arquivo .asar, e não executa o código do app
Ou seja: nada de montar ambiente de binário pra começar
Este post é pra quem quer dar os primeiros passos em engenharia reversa pelo lado dos apps web e Electron, bora ver na prática?
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 48min
O que você precisa antes de começar
A lista é curta e cabe em qualquer máquina de dev, não precisa de PC da Nasa haha
- Node.js 22 (22.19+), 24 (24.11+) ou 26+: no npm a faixa aparece como
node ^22.19.0 || >=24.11.0 - Pacote npm
rea-agents: a versão mais recente é a 6.5.0, e os limites isolados de heap e timeout existem desde a 6.4.0 - Um diretório ou arquivo .asar de um app que você tem autorização pra analisar
- Opcional: um agente compatível com MCP, como o Claude Code
E o que NÃO precisa?
Ghidra, IDA, Hopper, navegador ou o app Electron rodando
A análise estática de JS não exige engine de análise nativa nem processo ativo, o REA projeta os arquivos num JavaScript Application Graph sem executar nada
A fonte oficial é o repositório morluto/rea, mantido pela conta morluto, com documentação em morluto.github.io/rea
Passo a passo: analisar um app Electron ou JavaScript com o REA
- Instalar o comando
rea
npm install --global rea-agents
Erro comum deste passo: instalar a partir de fork ou espelho
Existem vários por aí (NabilRFG12, shijianzhong, IronSuit, mattburnham) e nenhum é oficial
O oficial é morluto/rea e o pacote é rea-agents, Tome cuidado!
- Checar o host com o
rea doctor
rea doctor
Ele verifica os pré-requisitos do host e a configuração do agente SEM alterar nada, então pode rodar tranquilo
Erro comum deste passo: versão de Node fora da faixa suportada (22.19+, 24.11+ ou 26+)

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 →- Conectar o REA ao agente
npx rea-agents@latest setup
Você escolhe o cliente e revisa o plano
Aí o REA adiciona a conexão MCP e a skill de investigação correspondente, faz backup da configuração existente e pede confirmação antes de aplicar
Nada de next, next e finish às cegas, o que é ótimo 😀
- Verificar no Claude Code
Dentro do Claude Code, digite /mcp
Ou, no terminal:
claude mcp list
O REA tem que aparecer como servidor MCP conectado
- Rodar a análise pela CLI
Forma genérica, que escolhe sozinha o provider de JavaScript estático quando o alvo é um diretório ou um .asar:
rea analyze /absolute/path/to/releases/app.asar --approved --json
Forma explícita:
rea analyze-javascript-application /absolute/path/to/releases/app.asar --approved --json
Erro comum deste passo: esquecer o --approved
Ele aparece em todos os exemplos oficiais e indica que o alvo foi aprovado por você, o operador
- Rodar a análise pelo agente
No agente, a ferramenta MCP analyze_javascript_application expõe o mesmo serviço da CLI
Via MCP, o agente pede a análise ao servidor local e recebe os achados com evidências e limites declarados
Resultado esperado e checagem final:
As três portas de entrada (a ferramenta MCP, o rea analyze-javascript-application PATH --approved --json e o rea analyze PATH --approved --json) devolvem a mesma coisa: um envelope Evidence v2 com o grafo e um resumo da fronteira Electron
A checagem é simples: confirme que o envelope traz o grafo E o resumo da fronteira
Se os dois estão lá, a análise rodou
E tudo isso local, na sua máquina, o REA não envia o app pra um serviço de análise hospedado
O que dá para investigar em um app JavaScript ou Electron com a análise estática
O grafo responde as perguntas que todo mundo faz quando abre um app desconhecido, se liga:
Onde está a fronteira de segurança do Electron?
O REA reconstrói BrowserWindow, scripts de preload, contextBridge e canais IPC

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.É ali que você enxerga o que o lado web do app consegue pedir pro lado com acesso ao sistema
O app carrega código nativo?
Os native add-ons aparecem no grafo
E isso é a pista de quando a investigação vai sair do JavaScript (falo disso no fim)
Como o app é organizado?
Pacotes, entry points e imports de módulos
Pensa num mapa do projeto, só que montado a partir do que foi empacotado, não do código-fonte original
E apps web empacotados com bundler?
O REA reconstrói registros de chunks e module factories do Webpack e do Rspack quando estão representados como literais de AST
Também entram imports estáticos, imports dinâmicos, chamadas require (CommonJS), workers e service workers, além de source maps e rotas
Um detalhe importante: o agente não recebe só um "achei isso", ele recebe o achado com a evidência e com o limite declarado do que não foi possível afirmar
Isso muda MUITO a conversa com a IA, porque fica claro o que é fato e o que é lacuna
Por que a análise voltou com partes marcadas como desconhecidas
Sintoma: em um app grande, o resultado traz trechos registrados como desconhecidos
Causa: desde a v6.4.0, a análise de JavaScript roda em processo próprio isolado, com limites configuráveis de heap e timeout
Quando os recursos acabam, ela mantém os fatos já concluídos e registra explicitamente o que ficou desconhecido
Solução: trate o desconhecido como lacuna declarada, não como ausência de código
"Desconhecido" não quer dizer "não existe", quer dizer que a análise não chegou lá
Se precisar ir mais fundo, ajuste os limites de heap e timeout seguindo a documentação oficial do REA
Como prevenir: aponte para o .asar ou o diretório exato do app, não pra uma pasta enorme com tudo dentro, e mantenha o rea-agents atualizado
Vídeo de apoio
Se tu tá chegando agora no mundo dos apps web, esse vídeo do canal Hora de Codar mostra o que estudar depois de JavaScript, Vue ou React, e ajuda a entender os apps que você vai acabar investigando 🙂
Quando sair do JavaScript e partir para Ghidra, IDA ou Hopper
O JS estático cobre apps web e Electron, mas uma hora o grafo pode apontar um native add-on
Aí sim entra uma engine nativa: o REA integra Ghidra, IDA Pro e Hopper pra binários nativos
Pra testar se o Ghidra está pronto, tem o comando:
rea doctor --provider ghidra --json
E se o seu alvo for .NET, a inspeção estática também funciona sem engine nativa, então dá pra continuar no modo leve
O próximo passo prático: roda o rea doctor e faz a primeira análise num .asar que você tem autorização pra investigar, faça o teste!
Até o próximo post! =)
Perguntas frequentes
Preciso de um agente de IA conectado pra usar o REA?
Não, o agente compatível com MCP (como o Claude Code) é opcional. Dá pra rodar a análise só pela CLI, com rea analyze ou rea analyze-javascript-application, sem precisar de nenhum agente.
Quer aprender mais sobre inteligência artificial e programação na prática? Conheça o canal Hora de Codar no YouTube e acompanhe os próximos vídeos.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 30min
Blog | Mais populares

Análise de website com o REA: o que o agente consegue ver em uma página que não é sua?
REA análise de website: entenda como o agente observa estrutura, rede, console e storage de forma passiva, via CDP, sem tocar no backend.

REA (Reverse Engineer Anything) funciona com o agente que eu já uso?
REA Reverse Engineer Anything funciona com Claude Code, Codex, Cursor e mais. Veja como o setup registra o MCP no seu agente atual.

A análise do REA é mesmo local? O que roda na sua máquina e o que chega ao agente
REA análise local: entenda o que fica na sua máquina e o que vai para o provedor de modelo do agente antes de enviar binário sob NDA.
