In questa pagina

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.

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.

Altre opzioni di installazione: curl →

Prima volta, o mancante Node.js o un agente di codifica? Seguire la guida di installazione passo-passo →

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 restituisce codice, riferimenti e osservazioni 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

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 = 20200 + 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 ↓

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

6 → 10 → 13

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

Spostare il cursore per impostare la propria velocità. Spazio o salto cancella un cactus.
Apri lo speed lab
Vedi lo script, i controlli e come provare l'analisi

Obiettivo ispezionato: edizione del browser derivata da Chromium di wayou.

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 esecuzioneRestituisce il codice e le impostazioni effettivi all'agente.
  2. 02 * Il tuo agenteRicostruire la regola, aggiungere un controlloUsa l'accelerazione recuperata in un piccolo gioco con un cursore di velocità.
  3. 03 * TuCambiare la velocità e giocareProva 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 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 servendosi la pagina dei dinosauri. Fornisci all'agente l'URL della pagina e l'endpoint di debug locale, quindi copia il prompt sopra.

Codice di velocità ispezionato · Autori Chromium * Licenza BSD

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.exeLancia l'app CalcolatriceIl codice si apre ms-calculator:. L'agente seleziona quindi la libreria dell'app installata.
  2. 02 * REA legge la libreriaRestituisce il codice del gestore % La funzione controlla l'operatore e utilizza la costante 100.
  3. 03 * Il tuo agente lo interpretaSpiegare e riprodurre le regoleCrosscheck 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 · I test case di Microsoft · Guida all'installazione nativa

Studi di casi REA.

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

Vetrina →

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

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

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

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

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

JavaScript & Electron

Mappa moduli, percorsi, IPC e dipendenze native da una cartella dell'applicazione o da un archivio ASAR.

Flussi di lavoro delle applicazioni

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

Hai domande?

Cima