{"content_id":"mqxmod7ehz","slug":"rea-ai-reverse-engineering-performance-and-limits","locale":"pt","schema_type":"TechArticle","category":"knowledge_base","category_name":"Base de Conhecimento","title":"REA: engenharia reversa com IA e limites de desempenho","summary":"O REA é uma ferramenta que conecta agentes de IA a ferramentas de engenharia reversa para investigar o comportamento de softwares. Distingue o alcance da verificação dos casos publicados das limitações da análise de servidores e explica questões de segurança, direitos autorais e reprodutibilidade dos resultados da análise.","sponsorship_disclosure":null,"affiliate_disclosure":null,"commerce_disclosure":null,"author":{"name":"injoys","url":"https://injoys.com/ko/about"},"key_points":["O REA permite que agentes de IA acionem ferramentas de engenharia reversa por meio do MCP.","Entender o funcionamento de um arquivo executável não é o mesmo que recuperar o código-fonte original.","O caso divulgado de DX-Ball apresenta o resultado da verificação de uma função específica e não significa que a reconstrução do jogo inteiro foi concluída.","Código de servidor ou modelos privados que não estejam incluídos no app não podem ser obtidos apenas pela análise do app.","Os resultados da análise devem registrar as evidências e o que não foi verificado, além de passar por uma comparação de comportamento com o original."],"content_markdown":"REA conecta a AI a ferramentas de engenharia reversa para investigar o funcionamento de aplicativos. Os casos públicos mostram a análise de funções específicas e a possibilidade de reimplementá-las. É difícil tratá-los como prova do fim da indústria de software ou da reprodução integral de serviços.\n\nOs números de validação do DX-Ball se baseiam no registro do caso oficial de 7 de outubro de 2026.\n\n## O que é REA\n\nREA é a sigla de Reverse Engineer Anything. É um projeto que conecta ferramentas de análise de software a agentes de AI. Não é um único modelo de AI que realiza todas as análises por conta própria.\n\nEngenharia reversa é o trabalho de rastrear a estrutura e o funcionamento de um software pronto. O objetivo é identificar o que é necessário para explicar suas funções ou garantir compatibilidade.\n\nCompilação é o processo de transformar o código escrito por uma pessoa em uma forma executável. Nesse processo, comentários e algumas informações sobre nomes podem desaparecer. A otimização também pode alterar a aparência de funções e expressões.\n\nIsso não significa que todos os aplicativos contenham apenas código de máquina sem nomes. Algumas distribuições incluem código JavaScript ou informações de depuração. Por isso, o método de análise depende do formato dos arquivos e das informações que ainda estão disponíveis.\n\n| Termo | Explicação simples | Cuidado ao interpretar o resultado |\n| --- | --- | --- |\n| Desmontagem | Representa código de máquina como instruções de assembly | A finalidade das instruções exige interpretação adicional |\n| Descompilação | Representa código executável em uma forma semelhante ao código-fonte | Não há garantia de que seja igual ao código-fonte original |\n| Análise estática | Examina arquivos sem executar o programa | É preciso distingui-la dos caminhos realmente executados |\n| Análise dinâmica | Observa o comportamento durante a execução do programa | O comportamento fora das condições observadas não foi verificado |\n| Reimplementação | Escreve um novo código com o comportamento identificado | Exige validação por comparação com o original |\n\n## Como a AI se conecta ao Ghidra\n\nREA encaminha as solicitações de análise do agente às ferramentas por meio do MCP. MCP é um padrão de conexão para a troca de solicitações e resultados entre a AI e ferramentas externas. Ghidra é uma ferramenta de engenharia reversa usada para examinar arquivos executáveis.\n\nO README oficial também apresenta integrações com Hopper e IDA, além do Ghidra. A análise estática de JavaScript não precisa de um mecanismo de análise nativo. Portanto, descrever as funções do REA apenas como automação do Ghidra reduz seu alcance.\n\nA análise costuma seguir esta sequência.\n\n1. Definir o aplicativo e a função a investigar.\n2. Localizar trechos relacionados por meio de strings ou chamadas de função.\n3. Interpretar o comportamento acompanhando as instruções e o fluxo de dados.\n4. Conferir as evidências que faltam com chamadas adicionais às ferramentas.\n5. Comparar o resultado reimplementado com o comportamento do original.\n\nO Ghidra já dispõe de recursos de análise automática. REA permite que o agente dê continuidade às solicitações de análise. A precisão real depende do alvo, do mecanismo de análise, do modelo e da forma de validação.\n\n## Alcance da análise conforme as condições\n\nO que pode ser verificado com REA depende dos arquivos e do ambiente de execução acessíveis. Um aplicativo local pode conter código que se comunica com um servidor. Isso não significa que ele contenha também a implementação interna do servidor.\n\n| Alvo da análise | O que pode ser verificado | O que não pode ser afirmado apenas com a análise |\n| --- | --- | --- |\n| Arquivo executável local | Expressões de cálculo, strings, relações entre chamadas de função | Todos os comentários originais e toda a intenção do projeto |\n| Aplicativo JavaScript·Electron | Estrutura dos módulos, ligação entre a interface e o processamento interno | Lógica de processamento presente apenas no servidor |\n| Página web e registros de comunicação | Scripts baixados, solicitações e respostas observadas | Todo o código-fonte do servidor e todo o banco de dados |\n| Arquivo de modelo incluído localmente | Estrutura e informações do arquivo acessível | Modelo privado usado apenas no servidor |\n| Função observada durante a execução | Comportamento com aquelas entradas e naquele ambiente | Comportamento com todas as entradas e em todas as situações de falha |\n\nReimplementar um serviço exige atender também a requisitos além das funções observadas. Permissões de contas e tratamento de erros são exemplos. Mesmo que a interface funcione de forma semelhante, não se pode concluir que todo o serviço seja igual.\n\n## Alcance da validação do experimento da calculadora de 8 minutos e 41 segundos\n\nO número de 8 minutos e 41 segundos vem de uma alegação apresentada em uma demonstração cujo registro original não foi confirmado. O número de chamadas à ferramenta informado junto com ela é 17. Também não foi possível confirmar de forma independente a alegação de que foram encontradas 4 regras de cálculo.\n\nÉ preciso conferir as condições do teste no vídeo original e no registro de execução. O tempo necessário varia conforme o modelo e o tamanho do programa. Um único sucesso não basta para avaliar a velocidade ou a precisão da análise em geral.\n\nNa análise de uma calculadora, ler as fórmulas não encerra a validação. A ordem de aplicação de descontos e cupons pode mudar o resultado. O descarte da parte fracionária na divisão de inteiros também precisa ser verificado separadamente.\n\n- A ordem de aplicação de descontos e cupons\n- O valor usado como base para calcular os impostos\n- O ponto em que os cálculos intermediários são arredondados ou têm a parte fracionária descartada\n- A saída nos valores-limite em que as condições mudam\n- O registro da comparação usando as mesmas entradas no original e no código reimplementado\n\nPara demonstrar uma análise rápida, também são necessários registros além da resposta bem-sucedida. Execuções que falharam e o número de novas tentativas afetam a comparação. Com as evidências verificadas até agora, é difícil fazer uma avaliação geral de que a ferramenta supera uma pessoa.\n\n## Resultados confirmados nos casos públicos\n\nOs casos oficiais mostram o caminho da área de transferência do Notion e uma função de cálculo do DX-Ball. Ambos delimitam as funções investigadas. Também é preciso considerar que os registros foram publicados pelo projeto REA.\n\n| Caso | Trabalho confirmado na documentação pública | O que não deve ser extrapolado |\n| --- | --- | --- |\n| Notion Desktop 7.6.1 | Rastreamento do caminho entre uma chamada interna do aplicativo e a área de transferência do sistema | Reprodução de todo o serviço Notion |\n| DX-Ball 1.07 | Reimplementação da função que converte a posição na tela em valores de áudio dos canais esquerdo e direito | Conclusão da restauração de todo o jogo |\n| Aplicativo alternativo leve ao Razer Synapse | Nesta verificação, não foi encontrado um registro específico de validação com o original | Afirmar que é um resultado do REA oficialmente validado |\n| Editor de slides relacionado ao Claude | Nesta verificação, o alvo e o alcance da reimplementação não foram confirmados | Interpretá-lo como restauração do modelo privado do Claude |\n\nO caso do Notion rastreia como uma chamada da interface passa pela comunicação interna. Ao final, ela se conecta à função de escrita na área de transferência do Electron. É um caso que explica o caminho de processamento de uma função específica.\n\nNo caso do DX-Ball, foram verificados no arquivo executável os dados de entrada da função e as constantes usadas nos cálculos. Foram feitos **3,205 testes** de comparação dessa função. Após considerar o tratamento de realocação examinado, 63 bytes do resultado compilado coincidiram.\n\nEsse registro sustenta a reimplementação de uma função específica. A documentação oficial informa que a restauração executável do jogo inteiro ainda está em andamento. É preciso distinguir a validação de algumas funções da conclusão do produto inteiro.\n\n## O que os marcadores de observação e inferência garantem\n\nOs marcadores de evidência servem para distinguir a origem das conclusões. A documentação do REA diferencia observações, inferências e informações não verificadas. Isso não significa que todas as ferramentas usem os mesmos quatro rótulos.\n\nOs documentos oficiais apresentam estados e formas de expressar o grau de confiança que variam conforme o tipo de análise. Ao lê-los, pode ser útil separar os significados como na tabela abaixo. A classificação da tabela serve para facilitar o entendimento.\n\n| Categoria | Significado | O que examinar |\n| --- | --- | --- |\n| Observação | Verificado diretamente em um arquivo ou no resultado de uma execução | Versão do alvo e localização da evidência |\n| Conclusão derivada | Conclusão calculada a partir de valores e relações observados | Cálculo e premissas |\n| Estimativa | Interpretação que precisa de confirmação adicional | Possibilidade de outras explicações |\n| Não verificado | Parte para a qual não foi possível obter evidências | Alcance da investigação e motivo da falta de confirmação |\n\nO arquivo oficial DISCLAIMER.md explicita os limites dos resultados da análise.\n\n\u003e A descompilação, a reconstrução, as heurísticas e a análise com auxílio de AI podem ser incompletas ou incorretas.\n\u003e\n\u003e Fonte: REA DISCLAIMER.md\n\nIsso significa que a descompilação e a análise por AI podem ser incompletas ou estar erradas. Um marcador de observação não elimina a possibilidade de erro da ferramenta. O valor dos marcadores de evidência está em indicar onde fazer uma nova verificação.\n\n## Erros comuns\n\nO equívoco mais comum é considerar validado um resultado que pode ser explicado. Um código fácil de ler pode se comportar de maneira diferente do original. Os caminhos não investigados precisam continuar identificados separadamente.\n\n| Equívoco | Interpretação mais precisa |\n| --- | --- |\n| A descompilação recupera o código-fonte original | Muitas vezes, ela produz uma representação semelhante ao código-fonte |\n| O código contém um caminho, portanto ele foi executado | Uma ligação identificada por análise estática é diferente de uma execução observada |\n| A função não foi encontrada, portanto não existe | O alcance da investigação ou o suporte da ferramenta pode ter sido insuficiente |\n| A ferramenta terminou com sucesso, portanto a análise está completa | Mesmo um resultado bem-sucedido pode deixar itens sem verificação |\n| O resultado apresenta evidências, portanto não há alucinação | É preciso examinar tanto as evidências quanto sua interpretação |\n\nA documentação da CLI do REA também distingue a conclusão bem-sucedida de uma tarefa da completude da análise. Mesmo após o término da tarefa, algumas evidências ou perguntas podem continuar sem solução. É preciso verificar as limitações do resultado, não apenas a mensagem de conclusão.\n\n## Registros que permitem validar novamente os resultados da análise\n\nUma análise reproduzível precisa registrar também as condições em que as conclusões foram obtidas. O código pode mudar com uma atualização, mesmo que o aplicativo mantenha o mesmo nome. Anotar apenas o endereço de uma função dificulta encontrá-la em outra versão.\n\nOs registros de Evidence do REA preservam as informações de identificação do alvo e a localização das evidências. Os snapshots permitem reutilizar resultados de análises quando as condições correspondem. Isso não significa que o resultado salvo tenha sido validado também para a versão mais recente.\n\nPara manter um registro de validação, siga esta sequência.\n\n1. Registre a versão e o hash do arquivo analisado.\n2. Registre as versões do REA e do mecanismo de análise.\n3. Associe cada conclusão a uma localização no arquivo ou a um endereço de função.\n4. Guarde as entradas e saídas do original e do código reimplementado.\n5. Anote separadamente as condições que não foi possível investigar e os testes que falharam.\n\nUm hash é um valor de identificação usado para comparar se os arquivos são iguais. Registrá-lo permite rastrear a qual distribuição a explicação se refere. Também permite distinguir o alcance dos resultados quando a AI os citar mais tarde.\n\n## Análise local e envio de dados para fora do ambiente\n\nDizer que a análise é local não significa que nenhuma parte do trabalho seja enviada para fora do ambiente. Segundo o README oficial, a análise do alvo pelo REA ocorre localmente. O agente de AI conectado recebe os resultados das ferramentas.\n\nSe um modelo externo for usado, os resultados da análise poderão ser enviados ao fornecedor do modelo. A política de dados aplicável depende do serviço conectado. No caso de aplicativos da empresa ou arquivos privados, verifique primeiro o caminho de transmissão dos dados.\n\n- O alcance do código e das strings enviados ao modelo\n- Informações de contas e tokens de acesso incluídos nos logs\n- Dados pessoais presentes nos registros de comunicação\n- Local de armazenamento dos resultados da análise e política de retenção\n\nTambém é preciso distinguir o exame estático de arquivos da execução de um programa. A observação durante a execução pode afetar arquivos ou o estado de uma conta. Trate programas não confiáveis em um ambiente de testes isolado.\n\n## Segurança e direitos que desenvolvedores devem verificar\n\nInformações secretas incluídas em um aplicativo podem ser expostas por engenharia reversa. A OWASP descreve o problema de incluir informações sensíveis em pacotes distribuídos. Esse risco já existia antes do REA.\n\nEm especial, chaves secretas de API com permissões de servidor não devem ser incluídas no aplicativo. A OWASP orienta manter valores secretos estáticos no servidor. A ofuscação pode dificultar a extração, mas não garante o sigilo.\n\n- Verifique as senhas e chaves secretas incluídas nos arquivos distribuídos.\n- Limite as permissões e a validade dos tokens de autenticação.\n- Valide no servidor as permissões de quem faz a solicitação.\n- Substitua as credenciais expostas.\n\nO que é permitido em engenharia reversa varia conforme o país, os contratos e o trabalho realizado. Não se pode afirmar que qualquer atividade seja permitida por ter como objetivo a compatibilidade. A análise e a redistribuição de código e imagens devem ser examinadas separadamente.\n\nA licença MIT do REA não concede direitos sobre o software analisado. Os princípios de uso do projeto podem ser consultados no arquivo oficial DISCLAIMER.md. Confira o que é efetivamente permitido na legislação aplicável e nos termos do software analisado.\n\n## Que mudanças podem ocorrer na indústria de software\n\nREA mostra a possibilidade de reduzir o custo do trabalho de entender funções existentes. Essa é uma perspectiva que pode ser extraída dos casos públicos de análise. Não há números confirmados sobre a dimensão da redução de custos em toda a indústria.\n\nConhecer a implementação de algumas funções é diferente de ter capacidade para operar um serviço. A qualidade dos dados e a resposta a falhas não são reproduzidas apenas pela análise de arquivos executáveis. Por isso, é preciso avaliar separadamente a facilidade de imitar funções e a competitividade de um negócio.\n\n| Elemento do negócio | Implicação extraída do alcance da análise do REA |\n| --- | --- |\n| Uma função interna do aplicativo | Possibilidade de reduzir o esforço para investigar a implementação e reimplementá-la |\n| Processamento exclusivo do servidor | Difícil de obter apenas com a análise do cliente |\n| Dados e permissões de acesso | Precisam ser obtidos e administrados independentemente da compreensão do código |\n| Estabilidade e confiança na operação | Testes, manutenção e resposta a falhas continuam necessários |\n| Preservação de software existente | Possibilidade de restaurar pequenas funções primeiro, mantendo registros das evidências |\n\nOs casos públicos do REA mostram uma mudança na maneira de compreender software. Não são prova do desaparecimento da demanda por desenvolvimento. Mesmo após reimplementar uma função, ainda é necessário validar a compatibilidade e a qualidade da operação.","content_html":"\u003cp\u003eREA conecta a AI a ferramentas de engenharia reversa para investigar o funcionamento de aplicativos. Os casos públicos mostram a análise de funções específicas e a possibilidade de reimplementá-las. É difícil tratá-los como prova do fim da indústria de software ou da reprodução integral de serviços.\u003c/p\u003e\n\u003cp\u003eOs números de validação do DX-Ball se baseiam no registro do caso oficial de 7 de outubro de 2026.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#o-que-%C3%A9-rea\" class=\"anchor\" id=\"o-que-é-rea\"\u003e\u003c/a\u003eO que é REA\u003c/h2\u003e\n\u003cp\u003eREA é a sigla de Reverse Engineer Anything. É um projeto que conecta ferramentas de análise de software a agentes de AI. Não é um único modelo de AI que realiza todas as análises por conta própria.\u003c/p\u003e\n\u003cp\u003eEngenharia reversa é o trabalho de rastrear a estrutura e o funcionamento de um software pronto. O objetivo é identificar o que é necessário para explicar suas funções ou garantir compatibilidade.\u003c/p\u003e\n\u003cp\u003eCompilação é o processo de transformar o código escrito por uma pessoa em uma forma executável. Nesse processo, comentários e algumas informações sobre nomes podem desaparecer. A otimização também pode alterar a aparência de funções e expressões.\u003c/p\u003e\n\u003cp\u003eIsso não significa que todos os aplicativos contenham apenas código de máquina sem nomes. Algumas distribuições incluem código JavaScript ou informações de depuração. Por isso, o método de análise depende do formato dos arquivos e das informações que ainda estão disponíveis.\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eTermo\u003c/th\u003e\n\u003cth\u003eExplicação simples\u003c/th\u003e\n\u003cth\u003eCuidado ao interpretar o resultado\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Termo\"\u003eDesmontagem\u003c/td\u003e\n\u003ctd data-label=\"Explicação simples\"\u003eRepresenta código de máquina como instruções de assembly\u003c/td\u003e\n\u003ctd data-label=\"Cuidado ao interpretar o resultado\"\u003eA finalidade das instruções exige interpretação adicional\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Termo\"\u003eDescompilação\u003c/td\u003e\n\u003ctd data-label=\"Explicação simples\"\u003eRepresenta código executável em uma forma semelhante ao código-fonte\u003c/td\u003e\n\u003ctd data-label=\"Cuidado ao interpretar o resultado\"\u003eNão há garantia de que seja igual ao código-fonte original\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Termo\"\u003eAnálise estática\u003c/td\u003e\n\u003ctd data-label=\"Explicação simples\"\u003eExamina arquivos sem executar o programa\u003c/td\u003e\n\u003ctd data-label=\"Cuidado ao interpretar o resultado\"\u003eÉ preciso distingui-la dos caminhos realmente executados\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Termo\"\u003eAnálise dinâmica\u003c/td\u003e\n\u003ctd data-label=\"Explicação simples\"\u003eObserva o comportamento durante a execução do programa\u003c/td\u003e\n\u003ctd data-label=\"Cuidado ao interpretar o resultado\"\u003eO comportamento fora das condições observadas não foi verificado\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Termo\"\u003eReimplementação\u003c/td\u003e\n\u003ctd data-label=\"Explicação simples\"\u003eEscreve um novo código com o comportamento identificado\u003c/td\u003e\n\u003ctd data-label=\"Cuidado ao interpretar o resultado\"\u003eExige validação por comparação com o original\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003ch2\u003e\n\u003ca href=\"#como-a-ai-se-conecta-ao-ghidra\" class=\"anchor\" id=\"como-a-ai-se-conecta-ao-ghidra\"\u003e\u003c/a\u003eComo a AI se conecta ao Ghidra\u003c/h2\u003e\n\u003cp\u003eREA encaminha as solicitações de análise do agente às ferramentas por meio do MCP. MCP é um padrão de conexão para a troca de solicitações e resultados entre a AI e ferramentas externas. Ghidra é uma ferramenta de engenharia reversa usada para examinar arquivos executáveis.\u003c/p\u003e\n\u003cp\u003eO README oficial também apresenta integrações com Hopper e IDA, além do Ghidra. A análise estática de JavaScript não precisa de um mecanismo de análise nativo. Portanto, descrever as funções do REA apenas como automação do Ghidra reduz seu alcance.\u003c/p\u003e\n\u003cp\u003eA análise costuma seguir esta sequência.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eDefinir o aplicativo e a função a investigar.\u003c/li\u003e\n\u003cli\u003eLocalizar trechos relacionados por meio de strings ou chamadas de função.\u003c/li\u003e\n\u003cli\u003eInterpretar o comportamento acompanhando as instruções e o fluxo de dados.\u003c/li\u003e\n\u003cli\u003eConferir as evidências que faltam com chamadas adicionais às ferramentas.\u003c/li\u003e\n\u003cli\u003eComparar o resultado reimplementado com o comportamento do original.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eO Ghidra já dispõe de recursos de análise automática. REA permite que o agente dê continuidade às solicitações de análise. A precisão real depende do alvo, do mecanismo de análise, do modelo e da forma de validação.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#alcance-da-an%C3%A1lise-conforme-as-condi%C3%A7%C3%B5es\" class=\"anchor\" id=\"alcance-da-análise-conforme-as-condições\"\u003e\u003c/a\u003eAlcance da análise conforme as condições\u003c/h2\u003e\n\u003cp\u003eO que pode ser verificado com REA depende dos arquivos e do ambiente de execução acessíveis. Um aplicativo local pode conter código que se comunica com um servidor. Isso não significa que ele contenha também a implementação interna do servidor.\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eAlvo da análise\u003c/th\u003e\n\u003cth\u003eO que pode ser verificado\u003c/th\u003e\n\u003cth\u003eO que não pode ser afirmado apenas com a análise\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Alvo da análise\"\u003eArquivo executável local\u003c/td\u003e\n\u003ctd data-label=\"O que pode ser verificado\"\u003eExpressões de cálculo, strings, relações entre chamadas de função\u003c/td\u003e\n\u003ctd data-label=\"O que não pode ser afirmado apenas com a análise\"\u003eTodos os comentários originais e toda a intenção do projeto\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Alvo da análise\"\u003eAplicativo JavaScript·Electron\u003c/td\u003e\n\u003ctd data-label=\"O que pode ser verificado\"\u003eEstrutura dos módulos, ligação entre a interface e o processamento interno\u003c/td\u003e\n\u003ctd data-label=\"O que não pode ser afirmado apenas com a análise\"\u003eLógica de processamento presente apenas no servidor\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Alvo da análise\"\u003ePágina web e registros de comunicação\u003c/td\u003e\n\u003ctd data-label=\"O que pode ser verificado\"\u003eScripts baixados, solicitações e respostas observadas\u003c/td\u003e\n\u003ctd data-label=\"O que não pode ser afirmado apenas com a análise\"\u003eTodo o código-fonte do servidor e todo o banco de dados\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Alvo da análise\"\u003eArquivo de modelo incluído localmente\u003c/td\u003e\n\u003ctd data-label=\"O que pode ser verificado\"\u003eEstrutura e informações do arquivo acessível\u003c/td\u003e\n\u003ctd data-label=\"O que não pode ser afirmado apenas com a análise\"\u003eModelo privado usado apenas no servidor\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Alvo da análise\"\u003eFunção observada durante a execução\u003c/td\u003e\n\u003ctd data-label=\"O que pode ser verificado\"\u003eComportamento com aquelas entradas e naquele ambiente\u003c/td\u003e\n\u003ctd data-label=\"O que não pode ser afirmado apenas com a análise\"\u003eComportamento com todas as entradas e em todas as situações de falha\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eReimplementar um serviço exige atender também a requisitos além das funções observadas. Permissões de contas e tratamento de erros são exemplos. Mesmo que a interface funcione de forma semelhante, não se pode concluir que todo o serviço seja igual.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#alcance-da-valida%C3%A7%C3%A3o-do-experimento-da-calculadora-de-8-minutos-e-41-segundos\" class=\"anchor\" id=\"alcance-da-validação-do-experimento-da-calculadora-de-8-minutos-e-41-segundos\"\u003e\u003c/a\u003eAlcance da validação do experimento da calculadora de 8 minutos e 41 segundos\u003c/h2\u003e\n\u003cp\u003eO número de 8 minutos e 41 segundos vem de uma alegação apresentada em uma demonstração cujo registro original não foi confirmado. O número de chamadas à ferramenta informado junto com ela é 17. Também não foi possível confirmar de forma independente a alegação de que foram encontradas 4 regras de cálculo.\u003c/p\u003e\n\u003cp\u003eÉ preciso conferir as condições do teste no vídeo original e no registro de execução. O tempo necessário varia conforme o modelo e o tamanho do programa. Um único sucesso não basta para avaliar a velocidade ou a precisão da análise em geral.\u003c/p\u003e\n\u003cp\u003eNa análise de uma calculadora, ler as fórmulas não encerra a validação. A ordem de aplicação de descontos e cupons pode mudar o resultado. O descarte da parte fracionária na divisão de inteiros também precisa ser verificado separadamente.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA ordem de aplicação de descontos e cupons\u003c/li\u003e\n\u003cli\u003eO valor usado como base para calcular os impostos\u003c/li\u003e\n\u003cli\u003eO ponto em que os cálculos intermediários são arredondados ou têm a parte fracionária descartada\u003c/li\u003e\n\u003cli\u003eA saída nos valores-limite em que as condições mudam\u003c/li\u003e\n\u003cli\u003eO registro da comparação usando as mesmas entradas no original e no código reimplementado\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePara demonstrar uma análise rápida, também são necessários registros além da resposta bem-sucedida. Execuções que falharam e o número de novas tentativas afetam a comparação. Com as evidências verificadas até agora, é difícil fazer uma avaliação geral de que a ferramenta supera uma pessoa.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#resultados-confirmados-nos-casos-p%C3%BAblicos\" class=\"anchor\" id=\"resultados-confirmados-nos-casos-públicos\"\u003e\u003c/a\u003eResultados confirmados nos casos públicos\u003c/h2\u003e\n\u003cp\u003eOs casos oficiais mostram o caminho da área de transferência do Notion e uma função de cálculo do DX-Ball. Ambos delimitam as funções investigadas. Também é preciso considerar que os registros foram publicados pelo projeto REA.\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCaso\u003c/th\u003e\n\u003cth\u003eTrabalho confirmado na documentação pública\u003c/th\u003e\n\u003cth\u003eO que não deve ser extrapolado\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Caso\"\u003eNotion Desktop 7.6.1\u003c/td\u003e\n\u003ctd data-label=\"Trabalho confirmado na documentação pública\"\u003eRastreamento do caminho entre uma chamada interna do aplicativo e a área de transferência do sistema\u003c/td\u003e\n\u003ctd data-label=\"O que não deve ser extrapolado\"\u003eReprodução de todo o serviço Notion\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Caso\"\u003eDX-Ball 1.07\u003c/td\u003e\n\u003ctd data-label=\"Trabalho confirmado na documentação pública\"\u003eReimplementação da função que converte a posição na tela em valores de áudio dos canais esquerdo e direito\u003c/td\u003e\n\u003ctd data-label=\"O que não deve ser extrapolado\"\u003eConclusão da restauração de todo o jogo\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Caso\"\u003eAplicativo alternativo leve ao Razer Synapse\u003c/td\u003e\n\u003ctd data-label=\"Trabalho confirmado na documentação pública\"\u003eNesta verificação, não foi encontrado um registro específico de validação com o original\u003c/td\u003e\n\u003ctd data-label=\"O que não deve ser extrapolado\"\u003eAfirmar que é um resultado do REA oficialmente validado\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Caso\"\u003eEditor de slides relacionado ao Claude\u003c/td\u003e\n\u003ctd data-label=\"Trabalho confirmado na documentação pública\"\u003eNesta verificação, o alvo e o alcance da reimplementação não foram confirmados\u003c/td\u003e\n\u003ctd data-label=\"O que não deve ser extrapolado\"\u003eInterpretá-lo como restauração do modelo privado do Claude\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eO caso do Notion rastreia como uma chamada da interface passa pela comunicação interna. Ao final, ela se conecta à função de escrita na área de transferência do Electron. É um caso que explica o caminho de processamento de uma função específica.\u003c/p\u003e\n\u003cp\u003eNo caso do DX-Ball, foram verificados no arquivo executável os dados de entrada da função e as constantes usadas nos cálculos. Foram feitos \u003cstrong\u003e3,205 testes\u003c/strong\u003e de comparação dessa função. Após considerar o tratamento de realocação examinado, 63 bytes do resultado compilado coincidiram.\u003c/p\u003e\n\u003cp\u003eEsse registro sustenta a reimplementação de uma função específica. A documentação oficial informa que a restauração executável do jogo inteiro ainda está em andamento. É preciso distinguir a validação de algumas funções da conclusão do produto inteiro.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#o-que-os-marcadores-de-observa%C3%A7%C3%A3o-e-infer%C3%AAncia-garantem\" class=\"anchor\" id=\"o-que-os-marcadores-de-observação-e-inferência-garantem\"\u003e\u003c/a\u003eO que os marcadores de observação e inferência garantem\u003c/h2\u003e\n\u003cp\u003eOs marcadores de evidência servem para distinguir a origem das conclusões. A documentação do REA diferencia observações, inferências e informações não verificadas. Isso não significa que todas as ferramentas usem os mesmos quatro rótulos.\u003c/p\u003e\n\u003cp\u003eOs documentos oficiais apresentam estados e formas de expressar o grau de confiança que variam conforme o tipo de análise. Ao lê-los, pode ser útil separar os significados como na tabela abaixo. A classificação da tabela serve para facilitar o entendimento.\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCategoria\u003c/th\u003e\n\u003cth\u003eSignificado\u003c/th\u003e\n\u003cth\u003eO que examinar\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Categoria\"\u003eObservação\u003c/td\u003e\n\u003ctd data-label=\"Significado\"\u003eVerificado diretamente em um arquivo ou no resultado de uma execução\u003c/td\u003e\n\u003ctd data-label=\"O que examinar\"\u003eVersão do alvo e localização da evidência\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Categoria\"\u003eConclusão derivada\u003c/td\u003e\n\u003ctd data-label=\"Significado\"\u003eConclusão calculada a partir de valores e relações observados\u003c/td\u003e\n\u003ctd data-label=\"O que examinar\"\u003eCálculo e premissas\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Categoria\"\u003eEstimativa\u003c/td\u003e\n\u003ctd data-label=\"Significado\"\u003eInterpretação que precisa de confirmação adicional\u003c/td\u003e\n\u003ctd data-label=\"O que examinar\"\u003ePossibilidade de outras explicações\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Categoria\"\u003eNão verificado\u003c/td\u003e\n\u003ctd data-label=\"Significado\"\u003eParte para a qual não foi possível obter evidências\u003c/td\u003e\n\u003ctd data-label=\"O que examinar\"\u003eAlcance da investigação e motivo da falta de confirmação\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eO arquivo oficial DISCLAIMER.md explicita os limites dos resultados da análise.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eA descompilação, a reconstrução, as heurísticas e a análise com auxílio de AI podem ser incompletas ou incorretas.\u003c/p\u003e\n\u003cp\u003eFonte: REA DISCLAIMER.md\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eIsso significa que a descompilação e a análise por AI podem ser incompletas ou estar erradas. Um marcador de observação não elimina a possibilidade de erro da ferramenta. O valor dos marcadores de evidência está em indicar onde fazer uma nova verificação.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#erros-comuns\" class=\"anchor\" id=\"erros-comuns\"\u003e\u003c/a\u003eErros comuns\u003c/h2\u003e\n\u003cp\u003eO equívoco mais comum é considerar validado um resultado que pode ser explicado. Um código fácil de ler pode se comportar de maneira diferente do original. Os caminhos não investigados precisam continuar identificados separadamente.\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eEquívoco\u003c/th\u003e\n\u003cth\u003eInterpretação mais precisa\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Equívoco\"\u003eA descompilação recupera o código-fonte original\u003c/td\u003e\n\u003ctd data-label=\"Interpretação mais precisa\"\u003eMuitas vezes, ela produz uma representação semelhante ao código-fonte\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Equívoco\"\u003eO código contém um caminho, portanto ele foi executado\u003c/td\u003e\n\u003ctd data-label=\"Interpretação mais precisa\"\u003eUma ligação identificada por análise estática é diferente de uma execução observada\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Equívoco\"\u003eA função não foi encontrada, portanto não existe\u003c/td\u003e\n\u003ctd data-label=\"Interpretação mais precisa\"\u003eO alcance da investigação ou o suporte da ferramenta pode ter sido insuficiente\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Equívoco\"\u003eA ferramenta terminou com sucesso, portanto a análise está completa\u003c/td\u003e\n\u003ctd data-label=\"Interpretação mais precisa\"\u003eMesmo um resultado bem-sucedido pode deixar itens sem verificação\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Equívoco\"\u003eO resultado apresenta evidências, portanto não há alucinação\u003c/td\u003e\n\u003ctd data-label=\"Interpretação mais precisa\"\u003eÉ preciso examinar tanto as evidências quanto sua interpretação\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eA documentação da CLI do REA também distingue a conclusão bem-sucedida de uma tarefa da completude da análise. Mesmo após o término da tarefa, algumas evidências ou perguntas podem continuar sem solução. É preciso verificar as limitações do resultado, não apenas a mensagem de conclusão.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#registros-que-permitem-validar-novamente-os-resultados-da-an%C3%A1lise\" class=\"anchor\" id=\"registros-que-permitem-validar-novamente-os-resultados-da-análise\"\u003e\u003c/a\u003eRegistros que permitem validar novamente os resultados da análise\u003c/h2\u003e\n\u003cp\u003eUma análise reproduzível precisa registrar também as condições em que as conclusões foram obtidas. O código pode mudar com uma atualização, mesmo que o aplicativo mantenha o mesmo nome. Anotar apenas o endereço de uma função dificulta encontrá-la em outra versão.\u003c/p\u003e\n\u003cp\u003eOs registros de Evidence do REA preservam as informações de identificação do alvo e a localização das evidências. Os snapshots permitem reutilizar resultados de análises quando as condições correspondem. Isso não significa que o resultado salvo tenha sido validado também para a versão mais recente.\u003c/p\u003e\n\u003cp\u003ePara manter um registro de validação, siga esta sequência.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eRegistre a versão e o hash do arquivo analisado.\u003c/li\u003e\n\u003cli\u003eRegistre as versões do REA e do mecanismo de análise.\u003c/li\u003e\n\u003cli\u003eAssocie cada conclusão a uma localização no arquivo ou a um endereço de função.\u003c/li\u003e\n\u003cli\u003eGuarde as entradas e saídas do original e do código reimplementado.\u003c/li\u003e\n\u003cli\u003eAnote separadamente as condições que não foi possível investigar e os testes que falharam.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eUm hash é um valor de identificação usado para comparar se os arquivos são iguais. Registrá-lo permite rastrear a qual distribuição a explicação se refere. Também permite distinguir o alcance dos resultados quando a AI os citar mais tarde.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#an%C3%A1lise-local-e-envio-de-dados-para-fora-do-ambiente\" class=\"anchor\" id=\"análise-local-e-envio-de-dados-para-fora-do-ambiente\"\u003e\u003c/a\u003eAnálise local e envio de dados para fora do ambiente\u003c/h2\u003e\n\u003cp\u003eDizer que a análise é local não significa que nenhuma parte do trabalho seja enviada para fora do ambiente. Segundo o README oficial, a análise do alvo pelo REA ocorre localmente. O agente de AI conectado recebe os resultados das ferramentas.\u003c/p\u003e\n\u003cp\u003eSe um modelo externo for usado, os resultados da análise poderão ser enviados ao fornecedor do modelo. A política de dados aplicável depende do serviço conectado. No caso de aplicativos da empresa ou arquivos privados, verifique primeiro o caminho de transmissão dos dados.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eO alcance do código e das strings enviados ao modelo\u003c/li\u003e\n\u003cli\u003eInformações de contas e tokens de acesso incluídos nos logs\u003c/li\u003e\n\u003cli\u003eDados pessoais presentes nos registros de comunicação\u003c/li\u003e\n\u003cli\u003eLocal de armazenamento dos resultados da análise e política de retenção\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eTambém é preciso distinguir o exame estático de arquivos da execução de um programa. A observação durante a execução pode afetar arquivos ou o estado de uma conta. Trate programas não confiáveis em um ambiente de testes isolado.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#seguran%C3%A7a-e-direitos-que-desenvolvedores-devem-verificar\" class=\"anchor\" id=\"segurança-e-direitos-que-desenvolvedores-devem-verificar\"\u003e\u003c/a\u003eSegurança e direitos que desenvolvedores devem verificar\u003c/h2\u003e\n\u003cp\u003eInformações secretas incluídas em um aplicativo podem ser expostas por engenharia reversa. A OWASP descreve o problema de incluir informações sensíveis em pacotes distribuídos. Esse risco já existia antes do REA.\u003c/p\u003e\n\u003cp\u003eEm especial, chaves secretas de API com permissões de servidor não devem ser incluídas no aplicativo. A OWASP orienta manter valores secretos estáticos no servidor. A ofuscação pode dificultar a extração, mas não garante o sigilo.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVerifique as senhas e chaves secretas incluídas nos arquivos distribuídos.\u003c/li\u003e\n\u003cli\u003eLimite as permissões e a validade dos tokens de autenticação.\u003c/li\u003e\n\u003cli\u003eValide no servidor as permissões de quem faz a solicitação.\u003c/li\u003e\n\u003cli\u003eSubstitua as credenciais expostas.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eO que é permitido em engenharia reversa varia conforme o país, os contratos e o trabalho realizado. Não se pode afirmar que qualquer atividade seja permitida por ter como objetivo a compatibilidade. A análise e a redistribuição de código e imagens devem ser examinadas separadamente.\u003c/p\u003e\n\u003cp\u003eA licença MIT do REA não concede direitos sobre o software analisado. Os princípios de uso do projeto podem ser consultados no arquivo oficial DISCLAIMER.md. Confira o que é efetivamente permitido na legislação aplicável e nos termos do software analisado.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#que-mudan%C3%A7as-podem-ocorrer-na-ind%C3%BAstria-de-software\" class=\"anchor\" id=\"que-mudanças-podem-ocorrer-na-indústria-de-software\"\u003e\u003c/a\u003eQue mudanças podem ocorrer na indústria de software\u003c/h2\u003e\n\u003cp\u003eREA mostra a possibilidade de reduzir o custo do trabalho de entender funções existentes. Essa é uma perspectiva que pode ser extraída dos casos públicos de análise. Não há números confirmados sobre a dimensão da redução de custos em toda a indústria.\u003c/p\u003e\n\u003cp\u003eConhecer a implementação de algumas funções é diferente de ter capacidade para operar um serviço. A qualidade dos dados e a resposta a falhas não são reproduzidas apenas pela análise de arquivos executáveis. Por isso, é preciso avaliar separadamente a facilidade de imitar funções e a competitividade de um negócio.\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eElemento do negócio\u003c/th\u003e\n\u003cth\u003eImplicação extraída do alcance da análise do REA\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Elemento do negócio\"\u003eUma função interna do aplicativo\u003c/td\u003e\n\u003ctd data-label=\"Implicação extraída do alcance da análise do REA\"\u003ePossibilidade de reduzir o esforço para investigar a implementação e reimplementá-la\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Elemento do negócio\"\u003eProcessamento exclusivo do servidor\u003c/td\u003e\n\u003ctd data-label=\"Implicação extraída do alcance da análise do REA\"\u003eDifícil de obter apenas com a análise do cliente\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Elemento do negócio\"\u003eDados e permissões de acesso\u003c/td\u003e\n\u003ctd data-label=\"Implicação extraída do alcance da análise do REA\"\u003ePrecisam ser obtidos e administrados independentemente da compreensão do código\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Elemento do negócio\"\u003eEstabilidade e confiança na operação\u003c/td\u003e\n\u003ctd data-label=\"Implicação extraída do alcance da análise do REA\"\u003eTestes, manutenção e resposta a falhas continuam necessários\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Elemento do negócio\"\u003ePreservação de software existente\u003c/td\u003e\n\u003ctd data-label=\"Implicação extraída do alcance da análise do REA\"\u003ePossibilidade de restaurar pequenas funções primeiro, mantendo registros das evidências\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eOs casos públicos do REA mostram uma mudança na maneira de compreender software. Não são prova do desaparecimento da demanda por desenvolvimento. Mesmo após reimplementar uma função, ainda é necessário validar a compatibilidade e a qualidade da operação.\u003c/p\u003e\n","tags":["Agentes de IA","Desenvolvimento de IA","Estratégia tecnológica","Ferramentas de desenvolvimento"],"faqs":[{"question":"REA é um modelo de IA próprio?","answer":"REA é um projeto que conecta agentes de IA a ferramentas de análise de software. As solicitações de análise e os resultados podem ser transmitidos por meio do MCP."},{"question":"É obrigatório ter o Ghidra para usar REA?","answer":"Depende do que será analisado. A análise nativa utiliza mecanismos como o Ghidra. A análise estática de JavaScript é possível sem um mecanismo de análise nativa."},{"question":"REA restaura o código-fonte original exatamente como era?","answer":"Não há garantia de que o código restaurado seja idêntico ao original. Comentários e informações sobre nomes podem se perder durante a compilação. O resultado da descompilação deve ser entendido como uma representação que ajuda a compreender o funcionamento."},{"question":"Ao analisar um aplicativo, também é possível obter o código do servidor?","answer":"O código do servidor que não está incluído no aplicativo não pode ser obtido apenas pela análise do aplicativo. É possível observar as solicitações e respostas da comunicação. Esses registros não revelam toda a implementação interna do servidor."},{"question":"É possível analisar outros programas em 8 minutos e 41 segundos?","answer":"Não há fundamento para generalizar dessa forma. Também não foi possível verificar o registro original daquela demonstração com a calculadora. O tempo necessário varia conforme o tamanho do alvo, o modelo e o ambiente de análise."},{"question":"REA elimina as alucinações da IA?","answer":"As alucinações não desaparecem. Indicar as evidências e o que ainda não foi confirmado facilita a revisão das conclusões. Os resultados das ferramentas e a interpretação da IA devem ser verificados separadamente."},{"question":"O caso do DX-Ball representa a restauração do jogo inteiro?","answer":"Os números citados são resultados da validação de uma função específica de cálculo de som. O caso oficial descreve 3,205 testes comparativos. Ele informa que a restauração executável do jogo inteiro ainda está em andamento."},{"question":"Toda a análise feita pelo REA ocorre offline?","answer":"A análise do alvo pelo REA é feita localmente. O agente que recebe os resultados das ferramentas pode usar um modelo externo. O escopo completo da transmissão de dados deve ser verificado no serviço conectado."},{"question":"Posso incluir em um produto comercial código analisado com REA?","answer":"O simples fato de obter os resultados da análise não confere direitos de uso. É preciso verificar os direitos e a licença do software analisado. Verifique também a legislação aplicável e as condições de uso da ferramenta de análise."},{"question":"Se REA é de código aberto, a análise também é gratuita?","answer":"A licença do código do REA e o custo total do trabalho são coisas distintas. O modelo conectado ou as ferramentas comerciais de análise podem gerar custos. Consulte os preços e as condições de uso de cada fornecedor para verificar os valores."},{"question":"O que devo registrar para citar os resultados da análise?","answer":"Registre a versão do alvo, o hash do arquivo e a localização das evidências. A versão da ferramenta de análise e os resultados dos testes comparativos também são necessários. Registrar as condições não verificadas ajuda a delimitar o alcance das conclusões."}],"sources":[{"url":"https://github.com/morluto/rea","title":"README do repositório oficial do REA: como funciona, o que é compatível, análise local e política de dados dos modelos","type":"source"},{"url":"https://ghidra.re/ghidra_docs/GhidraClass/Beginner/Introduction_to_Ghidra_Student_Guide.html","title":"Documentação oficial de treinamento do Ghidra: Introduction to Ghidra","type":"source"},{"url":"https://rea.tools/showcase/notion/","title":"Caso oficial do REA: análise do fluxo da área de transferência do Electron no Notion","type":"source"},{"url":"https://rea.tools/showcase/dx-ball/","title":"Caso oficial do REA: reimplementação do cálculo da posição do som no DX-Ball e validação comparativa","type":"data_point"},{"url":"https://github.com/morluto/rea/blob/main/docs/tool-design.md","title":"REA Tool Design: distinção entre observação, derivação, inferência e limitações","type":"source"},{"url":"https://github.com/morluto/rea/blob/main/docs/javascript-application-graph.md","title":"REA JavaScript Application Graph: evidências, estado, grau de confiança e localização do alvo","type":"source"},{"url":"https://github.com/morluto/rea/blob/main/docs/javascript-application-workflows.md","title":"REA JavaScript Application Workflows: distinção entre relações estáticas e verificação durante a execução","type":"source"},{"url":"https://raw.githubusercontent.com/morluto/rea/main/docs/cli.md","title":"REA CLI and Evidence: preservação dos registros, snapshots e status de saída","type":"source"},{"url":"https://raw.githubusercontent.com/morluto/rea/main/DISCLAIMER.md","title":"REA Disclaimer: limitações da análise, autorização de uso e direitos sobre os resultados","type":"source"},{"url":"https://mas.owasp.org/MASWE-0004/","title":"OWASP MASWE-0004: informações sensíveis incluídas no pacote do aplicativo e formas de lidar com elas","type":"source"}],"images":[{"id":1947,"url":"https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mjk5NzksInB1ciI6ImJsb2JfaWQifX0=--2b1213d9736d5cae1ff35ed8e5e7db570784612e/ai-ab7036b9.webp","is_representative":true,"generation_method":"ai_photo","license":"ai_generated","mime_type":"image/webp","width":1536,"height":1024,"translations":{"ko":{"alt":"노트북 옆에서 공과 패들 테스트 화면이 뜬 태블릿 두 대를 비교하는 개발자","caption":"특정 함수의 동작이 일치해도 게임 전체가 복원됐다는 뜻은 아닙니다.","description":null},"en":{"alt":"A developer compares ball-and-paddle test screens on two tablets beside a laptop.","caption":"Matching the behavior of one function does not mean the entire game has been restored.","description":null},"ja":{"alt":"ノートパソコンの横で、ボールとパドルのテスト画面を表示した2台のタブレットを見比べる開発者","caption":"特定の関数の動作が一致しても、ゲーム全体を復元できたとは限りません。","description":null},"es":{"alt":"Un desarrollador compara dos tabletas con pruebas de pelota y paleta junto a un portátil.","caption":"Que coincida el comportamiento de una función no significa que se haya reconstruido todo el juego.","description":null},"id":{"alt":"Pengembang membandingkan dua tablet dengan uji bola dan pemukul di samping laptop.","caption":"Kecocokan perilaku satu fungsi tidak berarti seluruh gim telah berhasil dipulihkan.","description":null},"pt":{"alt":"Um desenvolvedor compara duas telas de teste de bola e raquete em tablets ao lado de um notebook.","caption":"A correspondência no comportamento de uma função não significa que o jogo inteiro foi reconstruído.","description":null},"zh-hant":{"alt":"開發者在筆電旁比較兩台平板上的球與擋板測試畫面。","caption":"特定函式的行為一致，不代表整個遊戲已經還原。","description":null},"de":{"alt":"Ein Entwickler vergleicht Ball-und-Schläger-Tests auf zwei Tablets neben einem Laptop.","caption":"Stimmt das Verhalten einer Funktion überein, ist damit nicht das ganze Spiel rekonstruiert.","description":null}}},{"id":1948,"url":"https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mjk5ODUsInB1ciI6ImJsb2JfaWQifX0=--1f2adeb39e8cbbe1342eb9e3c6b1d619bea6e20f/ai-ccb48b79.webp","is_representative":false,"generation_method":"ai_semi","license":"ai_generated","mime_type":"image/webp","width":1536,"height":1024,"translations":{"ko":{"alt":"짙은 회색 스웨터를 입은 엔지니어가 소형 컴퓨터에서 파란색 네트워크 케이블을 뽑고 있다.","caption":"신뢰할 수 없는 앱을 분석할 때는 보안 위험을 먼저 통제해야 합니다.","description":null},"en":{"alt":"An engineer in a dark gray sweater disconnects a blue network cable from a compact computer.","caption":"Security risks should be controlled before analyzing an untrusted app.","description":null},"ja":{"alt":"濃い灰色のセーターを着た技術者が、小型コンピューターから青いネットワークケーブルを抜いている。","caption":"信頼できないアプリを分析する前に、セキュリティ上のリスクを抑える必要があります。","description":null},"es":{"alt":"Un ingeniero con un suéter gris oscuro desconecta un cable de red azul de un ordenador compacto.","caption":"Antes de analizar una aplicación no confiable, hay que controlar los riesgos de seguridad.","description":null},"id":{"alt":"Seorang teknisi bersweter abu-abu gelap mencabut kabel jaringan biru dari komputer kecil.","caption":"Risiko keamanan perlu dikendalikan sebelum menganalisis aplikasi yang tidak tepercaya.","description":null},"pt":{"alt":"Um engenheiro de suéter cinza-escuro desconecta um cabo de rede azul de um computador compacto.","caption":"É preciso controlar os riscos de segurança antes de analisar um aplicativo não confiável.","description":null},"zh-hant":{"alt":"身穿深灰色毛衣的工程師正從小型電腦拔出藍色網路線。","caption":"分析不受信任的應用程式前，應先控管安全風險。","description":null},"de":{"alt":"Ein Ingenieur im dunkelgrauen Pullover zieht ein blaues Netzwerkkabel aus einem kompakten Computer.","caption":"Vor der Analyse einer nicht vertrauenswürdigen App sollten Sicherheitsrisiken begrenzt werden.","description":null}}}],"published_at":"2026-10-19T05:55:51+09:00","updated_at":"2026-10-19T05:55:51+09:00","license":"cc_by","translation_status":"reviewed","available_locales":["ko","en","ja","es"],"data_locales":["ko","en","ja","es","id","pt","zh-hant","de"],"url":"https://injoys.com/en/articles/rea-ai-reverse-engineering-performance-and-limits"}