Marcos Oliveira
← Voltar ao blogREA: a ferramenta que permite aos agentes de IA investigar como um software funciona
Tecnologias

Por Marcos Oliveira · Criado em 13/10/2026

REA: a ferramenta que permite aos agentes de IA investigar como um software funciona

Conheça o REA, projeto open source que conecta agentes de inteligência artificial a ferramentas de engenharia reversa para investigar e compreender aplicações.

TL;DR

O REA (Reverse Engineer Anything) permite que agentes de IA utilizem ferramentas de engenharia reversa para investigar o funcionamento de softwares, mesmo sem acesso ao código-fonte original. A tecnologia combina MCP, decompilação e análise orientada por evidências para ajudar desenvolvedores a compreender e reconstruir funcionalidades.

REAInteligência ArtificialEngenharia ReversaAgentes de IAMCPDesenvolvimento de Software

Imagine encontrar uma funcionalidade interessante em um aplicativo e querer entender como ela foi desenvolvida. Normalmente, isso exigiria acesso ao código-fonte ou um trabalho complexo de investigação utilizando ferramentas especializadas.

Agora imagine poder solicitar a um agente de inteligência artificial que investigue esse aplicativo, identifique as partes responsáveis pela funcionalidade e explique como ela funciona.

Essa é a proposta do REA (Reverse Engineer Anything), um projeto open source que combina agentes de IA com ferramentas de engenharia reversa.

A ideia é permitir que desenvolvedores investiguem o funcionamento de programas a partir de instruções em linguagem natural, utilizando evidências extraídas do próprio software.

Primeiro, o que é engenharia reversa?

Na engenharia de software tradicional, desenvolvemos um programa a partir de requisitos, regras de negócio, algoritmos e código-fonte. Esse código passa por processos que permitem sua execução pelo computador.

A engenharia reversa percorre o caminho contrário.

Em vez de partir do código original para produzir um programa, o objetivo é analisar um software existente para compreender sua estrutura, seus componentes e seu comportamento.

Por exemplo, imagine um aplicativo que consegue realizar buscas extremamente rápidas em milhares de documentos armazenados localmente.

Mesmo sem conhecer sua implementação original, seria possível investigar como ele organiza os dados, quais funções participam da busca e quais mecanismos podem explicar seu desempenho.

Esse tipo de investigação pode envolver análise de arquivos executáveis, instruções de máquina, bibliotecas, chamadas de funções e comportamento durante a execução.

Tradicionalmente, essas atividades exigem conhecimento especializado e ferramentas como Ghidra, IDA e Hopper.

O REA introduz agentes de IA nesse processo, permitindo que parte da investigação seja conduzida por meio de perguntas e tarefas descritas em linguagem natural.

O que o REA faz de diferente?

O REA funciona como uma camada de integração entre agentes de inteligência artificial e ferramentas especializadas em análise de software.

Isso significa que ele não substitui os mecanismos tradicionais de engenharia reversa. Sua principal contribuição está na maneira como essas ferramentas podem ser utilizadas.

Em um processo convencional, o desenvolvedor precisa explorar manualmente estruturas internas do programa, localizar funções relevantes, analisar referências e interpretar os resultados.

Com o REA, a investigação pode começar com uma instrução como:

Investigue como este aplicativo realiza buscas locais. Identifique as funções envolvidas, explique o fluxo de processamento e apresente as evidências encontradas.

A partir dessa solicitação, um agente compatível pode utilizar as ferramentas disponibilizadas pelo REA para examinar o programa e organizar as descobertas.

O processo pode ser compreendido em três etapas principais.

1. Decompilar

O agente utiliza ferramentas capazes de analisar o software compilado e recuperar representações que auxiliam na compreensão de seu funcionamento, como pseudocódigo, instruções de máquina e referências entre funções.

2. Compreender

Com os elementos identificados, o agente investiga como diferentes partes do programa se relacionam e quais estruturas podem explicar determinado comportamento.

