Como investigar um assembly .NET com o REA sem ter o código-fonte

Instale o REA com npx rea-agents setup (Node.js 22.19+, 24.11+ ou 26+), conecte ao seu agente e peça a investigação do assembly em etapas: visão geral com inspect_managed_artifact, membros com inspect_managed_members, fronteira nativa com inspect_managed_native_boundaries. A análise é estática e não executa o app. Cada conclusão volta com evidência e limitações, e o que só tem suporte estático deve ser tratado como hipótese, não como comportamento comprovado em runtime
Dá pra entender um app .NET de terceiro sem ter o código-fonte, sim!
O caminho é pedir pro seu agente investigar o assembly com o REA e exigir evidência pra cada conclusão que ele tirar
Fala aí, beleza? Se você já precisou mexer num app .NET que chegou só como DLL ou EXE, sem fonte nenhuma, sabe o drama 😛
O REA (Reverse Engineer Anything) é um servidor MCP e CLI open source que dá a agentes de código, como Claude Code, Codex e Cursor, ferramentas pra analisar software sem acesso ao código-fonte
O repositório oficial é o morluto/rea, e o código escrito pelo REA é licenciado sob MIT
Agora, se liga no que ele NÃO promete: o REA não afirma recuperar o código-fonte original nem clonar um app automaticamente
Ele te dá evidência pra entender o app, o resto é investigação sua com o agente =)
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:
O REA roda em cima de Node.js e npm, então a primeira coisa é conferir a versão do Node
As versões suportadas são:
- Node.js 22.x (>=22.19)
- Node.js 24.x (>=24.11)
- Node.js 26+
Node.js 23, 25 e prereleases não são suportados
Além disso, você vai precisar de:
- Um agente suportado pelo setup: Claude Code, Codex, Cursor, Gemini CLI, Grok Build e outros
- O assembly .NET que quer investigar (o artefato PE/CLI, aquela DLL ou EXE gerenciado)
E motor extra? Não precisa!
A análise estática de .NET roda internamente no REA, sem Ghidra, IDA ou qualquer outro motor
O ILSpy é opcional e você traz o seu, porque o REA não instala ele
Sobre versão: a release mais recente encontrada é a rea-agents v6.5.0, publicada em 13/10/2026, e o projeto lança versões com frequência (a v5.0.0 saiu em 07/10/2026), então vale conferir as releases antes de seguir
Tome cuidado: existem vários forks com o mesmo texto de descrição do projeto, a referência é o morluto/rea
Passo a passo: investigando o assembly .NET com o REA
A ideia aqui é ir do geral pro específico: primeiro entender o que é o assembly, depois descer nos membros, depois olhar a fronteira nativa
Comparar builds e usar ILSpy ficam por último, como extras
- Instale e configure o REA no seu agente
Rode o setup:
npx rea-agents setup
O setup te deixa escolher quais agentes configurar, mostra os caminhos e as mudanças propostas, e só aplica depois que você aprova o plano
Lê com calma antes de aprovar, beleza? Não é aquele next, next e finish haha
Erro comum deste passo: estar com uma versão de Node não suportada, como a 23 ou a 25. Se for o seu caso, troca pra uma 22.x (>=22.19), 24.x (>=24.11) ou 26+ antes de rodar o setup
- Peça a visão geral do assembly
Aqui entra a ferramenta MCP inspect_managed_artifact com detalhe summary

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 →Por CLI, o comando equivalente é rea inspect-managed-artifact (as flags completas você confere na documentação de análise gerenciada)
Um pedido pro agente pode ser assim:
Use o REA para inspecionar o assembly MeuApp.dll com inspect_managed_artifact em detalhe summary. Me diga o que ele é, quais frameworks usa e quais limitações a análise apontou.
O que volta é uma visão inspect_analysis_view com:
- PE/CLI completo
- Classificação do artefato e a evidência dessa classificação
- Status de metadados
- Módulo e MVID
- Assembly
- Frameworks
- Contagem de linhas retornadas
- Cobertura e problemas encontrados
- Limitações
Que MVID? É o identificador do módulo, útil pra saber se dois arquivos são de fato o mesmo módulo ou não
Erro comum deste passo: achar que o REA vai rodar o app pra descobrir as coisas. Ele inspeciona o artefato .NET sem carregar nem executar o código, é tudo estático
- Desça aos membros
Com a visão geral em mãos, use inspect_managed_members (ou rea inspect-managed-members pela CLI)
Ela inspeciona tipos, assinaturas, corpos de métodos, chamadas e acesso a campos
É aqui que a investigação fica massa, porque você começa a ver quem chama quem 😀
Exemplo de pedido, adaptado do próprio README do projeto (que traz "Understand how search works in the Notes app, show me the evidence…"):
Entenda como funciona a busca no MeuApp.dll usando o REA. Mostre os tipos e métodos envolvidos, as chamadas entre eles e a evidência de cada conclusão.
Erro comum deste passo: esperar C# bonitinho na resposta. O corpo dos métodos vem em CIL (Common Intermediate Language), que é a linguagem intermediária do .NET, não o C# original
- Mapeie a fronteira nativa
Muito app .NET chama código nativo em algum ponto, e isso muda a investigação
A inspect_managed_native_boundaries lista as chamadas nativas declaradas e os indicadores de implementação nativa
Se você tiver evidência de análise nativa, o REA pode ligar essas chamadas a ela
Erro comum deste passo: tratar uma chamada nativa declarada como se ela fosse executada. Declarada não é o mesmo que chamada em runtime
- (Opcional) Compare builds
Tem duas versões do mesmo assembly e quer saber o que mudou? A compare_managed_members compara membros entre builds e mapeia os tokens locais de cada build
Isso ajuda porque tokens não são estáveis entre builds, então comparar "na mão" engana fácil

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.Erro comum deste passo: esperar resultado bom em código ofuscado. Melhorar a comparação de código gerenciado ofuscado ainda consta no roadmap, não é capacidade madura hoje
- (Opcional) Reconstrução com ILSpy
Se você quiser um C# aproximado pra ler, aponte o REA pro seu ilspycmd com caminho absoluto:
REA_ILSPY_CMD_PATH=/caminho/absoluto/para/ilspycmd
Com isso configurado, o C# gerado pelo ILSpy entra via import_managed_reconstruction como inferência de reconstrução, confrontada com a evidência estática exata dos membros
Erro comum deste passo: tratar a saída do decompilador como verdade. O REA não considera esse texto metadado canônico nem observação de CIL, e você também não deveria
Como ler as evidências e limitações que o REA devolve?
Essa é a parte que separa uma investigação séria de um chute com cara de análise
Pra cada conclusão, o REA retorna a evidência de suporte e as limitações
Cada resultado bem-sucedido é guardado como um registro estruturado Evidence v2, com provider, confiança e limitações conhecidas
Ou seja: não é só "o método X faz Y", é "o método X faz Y, segundo tal provider, com tal confiança, e com essas limitações"
Evidência estática prova o quê?
Prova o que está no artefato, não o que acontece quando o app roda
O próprio REA deixa isso explícito:
- Análise estática não prova comportamento em runtime
- Um módulo presente não é reportado como executado
- Evidência estática e de runtime ficam separadas
Na prática, se o agente disser "o app envia dados pra tal lugar" e a única base for uma chamada encontrada no CIL, isso é hipótese, não fato
E a saída do ILSpy?
É inferência, sempre
Ela vem confrontada com a evidência exata dos membros, então quando o C# reconstruído e o CIL discordarem, quem manda é a evidência dos membros
A ação que resolve tudo isso:
Antes de aceitar qualquer conclusão, peça ao agente algo assim:
Para cada afirmação que você fez sobre o MeuApp.dll, cite a evidência do REA que a sustenta e a limitação apontada. Marque como HIPÓTESE tudo que só tem suporte estático.
Se uma afirmação não tiver evidência associada, ela sai da conclusão
Essa mesma lógica de exigir base antes de aceitar a resposta vale quando você pede performance ao Claude Code sem ter métrica nenhuma: sem evidência, é opinião do modelo
Vídeo sobre o REA:
Se você quiser ver o REA de forma mais geral, esse vídeo apresenta a ferramenta: como instalar, o servidor MCP e o fluxo de apontar o REA para um sistema e gerar uma spec a partir dele
Próximo passo:
Pega um assembly pequeno e UMA pergunta específica, tipo "como a funcionalidade X funciona?"
Roda a visão geral, desce nos membros e exige evidência e limitação em cada conclusão
Só depois que esse fluxo estiver redondo vale partir pra comparação entre builds ou pra reconstrução com ILSpy
E fica de olho nas releases do morluto/rea, porque o projeto lança versão com frequência e as capacidades podem mudar rápido…
Até o próximo post! 🙂
Perguntas frequentes
O REA analisa só assembly .NET ou outros tipos de artefato também?
O REA também faz análise estática de JavaScript e Electron, rodando internamente, sem precisar de Ghidra, IDA ou outro motor extra.
A lógica é a mesma do fluxo .NET: evidência e limitação pra cada conclusão, sem executar o código analisado.
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.
