---
title: REA-engenharia reversa para o seu agente de codificação
url: https://rea.tools/pt-BR/
---

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.

[Começar](https://rea.tools/get-started/)
[Veja um exemplo ↓](https://rea.tools/pt-BR/#dinosaur)

## 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.


Opções de configuração


Outras opções de instalação: [curl →](https://rea.tools/get-started/#curl-installation)

Primeira vez, ou ausente Node.js ou um agente de codificação? [Siga o Guia de configuração passo-a-passo7](https://rea.tools/get-started/)

[Criar ambientes de RL →](https://rea.tools/pt-BR/#rl-environments)

Grave um aplicativo web para treinar e testar agentes.

[Apresenta →](https://rea.tools/pt-BR/showcase/)

Investigações e demonstrações interativas.

[Blog →](https://rea.tools/pt-BR/blog/)

Métodos e notas sobre reconstrução.

## 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 ajuda seu agente a ler o código e observar o que o programa faz 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
```



01 \* que ramo?

“**0x5b? 0x5c?** Dois saltos para o mesmo lugar. Que operadores são estes?”

Procure os IDs do comando e, em seguida, rotule a ramificação.

0x5b
:   Dividir ÷

0x5c
:   Multiplicar ×

02 · O que fazem as funções chamadas?

"100 é claro. As chamadas são apenas endereços. **Qual deles divide? Que valor entra?**”

Inspecione as funções auxiliares e rastreie os valores armazenados.

0x64
:   100

…123190
:   Dividir

03 \* Qual é a regra?

"Este caminho multiplica-se pela outra entrada. Então **10% significa 10% de 200** depois de +.”

Nomeie os operandos e verifique os dois caminhos do operador.

200 × 10 / 100
**20**

![](https://rea.tools/assets/localized/pt-BR/figures/analyst-thinking.svg)

Raciocínio ilustrativo de peritos

**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 = 20`**200 + 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](https://rea.tools/pt-BR/#calculator)

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.

Velocidade 6.0
 Use a regra de aceleração recuperada

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.



Ative JavaScript para jogar. Você ainda pode ler a regra e abrir o código-fonte abaixo.

[Abrir o laboratório de velocidade](https://rea.tools/pt-BR/examples/dino-lab/)

Veja o script, verificações e como tentar a análise

Alvo inspeccionado: [edição de navegador derivada do Chromium da wayou](https://wayou.github.io/t-rex-runner/).

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ção

   Devolva o seu código e definições reais ao agente.
2. 02 \* o seu agente

   Reconstruir a regra, adicionar um controlo

   Use a aceleração recuperada em um pequeno jogo com um controle deslizante de velocidade.
3. 03 \* Você

   Alterar a velocidade e jogar

   Experimente 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](https://rea.tools/pt-BR/examples/dino-lab/) 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](https://rea.tools/pt-BR/guides/browser/#prepare) utilização [a página do dinossauro](https://wayou.github.io/t-rex-runner/). 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](https://github.com/wayou/t-rex-runner/blob/5455bfa408ec6b707c7300ff194b7390733a766d/index.js#L565-L571) ·  [Chromium autores \* licença BSD](https://rea.tools/assets/licenses/dinosaur.txt)

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.exe

   Ele lança o aplicativo Calculadora

   O código abre `ms-calculator:`. Em seguida, o agente seleciona a biblioteca do aplicativo instalado.
2. 02 \* REA lê a biblioteca

   Retorna o código do manipulador %

   A função verifica o operador e utiliza a constante `100`.
3. 03 \* o seu agente interpreta-o

   Explicar e reproduzir as regras

   Verifique 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](https://github.com/microsoft/calculator/blob/d125246a4e19842ce1332e6c7839cf0e110027d8/src/CalcManager/CEngine/scifunc.cpp#L98-L111) · [Casos de teste da Microsoft](https://github.com/microsoft/calculator/blob/d125246a4e19842ce1332e6c7839cf0e110027d8/src/CalculatorUnitTests/CalculatorManagerTest.cpp#L350-L370) · [Guia de configuração nativo](https://rea.tools/guides/native/)

## REA estudos de caso.

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

[Apresenta →](https://rea.tools/pt-BR/showcase/)

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](https://rea.tools/showcase/aegis/)

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](https://rea.tools/pt-BR/showcase/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](https://rea.tools/pt-BR/showcase/dx-ball/)

## Criar ambientes de RL

Transforme uma sessão gravada de um aplicativo web em um ambiente executável para treinar e testar agentes de IA.

Seu agente registra as requisições do navegador e as respostas do aplicativo. O REA usa esses dados para criar um ambiente local onde os agentes podem praticar tarefas sem executar o aplicativo original.

Para permitir a exclusão de pastas, o registro precisa mostrar a pasta antes da exclusão e confirmar que ela não existe mais depois.

[Guia para criar um ambiente](https://rea.tools/guides/rl-environments/) · [Veja a demonstração no X](https://x.com/reatools/status/2112574822584918075?s=20)

Configure o REA no agente e substitua a URL e as tarefas de pastas do exemplo pelas suas:

O seu agente de codificação

Use o REA para criar um ambiente de RL a partir do meu aplicativo web de teste em `http://127.0.0.1:3000`. Inclua listar, criar, renomear e excluir pastas. Pode criar e remover pastas de teste, mas não altere os dados existentes. Salve em uma pasta chamada `my-env`, verifique quais operações funcionam e diga como executar.

Prompt de exemplo. Substitua a URL e as tarefas de pastas pelas suas.

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](https://rea.tools/pt-BR/first-investigation/)

## 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](https://rea.tools/guides/native/)

### JavaScript & Electron

Acompanhe o código de um aplicativo de desktop escrito em JavaScript.

[Fluxos de trabalho da aplicação](https://rea.tools/guides/javascript/)

### 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](https://rea.tools/pt-BR/guides/browser/)

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](https://rea.tools/pt-BR/showcase/dx-ball/)

## Alguma dúvida?

[Leia as perguntas frequentes](https://rea.tools/pt-BR/faq/) para obter ajuda com a configuração e esclarecer dúvidas comuns.

[Entre no Discord](https://discord.gg/GkcryMnJDM) para receber ajuda e conversar sobre suas investigações.

Relate um erro ou solicite um recurso em [GitHub Issues](https://github.com/morluto/rea/issues/new/choose).