3. Recriar

As informações obtidas podem orientar o desenvolvimento de uma implementação própria, reproduzindo determinado comportamento ou funcionalidade em outro projeto, respeitando as permissões e restrições aplicáveis.

O aspecto interessante é que a investigação pode ser iterativa. Se uma hipótese não for sustentada pelas evidências encontradas, o agente pode continuar explorando outras partes do software.

Como a inteligência artificial consegue acessar essas ferramentas?

O REA utiliza o Model Context Protocol (MCP), um protocolo que permite conectar aplicações de inteligência artificial a ferramentas e fontes externas de informação.

Na prática, o MCP funciona como uma interface de comunicação.

Um agente de IA pode solicitar uma operação, como localizar determinada função em um executável, e receber os resultados produzidos por uma ferramenta especializada.

O REA disponibiliza essa integração por meio de um servidor MCP, permitindo que agentes compatíveis coordenem diferentes operações de engenharia reversa.

Isso possibilita um fluxo em que o desenvolvedor descreve o problema, o agente seleciona as ferramentas disponíveis, executa a investigação e interpreta os resultados.

Entre os ambientes que podem ser integrados estão Claude Code, Cursor, Codex e Gemini CLI, dependendo da configuração e compatibilidade do cliente.

A inteligência artificial atua principalmente na coordenação da investigação e na interpretação das evidências, enquanto as ferramentas especializadas realizam as operações técnicas.

Que tipos de software podem ser investigados?

O REA oferece suporte a diferentes categorias de aplicações e artefatos digitais.

Entre elas estão:

  • Aplicações desktop: investigação de executáveis, bibliotecas e componentes internos.
  • JavaScript e Electron: análise de módulos, dependências, arquivos e mecanismos de comunicação.
  • Aplicações .NET: inspeção de assemblies, metadados e instruções intermediárias.
  • Aplicativos Android: análise de arquivos APK, classes e métodos.
  • Sites e aplicações web: inspeção de estrutura, scripts, recursos e comportamento de rede.
  • Outros formatos: determinados arquivos WebAssembly, firmware e artefatos binários.

A profundidade da investigação depende do formato analisado e das ferramentas instaladas.

Por exemplo, uma aplicação JavaScript pode permitir uma inspeção estática relativamente direta. Já um executável nativo pode exigir um mecanismo de decompilação como Ghidra, Hopper ou IDA.

Portanto, o nome Reverse Engineer Anything representa a proposta de abrangência do projeto, mas não significa que qualquer software possa ser integralmente compreendido ou reconstruído.

Um exemplo prático de utilização

Imagine que você esteja desenvolvendo um sistema de gerenciamento de documentos e queira implementar uma funcionalidade de pesquisa offline semelhante à encontrada em outro aplicativo.

Você conhece o comportamento desejado, mas desconhece como ele foi implementado.

Em uma abordagem tradicional, seria necessário estudar possíveis algoritmos, examinar bibliotecas, investigar a estrutura do aplicativo e testar diferentes hipóteses.

Com o REA, você poderia orientar um agente de IA a investigar o mecanismo de busca de um aplicativo que esteja autorizado a analisar.

O agente poderia procurar funções relacionadas à indexação, identificar estruturas utilizadas no processamento das consultas e examinar como os resultados são organizados.

A partir dessas descobertas, seria possível elaborar uma implementação própria, adaptada às necessidades do seu sistema.

Esse exemplo é ilustrativo. O sucesso da investigação dependeria das informações disponíveis no aplicativo e da capacidade das ferramentas utilizadas.

O valor do REA está em transformar uma investigação que normalmente envolve diversas operações manuais em um fluxo coordenado por agentes.

O ponto mais importante está nas evidências

Existe uma diferença significativa entre pedir a uma IA que explique como determinado software provavelmente funciona e permitir que ela examine elementos reais desse programa.

