Nesta página

Engenharia reversa, com seu agente de codificação

Descubra como
o software funciona.

Pergunte ao seu agente de programação sobre um aplicativo, jogo ou site. O REA fornece ferramentas para examinar o código por trás da resposta.

Configurar REA

Copie este prompt para seu agente de programação:

O seu agente de codificação

Instale o REA e conecte-o a este agente de programação usando npx rea-agents@latest setup. Mostre primeiro as alterações propostas e espere minha aprovação. Depois, verifique a instalação.

Ou execute este comando no terminal:

npx rea-agents@latest setup

Revise e aprove as alterações propostas. Depois, reinicie seu agente.

Outras opções de instalação: curl →

Primeira vez, ou ausente Node.js ou um agente de codificação? Siga o Guia de configuração passo-a-passo7

Como funciona

Engenharia reversa é entender como um software funciona examinando o próprio programa. Com o REA, seu agente pode seguir o código, explicar uma função e ajudar você a recriá-la.

  1. Pergunte sobre uma função

    Dê ao seu agente um programa ou página e uma pergunta.

  2. Examine o programa

    O REA retorna código, referências e observações durante a execução.

  3. Entenda e experimente uma mudança

    Seu agente usa as descobertas para explicar ou recriar a função.

Veja a investigação completa da Calculadora

Por que 200 + 10% resulta em 220 na Calculadora?

Siga as instruções passo a passo

Original x64 · instruções seleccionadas
0x180124945: MOV EAX, dword ptr [R13 + 0x18]
0x180124949: CMP EAX, 0x5c
0x18012494c: JZ 0x180124aba
0x180124952: CMP EAX, 0x5b
0x180124955: JZ 0x180124aba
0x18012495b: MOV EDX, 0x64
0x180124960: LEA RCX, [RSP + 0x160]
0x180124968: CALL 0x180122650
0x18012496e: LEA RDX, [R13 + 0x160]
0x180124975: LEA RCX, [RSP + 0x78]
0x18012497a: CALL 0x180109720
0x18012497f: MOV RSI, RAX
0x180124982: MOV qword ptr [RSP + 0x28], RAX
0x180124987: LEA RDX, [RSP + 0x160]
0x18012498f: MOV RCX, RAX
0x180124992: CALL 0x180123190
; … value-copy instructions omitted …
0x180124a14: MOV RDX, RDI
0x180124a17: LEA RCX, [RSP + 0xf8]
0x180124a1f: CALL 0x180109720
0x180124a24: LEA R8, [RSP + 0x30]
0x180124a29: MOV RDX, RAX
0x180124a2c: LEA RCX, [RSP + 0xb8]
0x180124a34: CALL 0x180123c10

Descodifica as instruções, segue as chamadas de função e reconstrói o cálculo.

Faça a mesma pergunta ao seu agente

Exemplo de alerta * Calculadora

Utilizar REA para inspecionar Windows Calculadora. Por que 200 + 10% dão 220?

Exemplo de resposta * com base nas conclusões

Depois de+, o botão % leva uma percentagem do primeiro número.

10% of 200 = 20200 + 20 = 220
O REA fornece
Instruções do manipulador, código descompilado e chamadas.
Seu agente explica
Qual ramificação se aplica, o que calcula e como reconstruí-la.
Conjunto selecionado da DLL da calculadora instalada. Os pensamentos e as respostas ilustram as conclusões. Continue com o exemplo da calculadora

Vamos experimentar dois exemplos: mudar a velocidade de um jogo e recriar o botão % da Calculadora.

Exemplo 01 * jogo de dinossauros de Chrome

Por que o dinossauro fica mais rápido?

O jogo fica mais rápido enquanto você corre. Para recriá-lo com um controle de velocidade, primeiro precisamos descobrir como a velocidade muda.

1. Pergunte sobre a velocidade

Pergunta de exemplo · Jogo do dinossauro

Use REA para inspecionar este jogo de dinossauros. Por que fica mais rápido? Mostre a regra da velocidade, a seguir construa uma versão pequena com uma velocidade ajustável.

2. Encontre a regra de velocidade

O REA permite ao agente ler o código do jogo em execução. A velocidade começa em 6 e aumenta um pouco a cada atualização enquanto estiver abaixo de 13.

3. Jogue o resultado

Recriamos essa regra no minijogo abaixo e acrescentamos um controle de velocidade. Pressione Jogar e escolha sua velocidade.

6 → 10 → 13

Regra Original: comece em 6, depois aumente para 13.

Mova o controle deslizante para definir sua própria velocidade. Espaço ou salto limpa um cacto.
Abrir o laboratório de velocidade
Veja o script, verificações e como tentar a análise

Alvo inspeccionado: edição de navegador derivada do Chromium da wayou.

REA * carregado index.js * linhas seleccionadas
if (this.currentSpeed < this.config.MAX_SPEED) {
  this.currentSpeed += this.config.ACCELERATION;
}

Comece às 6. Adicionar 0.001 cada atualização sem colisão, enquanto a velocidade é inferior 13.

O que cada parte faz

  1. 01 * REA Leia o roteiro do jogo em execuçãoDevolva o seu código e definições reais ao agente.
  2. 02 * o seu agenteReconstruir a regra, adicionar um controloUse a aceleração recuperada em um pequeno jogo com um controle deslizante de velocidade.
  3. 03 * VocêAlterar a velocidade e jogarExperimente a aceleração original e escolha o seu próprio ritmo.

O REA inspecionou a edição do navegador HTTP por meio de uma conexão de depuração local e retornou index.js, incluindo a sua fonte e digestão.

