A engenharia reversa tradicional sempre foi um trabalho manual exaustivo: analistas inspecionando instruções de máquina (assembly), navegando por tabelas de símbolos despidas (stripped binaries) e decifrando grafos de fluxo de controle (CFG).
A convergência de agentes de IA e protocolos de comunicação externa como o MCP (Model Context Protocol) está transformando esse cenário. Se antes a análise dependia de copiar e colar trechos de código em modelos genéricos, hoje ferramentas integradas permitem orquestrar investigações completas sobre arquivos compilados e softwares comerciais.
Arquitetura: Como o REA e os Agentes Operam via MCP
Projetos como o REA (Reverse Engineer Anything) ilustram essa mudança de paradigma estruturada em três camadas:
Raciocínio e Decomposição de Hipóteses: O modelo de linguagem (como Claude Code, Gemini CLI ou Cursor) define o plano de investigação a partir de perguntas em linguagem natural.
Ferramental Concreto via MCP: O protocolo MCP padroniza a comunicação entre o modelo e desmontadores clássicos (como Ghidra, radare2 ou motores de inspeção web locais), executando rotinas de forma segura na máquina local sem expor binários para nuvens externas.
Validação Baseada em Evidências: As conclusões são ancoradas em endereços de memória, chamadas de rotina e pseudocódigo gerado localmente, mitigando alucinações técnicas.
O Caso Photocraft: Engenharia Reversa Funcional e "Clean-Room"
Um exemplo emblemático dessa tendência na prática é o projeto PhotoCraft (storytold/photocraft). Trata-se de uma reimplementação open-source do Adobe Photoshop construída em Rust via abordagem de clean-room:
Engenharia Reversa Comportamental: Em vez de copiar código proprietário, o projeto analisa o comportamento observado do software-alvo (leitura e escrita do formato proprietário
.psd, estrutura de camadas, máscaras, modos de mesclagem e motores de renderização).Paridade Apoiada por IA: O projeto utiliza agentes autônomos para acelerar o mapeamento de menus, atalhos, formatos e lógica de renderização para reescrevê-los do zero em código seguro e de alta performance.
Impacto na Indústria: Casos como o PhotoCraft colocam em debate a viabilidade de modelos de software fechado baseados em segurança por obscuridade, demonstrando que interfaces e fluxos consolidados podem ser reproduzidos como ferramentas abertas quando assistidos por agentes.
Casos de Uso, Limites e Riscos
Sistemas Legados e Interoperabilidade: Resgate de regras de negócio em sistemas compilados antigos cuja documentação foi perdida, ou criação de compatibilidade entre formatos legados.
Código Legível vs. Código Original: O agente não resgata o código-fonte idêntico ao original (comentários ou nomes internos reais), mas reconstrói pseudocódigo e implementações funcionalmente equivalentes.
Segurança Operacional: O REA e analisadores afins não fornecem sandbox nativa. Executáveis desconhecidos devem ser inspecionados em máquinas virtuais para evitar execução de payloads maliciosos ou ataques de injeção indireta de instruções (prompt injection inserido em strings de binários).
Implicações Legais: A legalidade da engenharia reversa varia por jurisdição. Na União Europeia e no Brasil (Lei de Software), a descompilação costuma ser admitida para fins restritos de interoperabilidade técnica, exigindo cautela na comercialização de trabalhos derivados.
Projetos de Referência
PhotoCraft (GitHub: storytold/photocraft):
Reimplementação em Rust baseada em engenharia reversa do Adobe Photoshop, compatível com formatos PSD e atalhos de fluxo padrão.
REA - Reverse Engineer Anything (GitHub: morluto/rea):
Framework que conecta agentes de programação a ferramentas de engenharia reversa e análise de executáveis via MCP.
Ghidra MCP Server (por Laurie Wired):
Servidor MCP para a suíte Ghidra da NSA, expondo funções de descompilação e análise de símbolos diretamente para LLMs.
Análise Técnica em Vídeo (Leonardo Bissoli):
Demonstrações práticas do ecossistema REA:
https://www.youtube.com/watch?v=OQZ9XfNqR7c
Literatura Científica e Papers Relevantes
A literatura em segurança e engenharia de software vem mapeando o impacto de LLMs na descompilação e análise de binários:
Decompilação e Reconstrução de Código com LLMs:
LLM4Decompile: Decompiling Binary Code with Large Language Models (Tan et al., EMNLP 2024 / arXiv:2403.05286).
Avalia modelos abertos na reconstituição de código em C a partir de binários compilados sob diferentes níveis de otimização.
LLM-Based Two-Phase Binary Decompilation from Pseudocode to Source (Li et al., ICLR 2026).
Propõe abordagem em duas fases fundamentada em Information Bottleneck para desassociar recuperação estrutural da inferência de nomes de variáveis.
Binary Decompilation LLM with Feedback-Driven Multi-Turn Refinement (Liu et al., arXiv:2606.16162).
Utiliza aprendizado por reforço e ciclos de feedback de compilação para refinar a equivalência semântica de código recuperado.
Agentes Autônomos e Vetores de Ataque:
LLM Agent-Assisted Reverse Engineering with Quantitative Guidance (Archibald & Thijssen, arXiv:2606.06838).
Discute os desafios de delegar tarefas complexas a agentes conectados ao Ghidra via MCP, abordando a tensão entre similaridade binária estrita e legibilidade do código.
Automatically Attacking Software Reverse Engineering AI Agents (Crawford et al., arXiv:2605.30667).
Analisa técnicas de injeção indireta de prompt inseridas em strings e metadados de executáveis destinadas a enganar agentes de análise.
REBench: A Procedural, Fair-by-Construction Benchmark for LLMs on Stripped-Binary Types and Names (arXiv:2604.27319).
Benchmark voltado a medir a capacidade de modelos em recuperar tipos e identificar funções em binários desprovidos de tabelas de símbolos.