No primeiro caso, a resposta pode ser construída com base em padrões conhecidos, conhecimentos gerais e inferências do modelo.

No segundo, o agente pode fundamentar suas explicações em funções identificadas, referências, instruções, metadados e outros elementos extraídos do software.

Essa distinção é particularmente importante porque modelos de linguagem podem produzir respostas aparentemente coerentes mesmo quando dispõem de informações insuficientes.

O REA procura reduzir esse problema ao incorporar evidências ao processo de investigação.

Entretanto, encontrar evidências não garante automaticamente que toda interpretação esteja correta. A análise ainda pode conter erros, ambiguidades ou conclusões incompletas.

A validação técnica continua sendo necessária.

O REA consegue copiar qualquer aplicativo?

É importante diferenciar compreender o funcionamento de um software de recuperar integralmente sua implementação original.

Quando um programa é compilado, parte das informações presentes no código-fonte pode ser transformada ou perdida. Nomes de variáveis, comentários e determinadas estruturas de alto nível podem deixar de existir na forma original.

Ferramentas de decompilação tentam produzir representações compreensíveis a partir do código executável, mas essas representações não equivalem necessariamente ao código-fonte utilizado pelos desenvolvedores.

O REA trabalha com essas informações para ajudar agentes a investigar o comportamento do programa.

Consequentemente, ele pode auxiliar na compreensão e na recriação de determinadas funcionalidades, mas isso não significa recuperar automaticamente um projeto completo.

Também existem questões relacionadas a direitos autorais, licenças e autorização para análise.

A engenharia reversa possui aplicações legítimas em pesquisa, segurança, interoperabilidade, manutenção e preservação de software. Ainda assim, a possibilidade técnica de investigar ou reproduzir um comportamento não representa, por si só, autorização jurídica para fazê-lo.

Como experimentar o REA?

O projeto é open source e disponibiliza uma ferramenta de linha de comando que pode ser integrada a agentes compatíveis com MCP.

Para iniciar a configuração, é necessário possuir uma instalação compatível do Node.js e do npm.

O comando apresentado pelo projeto é:

npx rea-agents setup

O npx permite executar pacotes disponibilizados pelo ecossistema Node.js. Nesse caso, ele inicia o assistente de configuração do REA.

Durante o processo, o usuário pode selecionar os agentes que deseja integrar e revisar as alterações propostas.

Após a configuração, o agente precisa ser reiniciado para carregar as ferramentas disponibilizadas pelo servidor MCP.

Dependendo do tipo de aplicação que será investigada, também pode ser necessário instalar ferramentas adicionais de engenharia reversa.

O código e as instruções de utilização estão disponíveis no repositório oficial do REA no GitHub.

O que essa abordagem representa para o desenvolvimento de software?

O REA é interessante por um motivo que vai além da engenharia reversa.

Ele exemplifica uma mudança na maneira como agentes de inteligência artificial podem participar de atividades técnicas especializadas.

Em vez de depender exclusivamente das informações aprendidas durante o treinamento de um modelo, o agente passa a utilizar ferramentas capazes de examinar sistemas reais e produzir resultados verificáveis.

Essa abordagem pode ser aplicada a diferentes atividades, como investigação de falhas, manutenção de sistemas legados, análise de compatibilidade e compreensão de aplicações pouco documentadas.

O REA ainda depende de ferramentas externas, configurações adequadas e supervisão técnica. Seu desempenho também varia conforme a complexidade e as características do software investigado.

Mesmo com essas limitações, sua arquitetura apresenta uma possibilidade relevante para o desenvolvimento assistido por IA.

O avanço dos agentes de inteligência artificial não depende apenas de modelos capazes de gerar respostas melhores, mas também de sua capacidade de utilizar ferramentas, investigar problemas e fundamentar conclusões em evidências.

O REA representa uma aplicação concreta dessa abordagem em uma área tradicionalmente complexa da computação.

Compartilhar