In questa pagina

Reverse engineering, con il tuo agente di codifica

Scopri come
funziona il software.

REA fornisce al tuo agente di programmazione gli strumenti per esaminare un programma e spiegarne il funzionamento.

Sai già RE? Vai alle guide di analisi →

Vuoi andare più a fondo? Leggi il Blog →

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.

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

Che cos’è il reverse engineering?

Capire come funziona un software esaminando il programma stesso.

L'obiettivo: capire una caratteristica abbastanza bene per spiegalo, cambialo o ricostruiscilo.

Per esempio: perché la calcolatrice restituisce 220 per 200 + 10%?

Prima di REA · Indaghi da solo

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.

Con REA · Chiedi al tuo agente

Un solo prompt.

Fai una domanda al tuo agente con parole semplici.

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. Modificare la velocità di un gioco, quindi tornare a Calcolatrice e ricostruire il suo pulsante%.

Esempio 01 * Gioco di dinosauri di Chrome

Perché il dinosauro diventa più veloce?

Obiettivo
Ricostruisci il gioco con velocità regolabile.
Perché il reverse engineering?
Per riprodurre la sua accelerazione, abbiamo bisogno di la regola nel gioco in esecuzione: quanto velocemente inizia, quanto aumenta e quando si ferma.

Gioca alla ricostruzione

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.

REA ha restituito

Lo script effettivamente in esecuzione nella pagina. L'agente legge la sua funzione di aggiornamento e le impostazioni di velocità, quindi utilizza tale regola in un nuovo gioco.

Esempio prompt * Gioco 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.

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.

Apri lo speed lab

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.
Vedi lo script, i controlli e come provare l'analisi

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.

Abbiamo visto perché 200 + 10% dà 220. Ora recuperiamo le regole per + e × e provale.

Obiettivo
Costruire una piccola calcolatrice che gestisce sia + che × correttamente.
Perché il reverse engineering?
Lo stesso pulsante utilizza regole diverse dopo + e ×. Controlliamo l'app installata per trovare a quale numero viene applicata la percentuale.

Prova il calcolo

200 + 20

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

Illustrazione interattiva della regola percentuale ispezionata.

REA ha restituito

Un ramo si divide per 100. L'altro si moltiplica anche per il primo numero. L'agente utilizza entrambi per ricreare il pulsante%.

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

Esempio prompt * Ricostruire il pulsante %

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

Riepilogo leggibile del gestore %
if (operation == multiply || operation == divide) {
  percent = current / 100;
} else {
  percent = current * previous / 100;
}
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

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.
Vedi il codice reale e come è stata controllata la risposta
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

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

Vuoi approfondire?

Dì al tuo agente cosa vuoi capire o costruire. Con REA, è possibile lavorare insieme su qualsiasi cosa, da clonazione di questo sito web per ricostruire un gioco dal suo eseguibile.

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 →

Per le fasi di configurazione e analisi, scegli il tuo target:

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

Hai domande?

Leggi le FAQ, chatta con noi su Discord , o aprire un problema GitHub per bug e richieste di funzionalità.

Unisciti alla community

Condividi le indagini e ottenere aiuto da altri utenti REA su Discord . Seguire REA su X per gli aggiornamenti del progetto.

Cima