---
title: REA-Reverse Engineering per il tuo agente di codifica
url: https://rea.tools/it/
---

Reverse engineering, con il tuo agente di codifica

# Scopri come funziona il software.

Chiedi al tuo agente di programmazione qualcosa su un'app, un gioco o un sito web. REA gli dà gli strumenti per esaminare il codice dietro la risposta.

[Inizia](https://rea.tools/get-started/)
[Guarda un esempio ↓](https://rea.tools/it/#dinosaur)

## Impostare REA

Copia questo prompt nel tuo agente di programmazione:

Il tuo agente di codifica

Installa REA e collegalo a questo agente di programmazione usando npx rea-agents@latest setup. Mostrami prima le modifiche previste e attendi la mia approvazione. Poi verifica l’installazione.

Oppure esegui questo comando nel terminale:

`npx rea-agents@latest setup`

Controlla e approva le modifiche previste, poi riavvia il tuo agente.


Opzioni di configurazione


Altre opzioni di installazione: [curl →](https://rea.tools/get-started/#curl-installation)

Prima volta, o mancante Node.js o un agente di codifica? [Seguire la guida di installazione passo-passo →](https://rea.tools/get-started/)

[Creare ambienti RL →](https://rea.tools/it/#rl-environments)

Registra un’app web per addestrare e testare agenti.

[Vetrina →](https://rea.tools/it/showcase/)

Indagini e demo interattive.

[Blog →](https://rea.tools/it/blog/)

Metodi e appunti sulla ricostruzione.

## Come funziona

Il reverse engineering significa capire come funziona un software esaminando il programma stesso. Con REA, il tuo agente può seguire il codice, spiegare una funzione e aiutarti a ricrearla.

1. ### Chiedi di una funzione

   Dai al tuo agente un programma o una pagina e una domanda.
2. ### Esamina il programma

   REA aiuta il tuo agente a leggere il codice e a osservare cosa fa il programma durante l’esecuzione.
3. ### Capisci, poi prova una modifica

   Il tuo agente usa i risultati per spiegare o ricreare la funzione.

Guarda l'indagine completa della Calcolatrice

Perché 200 + 10% dà 220 nella Calcolatrice?

### Segui le istruzioni passo dopo passo

Originale x64 \* istruzioni selezionate 

```
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 \* Quale ramo ·

“**0x5b? 0x5c?** Due salti nello stesso posto. Quali operatori sono questi?”

Cerca gli ID del comando, quindi etichetta il ramo.

0x5b
:   Dividere ÷

0x5c
:   Moltiplicare ×

02 · Che cosa fanno le funzioni chiamate?

"100 è chiaro. Le chiamate sono solo indirizzi. **Quale divide? Quale valore entra?**”

Ispezionare le funzioni di supporto e tracciare i valori memorizzati.

0x64
:   100

…123190
:   Dividere

03 \* Qual è la regola ·

"Questo percorso si moltiplica per l'altro input. Cosi **10% significa 10% di 200** dopo +.”

Assegnare un nome agli operandi e controllare entrambi i percorsi operatore.

200 × 10 / 100
**20**

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

Ragionamento illustrativo esperto

**Si decodificano le istruzioni, si seguono le chiamate di funzione e si ricostruisce il calcolo.**

Fai la stessa domanda al tuo agente

Esempio prompt \* Calcolatrice

Utilizzare REA ispezionare Windows Calcolatore. Perché 200 + 10% dà 220?

Esempio di risposta \* in base ai risultati

Dopo +, il pulsante % prende **percentuale del primo numero.**

`10% of 200 = 20`**200 + 20 = 220**

REA fornisce
:   Istruzioni del gestore, codice decompilato e chiamate.

Il tuo agente spiega
:   Quale ramo si applica, cosa calcola e come ricostruirlo.

Assembly selezionato dalla DLL Calcolatrice installata. I pensieri e le risposte illustrano i risultati. [Continuare con l'esempio Calcolatrice ↓](https://rea.tools/it/#calculator)

Proviamo due esempi: cambiare la velocità di un gioco e ricreare il pulsante % della Calcolatrice.

Esempio 01 \* Gioco di dinosauri di Chrome

## Perché il dinosauro diventa più veloce?

Il gioco accelera mentre corri. Per ricrearlo con un controllo della velocità, dobbiamo prima capire come cambia la velocità.

### 1. Chiedi della velocità

Domanda di esempio · Gioco del dinosauro

Usa REA per ispezionare questo gioco di dinosauri. Perché diventa più veloce? Mostra la regola della velocità, quindi costruisci una versione piccola con una velocità regolabile.

### 2. Trova la regola della velocità

REA permette all'agente di leggere il codice del gioco in esecuzione. La velocità parte da 6 e aumenta un po' a ogni aggiornamento finché è inferiore a 13.

### 3. Gioca con il risultato

Abbiamo ricreato questa regola nel minigioco qui sotto e aggiunto un cursore della velocità. Avvia il gioco, poi scegli la tua velocità.

Velocità 6.0
 Utilizzare la regola di accelerazione recuperata

Regola originale: inizia da 6, quindi aumenta verso 13.

Spostare il cursore per impostare la propria velocità. Spazio o salto cancella un cactus.



Attiva JavaScript per giocare. Puoi comunque leggere la regola e aprire il codice sorgente qui sotto.

[Apri lo speed lab](https://rea.tools/it/examples/dino-lab/)

Vedi lo script, i controlli e come provare l'analisi

Obiettivo ispezionato: [edizione del browser derivata da Chromium di wayou](https://wayou.github.io/t-rex-runner/).

REA \* caricato index.js \* linee selezionate

```
if (this.currentSpeed < this.config.MAX_SPEED) {
  this.currentSpeed += this.config.ACCELERATION;
}
```

Inizia alle 6. Aggiungere 0.001 ogni aggiornamento senza una collisione, mentre la velocità è inferiore 13.

Cosa fa ogni parte

1. 01 \* REA

   Leggi lo script del gioco in esecuzione

   Restituisce il codice e le impostazioni effettivi all'agente.
2. 02 \* Il tuo agente

   Ricostruire la regola, aggiungere un controllo

   Usa l'accelerazione recuperata in un piccolo gioco con un cursore di velocità.
3. 03 \* Tu

   Cambiare la velocità e giocare

   Prova l'accelerazione originale, quindi scegli il tuo ritmo.

REA ispezionato l'edizione del browser HTTP tramite una connessione di debug locale e restituito il caricato `index.js`, compresa la sua fonte e digest.

Impostazioni selezionate dallo script ispezionato

```
ACCELERATION: 0.001,
MAX_SPEED: 13,
SPEED: 6
```

Abbiamo chiamato la funzione di aggiornamento del gioco originale in un controllo controllato del browser, con ostacoli e programmazione automatica disabilitati. Dopo 4.000 aggiornamenti, la velocità era 10.0; dopo 10.000, era 13.0, arrotondato a un decimale.

Il nuovo mini-gioco mantiene quella regola di velocità. Il suo codice di disegno, salto e collisione sono una piccola implementazione didattica. [Apri il laboratorio](https://rea.tools/it/examples/dino-lab/) per vedere il nuovo codice ed eseguire lo stesso controllo di velocità.

Per ispezionare il bersaglio da soli, seguire il [passaggi di connessione del browser](https://rea.tools/it/guides/browser/#prepare) servendosi [la pagina dei dinosauri](https://wayou.github.io/t-rex-runner/). Fornisci all'agente l'URL della pagina e l'endpoint di debug locale, quindi copia il prompt sopra.

[Codice di velocità ispezionato](https://github.com/wayou/t-rex-runner/blob/5455bfa408ec6b707c7300ff194b7390733a766d/index.js#L565-L571) ·  [Autori Chromium \* Licenza BSD](https://rea.tools/assets/licenses/dinosaur.txt)

Esempio 02 \* Calcolatrice Windows

## Ricrea il pulsante % della calcolatrice.

Il pulsante % si comporta diversamente dopo + e ×. Troviamo entrambe le regole e proviamole in una piccola calcolatrice.

### 1. Chiedi del pulsante %

Domanda di esempio · Calcolatrice

Utilizzare REA per ispezionare il pulsante % della calcolatrice Windows. Recuperare le regole dopo + e×, quindi costruire una piccola calcolatrice che utilizza entrambi.

### 2. Trova entrambe le regole

REA aiuta l'agente a leggere il codice del pulsante %. Il codice applica due regole diverse:

Con +
:   Prendi il 10% del primo numero.`10% of 200 = 20 → 200 + 20 = 220`

Con ×
:   Trasforma il 10% in 0,1.`200 × 0.1 = 20`

### 3. Prova il pulsante %

Abbiamo ricreato entrambe le regole qui sotto. Scegli + o ×, premi %, poi =.

200 +
**20**

10% di 200 = 20. Quindi 200 + 20 = 220.

Illustrazione interattiva della regola percentuale ispezionata.

Vedi il codice reale e come è stata controllata la risposta

Per questo esempio, `previous = 200` e `current = 10`.

Riepilogo leggibile del gestore %

```
if (operation == multiply || operation == divide) {
  percent = current / 100;
} else {
  percent = current * previous / 100;
}
```

Dall'app installata a un pulsante % funzionante

1. 01 · REA legge calc.exe

   Lancia l'app Calcolatrice

   Il codice si apre `ms-calculator:`. L'agente seleziona quindi la libreria dell'app installata.
2. 02 \* REA legge la libreria

   Restituisce il codice del gestore %

   La funzione controlla l'operatore e utilizza la costante `100`.
3. 03 \* Il tuo agente lo interpreta

   Spiegare e riprodurre le regole

   Crosscheck il ramo con la fonte di Microsoft, quindi provare + e × sopra.

REA \* istruzioni originali selezionate

```
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
```

ID operatore \* Fonte di Microsoft

```
#define IDC_MUL 92      // 0x5c
#define IDC_DIV 91      // 0x5b
#define IDC_PERCENT 118 // 0x76

0x64 = 100
```

Ispezionato con REA 4.1.0: Calcolatrice Windows 11.2508.4.0, x64. Il riepilogo leggibile utilizza i nomi della fonte pubblica di Microsoft per spiegare il ramo recuperato.

[Percentuale di attuazione](https://github.com/microsoft/calculator/blob/d125246a4e19842ce1332e6c7839cf0e110027d8/src/CalcManager/CEngine/scifunc.cpp#L98-L111) · [I test case di Microsoft](https://github.com/microsoft/calculator/blob/d125246a4e19842ce1332e6c7839cf0e110027d8/src/CalculatorUnitTests/CalculatorManagerTest.cpp#L350-L370) · [Guida all'installazione nativa](https://rea.tools/guides/native/)

## Studi di casi REA.

Esplora una funzione di un'app o gioco pubblicato, con codice e risultati verificati.

[Vetrina →](https://rea.tools/it/showcase/)

Android \* Analisi APK

### Come un autenticatore genera un codice di accesso

Segui il codice di accesso a sei cifre di Aegis nel suo APK pubblicato, poi sposta l'orologio della demo per vedere perché cambia ogni 30 secondi.

[Leggi il case study di Android](https://rea.tools/showcase/aegis/)

Electron \* Funzione di tracciamento

### Come Notion copia testo e HTML

Segui il JavaScript incluso in Notion fino agli appunti di sistema e scopri come una copia conserva i dati ricchi dei blocchi.

[Leggi il caso di studio Notion](https://rea.tools/it/showcase/notion/)

Nativo \* Ricostruzione

### DX-Ball ' s calcolo di sinistra / destra posizione del suono

Ricostruisci come la posizione di una palla diventa suono a sinistra o a destra in un gioco Windows del 1996.

[Leggi il caso di studio DX-Ball](https://rea.tools/it/showcase/dx-ball/)

## Creare ambienti RL

Trasforma una sessione registrata di un’app web in un ambiente eseguibile per addestrare e testare agenti IA.

Il tuo agente registra le richieste del browser e le risposte dell’app. REA usa questi dati per creare un ambiente locale in cui gli agenti possono esercitarsi senza eseguire l’app originale.

Per supportare l’eliminazione delle cartelle, la registrazione deve mostrare la cartella prima dell’eliminazione e confermare che non esiste più dopo.

[Guida alla creazione di un ambiente](https://rea.tools/guides/rl-environments/) · [Guarda la demo su X](https://x.com/reatools/status/2112574822584918075?s=20)

Configura REA nel tuo agente, poi sostituisci l’URL e le attività sulle cartelle dell’esempio con i tuoi:

Il tuo agente di codifica

Usa REA per creare un ambiente RL dalla mia app web di prova su `http://127.0.0.1:3000`. Includi elenco, creazione, rinomina ed eliminazione delle cartelle. Puoi creare e rimuovere cartelle di prova, ma non modificare i dati esistenti. Salvalo in una cartella chiamata `my-env`, verifica le operazioni disponibili e spiegami come eseguirlo.

Prompt di esempio. Sostituisci l’URL e le attività sulle cartelle con i tuoi.

La tua prima indagine

## Prova REA su una piccola app.

Scarica il nostro esempio di Note, traccia la sua esportazione CSV e controlla un input modificato.

[Prova l'esempio guidato](https://rea.tools/it/first-investigation/)

## Scegli il tuo obiettivo.

Queste guide spiegano la configurazione e una prima indagine per ogni tipo di software.

### Programmi a codice macchina

Ispezionare funzioni, stringhe, riferimenti e relazioni di chiamata di funzione in eseguibili e librerie.

[Guida all'analisi dei programmi di codice macchina](https://rea.tools/guides/native/)

### JavaScript & Electron

Segui il codice di un’app desktop scritta in JavaScript.

[Flussi di lavoro delle applicazioni](https://rea.tools/guides/javascript/)

### Attività del browser e runtime

Cattura l'attività del browser o del processo selezionata, quindi confronta i risultati tra le varie esecuzioni.

[Guida all'osservazione del browser](https://rea.tools/it/guides/browser/)

Prova un progetto più grande

Esempio prompt \* Sito web

Utilizzare REA per ispezionare https://rea.tools/. Clonare questo sito per me.

Sì, questa.

Esempio prompt \* Ricostruzione del gioco

Usa REA per ricostruire questo gioco dal suo eseguibile. Recuperare la logica di gioco in C e testarlo contro l'originale.

[Vedere il caso di studio DX-Ball →](https://rea.tools/it/showcase/dx-ball/)

## Hai domande?

[Leggi le FAQ](https://rea.tools/it/faq/) per ricevere assistenza con la configurazione e trovare risposte alle domande comuni.

[Unisciti a Discord](https://discord.gg/GkcryMnJDM) per ricevere assistenza e discutere le tue analisi.

Segnala un bug o richiedi una funzionalità in [GitHub Issues](https://github.com/morluto/rea/issues/new/choose).