Definições seleccionadas a partir do script inspeccionado
ACCELERATION: 0.001,
MAX_SPEED: 13,
SPEED: 6

Chamamos a função de atualização do jogo original em uma verificação controlada do navegador, com obstáculos e programação automática desativados. Após 4.000 atualizações, a velocidade era de 10,0; após 10.000, era de 13,0, arredondado para um decimal.

O novo mini-jogo mantém essa regra de velocidade. Seu código de desenho, salto e colisão é uma pequena implementação de ensino. Abrir o laboratório para ver o novo código e executar a mesma verificação de velocidade.

Para inspecionar o alvo você mesmo, siga o etapas de conexão do navegador utilização a página do dinossauro. Forneça ao seu agente o URL da página e o ponto de extremidade de depuração local e, em seguida, copie o prompt acima.

Código de velocidade inspeccionado · Chromium autores * licença BSD

Exemplo 02 * Calculadora Windows

Recrie o botão % da calculadora.

O botão % faz coisas diferentes depois de + e ×. Vamos encontrar as duas regras e experimentá-las em uma pequena calculadora.

1. Pergunte sobre o botão %

Pergunta de exemplo · Calculadora

Use REA para inspecionar o botão % da calculadora Windows. Recupere as regras depois de + E7X, em seguida, construir uma pequena calculadora que usa ambos.

2. Encontre as duas regras

O REA ajuda o agente a ler o código do botão %. Ele aplica duas regras diferentes:

Com +
Pegue 10% do primeiro número.10% of 200 = 20 → 200 + 20 = 220
Com a ×
Transformar 10% em 0,1.200 × 0.1 = 20

3. Experimente o botão %

Recriamos as duas regras abaixo. Escolha + ou ×, pressione % e depois =.

200 + 20

10% de 200 = 20. Então 200 + 20 = 220.

Ilustração interactiva da regra das percentagens inspeccionadas.
Veja o código real e como a resposta foi verificada

Para este exemplo, previous = 200 e current = 10.

Resumo legível do manipulador %
if (operation == multiply || operation == divide) {
  percent = current / 100;
} else {
  percent = current * previous / 100;
}

Do aplicativo instalado para um botão % funcional

  1. 01 · REA lê calc.exeEle lança o aplicativo CalculadoraO código abre ms-calculator:. Em seguida, o agente seleciona a biblioteca do aplicativo instalado.
  2. 02 * REA lê a bibliotecaRetorna o código do manipulador % A função verifica o operador e utiliza a constante 100.
  3. 03 * o seu agente interpreta-oExplicar e reproduzir as regrasVerifique o ramo com a fonte da Microsoft e, em seguida, tente + e elimi acima.
REA * instruções originais selecionadas
0x180124945: MOV EAX, dword ptr [R13 + 0x18]
0x180124949: CMP EAX, 0x5c
0x18012494c: JZ 0x180124aba
0x180124952: CMP EAX, 0x5b
0x180124955: JZ 0x180124aba
0x18012495b: MOV EDX, 0x64
IDs do operador * fonte da Microsoft
#define IDC_MUL 92      // 0x5c
#define IDC_DIV 91      // 0x5b
#define IDC_PERCENT 118 // 0x76

0x64 = 100

Inspeccionado com REA 4.1.0: Calculadora Windows 11.2508.4.0, x64. O resumo legível utiliza nomes da fonte pública da Microsoft para explicar o ramo recuperado.

Percentagem de execução · Casos de teste da Microsoft · Guia de configuração nativo

REA estudos de caso.

Explore uma função de um aplicativo ou jogo publicado, com código e resultados verificados.

Apresenta →

Android * análise APK

Como um autenticador gera um código de login

Siga o código de acesso de seis dígitos do Aegis em seu APK publicado. Depois mova o relógio da demonstração para ver por que ele muda a cada 30 segundos.

Leia o estudo de caso do Android

Electron * rastreio de características

Como Notion copia texto e HTML

Siga o JavaScript empacotado do Notion até a área de transferência do sistema e veja como uma cópia preserva dados ricos dos blocos.

Leia o estudo de caso Notion

Nativo * Reconstrução

DX-Ball cálculo da posição sonora esquerda/direita

Recupere como a posição da bola se transforma em som à esquerda ou à direita em um jogo de Windows de 1996.

Leia o estudo de caso DX-Ball

Sua primeira investigação

Tente REA em um pequeno aplicativo.

Baixe nosso exemplo de notas, Rastreie sua exportação CSV e verifique uma entrada alterada.

Experimente o exemplo guiado

Escolha seu alvo.

Estes guias cobrem a configuração e uma primeira investigação para cada tipo de software.

Programas de código de máquina

Inspecione funções, strings, referências e relações de chamada de função em executáveis e bibliotecas.

Análise do Guia de programas de código de máquina

JavaScript & Electron

Mapeie módulos, rotas, IPC e dependências nativas de uma pasta de aplicativo ou arquivo ASAR.

Fluxos de trabalho da aplicação

Atividade do navegador e do tempo de execução

Capture a atividade selecionada do navegador ou do processo e compare os resultados entre as execuções.

Guia de observação do navegador
Experimente um projeto maior
Exemplo de pedido * Sítio Web

Use REA para inspecionar https://rea.tools/. Clonar este site para mim.

Sim, esta.

Exemplo de prompt * reconstrução do jogo

Use REA para reconstruir este jogo a partir do seu executável. Recupere a lógica de jogo em C e teste-a contra o original.

Ver estudo de caso DX-Ball

Alguma dúvida?

Top