Engenharia reversa, com seu agente de codificação
Descubra como
o software funciona.
O REA oferece ao seu agente de programação as ferramentas para examinar um programa e explicar o que ele faz.
Já conhece o RE? Ir para os guias de análise
Quer ir mais fundo? Leia o blogue
Configurar REA
Copie este prompt para seu agente de programaçã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.
Primeira vez, ou ausente Node.js ou um agente de codificação? Siga o Guia de configuração passo-a-passo7
O que é engenharia reversa?
Entender como o software funciona examinando o próprio programa.
O objetivo: entender um recurso bem o suficiente para explicar, mudá-lo ou reconstruí-lo.
Por exemplo: por que a calculadora retorna 220 para 200 + 10%?
Antes do REA · Você investiga por conta própria
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.
Com o REA · Você pergunta ao seu agente
Um único prompt.
Pergunte ao seu agente com palavras simples.
Utilizar REA para inspecionar Windows Calculadora. Por que 200 + 10% dão 220?
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.
Vamos tentar dois exemplos. Altere a velocidade de um jogo, depois volte à calculadora e reconstrua o botão%.
Exemplo 01 * jogo de dinossauros de Chrome
Por que o dinossauro fica mais rápido?
- Objectivo
- Reconstrua o jogo com velocidade ajustável.
- Por que fazer engenharia reversa?
- Para reproduzir sua aceleração, precisamos a regra no jogo de corrida: quão rápido começa, quanto aumenta e quando pára.
Jogue a reconstrução
Regra Original: comece em 6, depois aumente para 13.
O REA retornou
O script realmente em execução na página. O agente lê sua função de atualização e configurações de velocidade e usa essa regra em um novo jogo.
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.
Alvo inspeccionado: edição de navegador derivada do Chromium da wayou.
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.
Abrir o laboratório de velocidadeO que cada parte faz
- 01 * REA Leia o roteiro do jogo em execuçãoDevolva o seu código e definições reais ao agente.
- 02 * o seu agenteReconstruir a regra, adicionar um controloUse a aceleração recuperada em um pequeno jogo com um controle deslizante de velocidade.
- 03 * VocêAlterar a velocidade e jogarExperimente a aceleração original e escolha o seu próprio ritmo.
Veja o script, verificações e como tentar a análise
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.
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.
Vimos porquê 200 + 10% dá 220. Agora vamos recuperar as regras tanto para + quanto para7ivi, e testá-las.
- Objectivo
- Construa uma pequena calculadora que manipule ambos + E7 corretamente.
- Por que fazer engenharia reversa?
- O mesmo botão usa regras diferentes depois de + E7X. Inspecionamos o aplicativo instalado para descobrir a qual número a porcentagem é aplicada.
Tente o cálculo
10% de 200 = 20. Então 200 + 20 = 220.
O REA retornou
Um ramo divide-se por 100. O outro também se multiplica pelo primeiro número. O agente usa ambos para recriar o botão%.
Para este exemplo, previous = 200 e current = 10.
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.
if (operation == multiply || operation == divide) {
percent = current / 100;
} else {
percent = current * previous / 100;
}
- 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
Do aplicativo instalado para um botão % funcional
-
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. -
02 * REA lê a bibliotecaRetorna o código do manipulador % A função verifica o operador e utiliza a constante
100. - 03 * o seu agente interpreta-oExplicar e reproduzir as regrasVerifique o ramo com a fonte da Microsoft e, em seguida, tente + e elimi acima.
Veja o código real e como a resposta foi verificada
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
#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
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.
Quer se aprofundar?
Diga ao seu agente o que você quer entender ou construir. Com REA, você pode trabalhar junto em qualquer coisa de Clonagem deste website para reconstruir um jogo a partir do seu executável.
Use REA para inspecionar https://reverseengineeranything.app/. Clonar este site para mim.
Sim, esta.
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.
Para as etapas de configuração e análise, escolha o seu destino:
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áquinaJavaScript & Electron
Mapeie módulos, rotas, IPC e dependências nativas de uma pasta de aplicativo ou arquivo ASAR.
Fluxos de trabalho da aplicaçãoAtividade 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 navegadorAlguma dúvida?
Leia as perguntas frequentes, fale connosco em Discord , ou abrir um problema GitHub para bugs e solicitações de recursos.
Participe da comunidade
Compartilhe investigações e obtenha ajuda de outros usuários do REA no Discord . Siga REA em X para atualizações do projeto.