Che cos’è REA e come si posiziona nel panorama del reverse engineering
REA, acronimo di Reverse Engineer Anything, è un progetto rilasciato sotto licenza MIT che funge da ponte tra un agente AI (Claude Code, Codex, Cursor, Gemini CLI) e i più diffusi decompilatori: Ghidra, Hopper e IDA Pro. Il repository morluto/rea è stato creato il 14 aprile 2026; il 14 ottobre 2026 conta 234.477 stelle e 58.512 fork su GitHub.
L’obiettivo dichiarato è semplice: vedere una funzione in un’app, chiedere all’agente di spiegarla e ottenere le prove. REA non è un nuovo decompilatore; raccoglie gli output dei tool tradizionali (offset, assembly, pseudocodice) e li restituisce all’agente con evidenza, evitando risposte “a braccio”.
Componenti chiave
- Reverse engineering: analisi di programmi compilati senza sorgente, basata su istruzioni, stringhe e comportamento.
- Decompilatori: Ghidra (gratuito, nato alla NSA), Hopper e IDA Pro (commerciali, IDA è lo standard industriale).
- MCP (Model Context Protocol): protocollo che permette all’agente AI di chiamare strumenti esterni, il canale attraverso cui REA accede ai decompilatori.
Installazione e requisiti tecnici
REA è distribuito tramite npm con il pacchetto rea-agents. L’ultima versione al 14 ottobre è la 6.5.0. L’installazione avviene con:
npx rea-agents setup
Prerequisiti:
- Node.js 22.19 o superiore.
- Un agente AI compatibile (Claude Code, Codex, Cursor, Gemini CLI).
- Decompilatori nativi installati (Hopper, Ghidra o IDA Pro) per analizzare binari C/C++/Rust/Go.
- Per JavaScript, Electron e .NET, basta Node.js perché l’analisi è statica.
Il comando di setup modifica la configurazione dell’agente (ad esempio ~/.claude.json e ~/.claude/skills) solo dopo conferma esplicita dell’utente.
Catalogo dei formati supportati
- Applicazioni JavaScript ed Electron.
- Assembly .NET.
- Binari C, C++, Rust, Go (richiedono Hopper, Ghidra o IDA).
- APK Android.
- Firmware, catture di rete, database SQLite.
- Comportamento di siti web.
Le cifre di popolarità: verità sulle stelle di GitHub
Le statistiche di GitHub variano di giorno in giorno. Alcuni articoli riportano 115.000 stelle in una settimana, altri 145.000 o 120.000. Tutte le cifre sono reali, ma catturate in momenti diversi di una crescita rapida.
Il tracciato più preciso è nel repository stesso:
- 12 ottobre 03:58 UTC – 110.000 stelle.
- 13 ottobre 03:20 UTC – 170.000 stelle.
- 13 ottobre 09:48 UTC – 180.000 stelle.
- 13 ottobre 16:11 UTC – 200.000 stelle.
- 14 ottobre – 234.477 stelle.
In circa 36 ore il contatore è salito di 90.000 unità, un’accelerazione rara. Non è possibile determinare quanti utenti reali abbiano premiato la stella; il numero è una misura di attenzione, non di qualità del codice o della sicurezza.
Cosa è vero e cosa è falso: tabella di verifica
| Cosa si legge | Verdetto | Cosa risulta |
|---|---|---|
| REA ricostruisce il codice sorgente originale | Falso | Restituisce pseudocodice, assembly, moduli e relazioni tra file; il sorgente originale non è contenuto nel binario. |
| Funziona su qualsiasi programma | Vero a metà | Copre molti formati ma richiede prerequisiti specifici; alcune analisi sono verificate solo su Linux. |
| Include o sostituisce Ghidra e IDA Pro | Falso | Li pilota, ma l’installazione e la licenza restano a carico dell’utente. |
| Tutto resta sul tuo computer | Vero con riserva | L’analisi avviene localmente, ma i risultati vengono inviati al modello AI, soggetto a proprie policy sui dati. |
| È un progetto spuntato dal nulla a ottobre | Falso | Repository creato il 14 aprile, pacchetto npm rilasciato a luglio, 32 versioni pubblicate. |
| Dietro c'è un grande team o un'azienda | Non risulta | 1.566 commit da un autore, 528 da un secondo, 429 da un terzo; 30 contributor totali. |
| Serve a craccare DRM e licenze | Escluso | Il disclaimer vieta espressamente tali usi; le richieste vengono chiuse senza risposta. |
| Si può usare a occhi chiusi | Falso | Policy di sicurezza avvisa che non è una sandbox; una copia fasulla del repository ha diffuso un trojan. |
Esempio pratico: il caso DX‑Ball
Il progetto include un caso di studio su DX‑Ball, un gioco Windows del 1996. REA ricostruisce il calcolo del bilanciamento audio in C, confrontando 3.205 test con l’originale x86 e replicando tutti i 63 byte della funzione compilata. Si tratta di una funzione scelta con cura; non è una ricostruzione completa di un’intera applicazione.
Il risultato dimostra che REA può produrre codice funzionante a partire dal binario, ma non fornisce il sorgente originale con nomi di variabili, commenti o struttura del progetto.
Il rischio delle copie fasulle
Il 13 ottobre, alle 00:42 UTC, un utente segnalò sul repository ufficiale una copia ospitata sotto l’organizzazione rea‑tools. Il clone riportava un “Windows Standalone .exe” da 82,6 MB, presentato come versione 6.3.0 e scaricato 172 volte.
Microsoft Defender lo classificò come trojan della famiglia Wacatac; VirusTotal ha mostrato 8 motori su 45 che lo segnalavano come dropper. Il README ufficiale è stato aggiornato con un avviso che invita a scaricare REA solo da:
- github.com/morluto/rea
- Il sito
rea.tools - Il pacchetto npm
rea‑agents
Il meccanismo è ricorrente: un progetto esplode, qualcuno clona il README, aggiunge un “installer per Windows” e spera di ingannare gli utenti meno attenti. Poiché il README originale non menziona alcun installer grafico, ogni REA.exe trovato altrove deve essere trattato come potenziale malware.
Impatto sull’agente AI: cosa cambia dopo l’installazione
Il comando npx rea-agents setup non è neutro. Per Claude Code, ad esempio, il setup registra il server REA in ~/.claude.json e copia la skill in ~/.claude/skills. Da quel momento tutti i progetti aperti possono invocare REA. Il processo mostra le modifiche prima di applicarle e richiede conferma.
La documentazione raccomanda di usare una variabile d’ambiente CLAUDECONFIGDIR per isolare REA in un profilo separato, così da evitare che l’agente acceda a REA durante attività quotidiane non correlate.
Policy di sicurezza
REA autentica le connessioni a Hopper e Ghidra con token casuali per sessione, ma non fornisce una sandbox. I risultati dell’analisi vengono inviati al modello AI, il quale può conservare o trasmettere i dati secondo le proprie politiche. Gli utenti devono valutare il rischio di inviare informazioni sensibili.
Conclusioni
REA rappresenta un passo importante nell’integrazione tra intelligenza artificiale e reverse engineering tradizionale. Grazie al suo approccio modulare, consente a un agente AI di sfruttare tool maturi come Ghidra, Hopper e IDA Pro, restituendo output strutturati e verificabili. Tuttavia, le aspettative devono essere calibrate: REA non genera il codice sorgente originale, richiede software di decompilazione esterno, e non è una sandbox completa.
La rapida crescita di stelle e fork dimostra un forte interesse della community, ma gli utenti devono rimanere vigili di fronte a copie fraudolente e a possibili esposizioni di dati. Con una corretta configurazione, backup e attenzione alle policy di sicurezza, REA può diventare uno strumento prezioso per ricercatori, analisti di sicurezza e sviluppatori curiosi di capire il funzionamento interno di software proprietario.
