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 AndroidReverse engineering, con il tuo agente di codifica
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.
Casi studio → , indagini e demo interattive.
Blog → , metodi e appunti sulla ricostruzione.
Copia questo prompt nel tuo agente di programmazione:
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 →
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.
Dai al tuo agente un programma o una pagina e una domanda.
REA restituisce codice, riferimenti e osservazioni durante l'esecuzione.
Il tuo agente usa i risultati per spiegare o ricreare la funzione.
Perché 200 + 10% dà 220 nella Calcolatrice?
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
Utilizzare REA ispezionare Windows Calcolatore. Perché 200 + 10% dà 220?
Dopo +, il pulsante % prende percentuale del primo numero.
10% of 200 = 20200 + 20 = 220
Proviamo due esempi: cambiare la velocità di un gioco e ricreare il pulsante % della Calcolatrice.
Esempio 01 * Gioco di dinosauri di Chrome
Il gioco accelera mentre corri. Per ricrearlo con un controllo della velocità, dobbiamo prima capire come cambia la velocità.
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.
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.
Abbiamo ricreato questa regola nel minigioco qui sotto e aggiunto un cursore della velocità. Avvia il gioco, poi scegli la tua velocità.
Regola originale: inizia da 6, quindi aumenta verso 13.
Obiettivo ispezionato: edizione del browser derivata da Chromium di wayou.
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
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.
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
Il pulsante % si comporta diversamente dopo + e ×. Troviamo entrambe le regole e proviamole in una piccola calcolatrice.
Utilizzare REA per ispezionare il pulsante % della calcolatrice Windows. Recuperare le regole dopo + e×, quindi costruire una piccola calcolatrice che utilizza entrambi.
REA aiuta l'agente a leggere il codice del pulsante %. Il codice applica due regole diverse:
10% of 200 = 20 → 200 + 20 = 220
200 × 0.1 = 20
Abbiamo ricreato entrambe le regole qui sotto. Scegli + o ×, premi %, poi =.
10% di 200 = 20. Quindi 200 + 20 = 220.
Per questo esempio, previous = 200 e current = 10.
if (operation == multiply || operation == divide) {
percent = current / 100;
} else {
percent = current * previous / 100;
}
Dall'app installata a un pulsante % funzionante
ms-calculator:. L'agente seleziona quindi la libreria dell'app installata.
100.
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
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
Esplora una funzione di un'app o gioco pubblicato, con codice e risultati verificati.
Android * Analisi APK
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 AndroidElectron * Funzione di tracciamento
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 NotionNativo * Ricostruzione
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-BallLa tua prima indagine
Scarica il nostro esempio di Note, traccia la sua esportazione CSV e controlla un input modificato.
Queste guide spiegano la configurazione e una prima indagine per ogni tipo di software.
Ispezionare funzioni, stringhe, riferimenti e relazioni di chiamata di funzione in eseguibili e librerie.
Guida all'analisi dei programmi di codice macchinaMappa moduli, percorsi, IPC e dipendenze native da una cartella dell'applicazione o da un archivio ASAR.
Flussi di lavoro delle applicazioniCattura l'attività del browser o del processo selezionata, quindi confronta i risultati tra le varie esecuzioni.
Guida all'osservazione del browserUtilizzare REA per ispezionare https://rea.tools/. Clonare questo sito per me.
Sì, questa.
Usa REA per ricostruire questo gioco dal suo eseguibile. Recuperare la logica di gioco in C e testarlo contro l'originale.
Leggi le FAQ , configurazione e domande comuni.
Unisciti a Discord , ricevi aiuto e discuti le tue indagini.
GitHub issues , segnala un bug o richiedi una funzione.