19 KiB
English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Türkçe · Русский · Tiếng Việt · ไทย · Deutsch · Español · Français · Українська · Polski · Português (Brasil) · العربية · فارسی · Bahasa Indonesia · Italiano
REA: Reverse Engineer Anything
Un unico MCP per l'ingegneria inversa su binari, applicazioni e comportamento a runtime.
Vedi una funzionalità che ti piace. Capisci come funziona, fino al livello binario.
Avvio rapido · Come funziona REA · Cosa puoi analizzare · Showcase · FAQ · Documentazione
npx rea-agents setup
|
Unisciti alla community di ingegneria inversa Discord · Domande e risposte · Show and Tell |
Hai visto una funzionalità in un'app che vorresti nel tuo prodotto? Chiedi al tuo agente di analizzarla con REA. Può ispezionare l'app senza il suo codice sorgente, spiegare come funziona la funzionalità, mostrare le prove e realizzare una versione per il tuo progetto.
REA collega il tuo agente a strumenti per ispezionare binari nativi, app JavaScript ed Electron, assembly .NET e siti web. Puoi usare gli stessi strumenti anche dal terminale. L'analisi viene eseguita localmente e i risultati includono le prove e i limiti dietro ogni conclusione.
La configurazione registra REA con il tuo agente e installa le istruzioni di workflow corrispondenti. L'analisi nativa può usare un'installazione esistente di Hopper, Ghidra o IDA; la configurazione può installare opzionalmente Hopper previa approvazione. L'analisi statica JavaScript non richiede alcun motore di analisi nativo.
Visita il sito web di REA per istruzioni di configurazione, guide illustrate e veri casi studio.
Avvio rapido
Configura il tuo agente
Con Node.js e npm installati, esegui:
npx rea-agents setup
Scegli i tuoi agenti, rivedi le modifiche proposte e approvale. La configurazione aggiunge il server MCP di REA e le istruzioni di workflow corrispondenti, con backup della configurazione esistente. Riavvia quindi il tuo agente.
La configurazione supporta Claude Code, Codex, Cursor, Gemini CLI, Grok Build e altri agenti. Vedi installazione e configurazione per la configurazione dei provider e la registrazione manuale MCP.
Chiedi al tuo agente
Spiega come funziona la ricerca nell'app Note, mostrami le prove e realizza
una funzionalità simile per il mio progetto.
Sostituisci Note con la tua app di destinazione e la funzionalità che vuoi capire.
Usa il terminale
Ispeziona una directory di app JavaScript/Electron estratta o un ASAR:
npx -y rea-agents@latest analyze-javascript-application /percorso/assoluto/verso/app --json
Il risultato include moduli, import, confini Electron e le relative prove. Sostituisci il percorso con il tuo bersaglio, ad esempio "D:/apps/example" su Windows.
Per installare il comando rea per un uso regolare:
npm install --global rea-agents
rea --help
Per l'analisi nativa, configura prima un provider. Vedi la guida CLI ed Evidence per i comandi nativi, la selezione del provider, gli snapshot e lo scripting.
Aggiorna REA
REA cambia rapidamente e le nuove versioni includono correzioni di bug frequenti. Tieni aggiornata la tua installazione.
Per una CLI installata con npm install --global o bun add --global:
rea update
Gli aggiornamenti globali con Bun richiedono Bun 1.2.17 o versioni successive. Con una versione precedente di Bun, aggiorna Bun manualmente prima di eseguire rea update.
Per aggiornare le registrazioni del tuo agente e lo skill, esegui il comando di configurazione mostrato dall'aggiornamento.
Se usi npx, aggiorna la configurazione del tuo agente con:
npx rea-agents@latest setup
Rivedi le modifiche di configurazione e riavvia il tuo agente. Per comandi CLI singoli, usa npx rea-agents@latest seguito dal comando. Con Bun, usa bunx rea-agents@latest al posto di npx rea-agents@latest.
Come funziona REA
Il tuo agente chiama REA tramite MCP per ispezionare il bersaglio e tracciare il codice rilevante. REA restituisce i risultati con le relative prove. L'agente li usa per fare domande di approfondimento, spiegare il comportamento o scrivere e testare un'implementazione. Anche i comandi CLI usano gli stessi workflow.
Apri la figura a dimensione intera.
Cosa puoi analizzare
REA richiede Node.js 22.x (>=22.19), 24.x (>=24.11) o 26+, oltre a npm. Strumenti aggiuntivi e supporto host dipendono dal bersaglio:
| Obiettivo | Cosa restituisce REA | Requisiti e guida |
|---|---|---|
| Binari nativi | Pseudocodice, assembly, stringhe, simboli, chiamate e riferimenti | Hopper, Ghidra o IDA; analisi nativa |
| Layout ELF offline | Sezioni, segmenti, simboli/relocazioni originali e candidati mitigazioni statiche | pwntools fornito dal chiamante su Linux x64; diagnostica binaria |
| Artefatto WASM | Convalida, sezioni, forme WAT di import/export esatte e WAT decodificato | WABT 1.0.42 fornito dal chiamante; inspect_wasm_artifact |
| Bytecode EVM | Selettori di dispatch, offset dei byte, argomenti inferiti e mutabilità | Carrier raw/hex locale; guida EVM offline |
| Crash Linux registrati | Note grezze, registri/segnai di ogni thread registrato e candidati mapping opzionali | pwntools fornito dal chiamante; GDB/pwndbg opzionale; crash registrati |
| JavaScript / Electron | Moduli, import, source map, route, IPC e relazioni con add-on nativi | Node.js e npm; analisi delle applicazioni |
| Siti web | Struttura della pagina, script, osservazioni di rete e screenshot richiesti | Un browser della famiglia Chrome; analisi browser |
| Acquisizioni di rete salvate | Richieste, risposte, payload esposti e posizioni sorgente | HAR; mitmdump su Linux per acquisizioni mitmproxy native; guida alle acquisizioni |
| Assembly .NET | Metadati, istruzioni CIL, dipendenze native dichiarate e confronti di build | Nessuno (solo statico); guida managed-code |
| APK Android | Dichiarazioni manifest, classi, metodi decompilati e riferimenti | JADX headless e un JDK completo su Linux/macOS/Windows x64; guida Android |
| Dispositivi Android | Dispositivi, pacchetti, processi, log, dump, screenshot e trasferimenti APK/file | adb fornito dal chiamante (emulatore o hardware); guida ADB |
| Progetti JEB | Unità di progetto dal motore, digest degli artifact e pseudocodice di tipi/metodi | Client JEB avviato dal chiamante via MCP, selezionato con REA_JEB_MCP_URL; guida JEB |
| Risorse Android | Manifest decodificato, tabelle stringhe, lingue e dati di versione | Launcher Apktool fornito dal chiamante; guida alle risorse |
| Firmware | Regioni, risultati di estrazione e passaggi all'analisi nativa | Binwalk / Unblob su Linux; guida firmware |
| Pacchetti e risorse | Inventari file, digest, plist, anatomia dei bundle Apple e risorse estratte | Guida artifact e JavaScript, Applicazioni Apple |
| Comportamento dei processi | Output del terminale, interazioni, osservazioni su uscita e filesystem ed confronti di esecuzione | Linux/macOS con un PTY nativo; cattura dei processi |
L'ispezione statica di JavaScript e .NET legge i file forniti senza eseguire l'applicazione. La cattura a runtime esegue o interagisce con il bersaglio selezionato usando i tuoi permessi utente; ogni guida runtime descrive i suoi effetti.
I formati nativi e il supporto host variano in base al provider. Vedi la configurazione di Hopper e Ghidra, la guida IDA e il supporto sperimentale Windows Ghidra. Ghidra supporta anche l'analisi DOS a 16 bit. Per binari di grandi dimensioni, aumenta il timeout di avvio con REA_GHIDRA_STARTUP_TIMEOUT_MS. Per la selezione del provider, vedi la guida CLI. Controlla la disponibilità delle release per le funzionalità aggiunte dall'ultima release npm.
Showcase
DX-Ball: ricostruisci un calcolo sound-pan
Segui una chiamata sonora fino al suo helper posizione-to-pan, ispeziona le istruzioni e trasforma il pseudocodice incompleto in C. La ricostruzione supera 3.205 casi x86 originali e riproduce tutti i 63 byte di funzione compilati.
Leggi il case study · Repository di ricostruzione
Notion: traccia il clipboard bridge di Electron
Trova l'API clipboard del renderer, seguila attraverso preload e IPC fino al processo principale e ispeziona il formato rich clipboard.
TH04: recupera un calcolo dell'anello di proiettili DOS
Ispeziona le istruzioni a 16 bit del gioco PC-98 originale, recupera i calcoli dell'angolo fisso e mirato e confronta il C++ ricostruito con l'output del compilatore storico.
Leggi il case study · Repository di ricostruzione
Se hai usato REA su qualcosa di interessante, ci piacerebbe vederlo. Condividi il tuo caso in una issue o in una pull request, includendo il bersaglio, la tua domanda, come REA ti ha aiutato e cosa hai scoperto.
FAQ
Quali agenti possono usare REA?
Qualsiasi agente che supporti server MCP locali. La configurazione configura gli agenti supportati; altri client possono usare la registrazione MCP manuale.
Ho bisogno di Hopper, Ghidra o IDA?
L'analisi nativa profonda ne usa uno. L'ispezione statica di JavaScript e .NET funziona senza un motore di analisi nativo. La configurazione può installare Hopper previa approvazione; Ghidra e IDA usano le tue installazioni esistenti. Vedi configurazione provider.
Devo avviare Hopper per primo?
REA avvia Hopper quando un'operazione ne ha bisogno. Su macOS, una finestra di dialogo al primo avvio potrebbe chiederti di scegliere la modalità demo o di attivare la licenza. Vedi avvio di Hopper e risoluzione dei problemi.
Cosa fa l'installazione dello skill da skills.sh?
Lo skill fornisce istruzioni di indagine per il tuo agente. Usa npx rea-agents setup per registrare il server MCP di REA e installare le istruzioni corrispondenti, quindi riavvia il tuo agente. Vedi installazione solo skill.
Quale codice restituisce REA?
L'analisi nativa restituisce pseudocodice e assembly. L'analisi JavaScript/Electron recupera moduli e le loro relazioni. Il tuo agente usa questi risultati per scrivere e testare un'implementazione; gli showcase offrono esempi concreti.
REA carica la mia app da qualche parte?
REA analizza i bersagli localmente. Il tuo agente riceve i risultati degli strumenti e il suo provider di modello ha la propria politica sui dati.
Cosa devo fare se trovo un bug?
Aggiorna prima; una release recente potrebbe averlo già risolto.
Per una CLI installata con npm install --global o bun add --global:
rea update
Per la configurazione dell'agente tramite npx:
npx rea-agents@latest setup
Se stai usando un agente, completa l'aggiornamento della configurazione e riavvialo. Riprova lo stesso task. Se il problema persiste, apri un issue con la tua versione di REA, il tipo di bersaglio, i passaggi per riprodurlo e l'output di errore.
Documentazione
Inizia dalle guide pratiche del sito web. Per opzioni esatte, prerequisiti e contratti dei risultati:
- Installazione e configurazione: registrazione agente, configurazione provider, aggiornamenti e disinstallazione.
- Pronto all'uso e risoluzione dei problemi: diagnostica un agente o un motore di analisi.
- CLI ed Evidence: comandi, selezione provider, snapshot, import/export e stati di uscita.
- Contratti MCP e prompt agente: risultati degli strumenti, sessioni e indagini guidate.
- Catalogo strumenti: inventario generato di strumenti, provider e comandi CLI.
- Roadmap: lavoro pianificato e tracker delle capacità.
Segnala vulnerabilità tramite SECURITY.md.
Cronologia delle stelle
🎉 90.000 stelle su GitHub — grazie!
Grazie a tutti coloro che usano REA, segnalano bug, propongono funzionalità, testano le build e contribuiscono con correzioni.
Disclaimer
REA fornisce strumenti per la ricerca, l'analisi e la ricostruzione di ingegneria inversa lecita. Sei responsabile di ottenere le eventuali autorizzazioni richieste e di rispettare le leggi applicabili. Il progetto non approva l'uso illegale o non autorizzato.
REA è un progetto software open-source. Non abbiamo emesso né approvato alcuna criptovaluta o token. I token che usano il nome REA non sono affiliati al progetto.
Contributing
Apprezzeremmo il tuo aiuto con REA! Apri un issue per segnalare un bug o suggerire una funzionalità, oppure invia una pull request per migliorare il codice o la documentazione.
Vedi CONTRIBUTING.md per la configurazione di sviluppo e i controlli, testing per le lane di verifica e la mappa dell'architettura per la struttura del progetto.
