Che cos’è REA e come funziona
REA, acronimo di Reverse Engineer Anything, è un progetto di codice aperto rilasciato con licenza MIT. Il suo scopo è consentire a un agente di intelligenza artificiale – ad esempio Claude Code, Codex, Cursor o Gemini CLI – di analizzare un programma compilato senza disporre del codice sorgente originale.
Il repository morluto/rea è stato creato il 14 aprile 2026; il 14 ottobre 2026 contava 234 477 stelle e 58 512 fork su GitHub. Queste cifre hanno generato titoli sensazionalistici, video e riassunti in cui verità, esagerazioni e errori si mescolano nella stessa frase.
Per capire il valore di REA è necessario distinguere tre termini chiave:
- Ingegneria inversa (reverse engineering): attività di chi prende un programma già compilato, senza codice sorgente, e ricostruisce il suo funzionamento osservando istruzioni, stringhe di testo e comportamento.
- Decompilatore: strumenti come Ghidra (gratuito, nato nella NSA), Hopper e IDA Pro (a pagamento, con IDA considerato lo standard commerciale) che trasformano il codice macchina in una rappresentazione più leggibile.
- MCP (Model Context Protocol): protocollo con cui un agente IA chiama strumenti esterni; è il canale attraverso il quale REA mette a disposizione i decompilatori al modello.
In pratica, REA non è un nuovo decompilatore. Funziona da “ponte” tra l’agente IA e gli strumenti esistenti, restituendo risultati dettagliati (offset, frammenti di codice, limiti della conclusione) anziché una semplice spiegazione a occhio.
Installazione e requisiti tecnici
REA è gratuito e si installa con il comando:
npx rea-agents setup
Per l’installazione è necessario:
- Node.js 22.19 o superiore.
- Un agente IA compatibile (Claude Code, Codex, Cursor, Gemini CLI).
- Per l’analisi di binari nativi, almeno uno dei seguenti decompilatori installati: Hopper, Ghidra o IDA Pro.
Il comando setup modifica la configurazione dell’agente e richiede conferma esplicita prima di procedere.
Il pacchetto npm, chiamato rea-agents, ha raggiunto la versione 6.5.0 il 14 ottobre 2026. Solo nella settimana dal 6 al 12 ottobre ha registrato 231 579 installazioni, secondo i dati del registro npm. Il progetto è scritto in TypeScript.
Tipi di analisi supportati
Le esigenze variano a seconda del tipo di binario:
- Applicazioni JavaScript/Electron (es. Notion, Slack): basta Node.js, perché l’analisi è statica e non richiede motori nativi.
- Assemblaggi .NET: anch’essi gestibili con Node.js.
- Binari C, C++, Rust, Go: richiedono Hopper, Ghidra o IDA Pro per l’analisi.
- APK Android, firmware, dump di rete, database SQLite, comportamento di siti web: ognuno con requisiti specifici, tutti documentati nel catalogo del progetto.
Le stelle di GitHub: un dato in rapida evoluzione
Le cifre di popolarità cambiano di giorno in giorno. Alcuni media hanno riportato:
- 115 000 stelle in una settimana.
- 145 000 stelle in un’analisi di Kunal Ganglani del 12 ottobre.
- circa 120 000 stelle in un sito taiwanese.
Tutte queste cifre sono vere, ma riflettono snapshot presi a orari diversi. Il repository stesso fornisce il tracciamento più preciso:
- 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 sole 36 ore il contatore è salito di 90 000 unità, un’accelerazione rara nel mondo open‑source. Tuttavia, nessuno può affermare quanti di questi “star” provengano da utenti reali o da bot; la stella misura solo attenzione, non qualità del codice o sicurezza.
Cosa è vero e cosa è falso
| Affermato | Verdetto | Spiegazione |
|---|---|---|
| REA ricostruisce il codice sorgente originale | Falso | Restituisce pseudocodice, assembly e relazioni tra moduli; il sorgente originale (nomi variabili, commenti) non è presente nel binario. |
| Funziona con qualsiasi programma | Certo a metà | Coprende molti formati, ma ogni formato ha requisiti specifici e alcuni test sono verificati solo su Linux. |
| Include o sostituisce Ghidra e IDA Pro | Falso | Li gestisce, ma l’installazione e la licenza restano a carico dell’utente. |
| Tutto rimane sul tuo computer | Certo con riserve | L’analisi avviene localmente, ma i risultati vengono inviati al modello IA, che ha la propria politica di gestione dei dati. |
| È nato da zero a ottobre | Falso | Il repository è del 14 aprile, il pacchetto npm di luglio; sono state pubblicate 32 versioni. |
| Dietro c’è un grande team o azienda | Non consta | Un autore ha 1 566 commit, un secondo 528, un terzo 429; in totale circa 30 contributori. |
| Serve per crackare DRM e licenze | Escluso | Il disclaimer proibisce espressamente tali richieste; il progetto è neutro. |
| Si può usare “a occhi chiusi” | Falso | La policy di sicurezza avverte che non è un sandbox; una copia fraudolenta del repository ha distribuito un trojan. |
RECUPERO DEL CODICE ORIGINALE: COSA ASPETTARSI
REA non restituisce il sorgente originale. Fornisce una lettura del binario – pseudocodice, assembly, moduli e relazioni – che l’agente IA può usare per generare una nuova implementazione, ma non ricostruisce nomi di variabili, commenti o struttura del progetto originale.
Un caso di studio è DX‑Ball, un gioco Windows del 1996. Il progetto mostra il calcolo del bilanciamento audio ricostruito in C, confrontando 3 205 test con l’originale x86 e riproducendo i 63 byte della funzione compilata. Si tratta di una funzione piccola scelta appositamente; nessun progetto REA afferma di ricostruire interi programmi.
La truffa del repository falsificato
Il 13 ottobre 00:42 UTC un utente aprì un’incidenza sul repository ufficiale segnalando una copia fraudolenta ospitata sotto l’organizzazione rea-tools. Il clone aveva copiato il README e aggiunto una sezione “Windows Standalone .exe”. Il pacchetto proposto, 82,6 MB, era etichettato come release 6.3.0 e aveva già 172 download al momento della denuncia.
Microsoft Defender lo classificò come trojan della famiglia Wacatac; su VirusTotal 8 motori su 45 lo segnalavano come dropper. Da allora il README ufficiale avverte di scaricare REA solo da github.com/morluto/rea, dal sito rea.tools o dal pacchetto npm rea-agents. Il sito della copia falsa ora restituisce errore 404.
Il modello è noto: un progetto popolare attira cloni, il README viene copiato, si aggiunge un “installer per Windows” e si spera di catturare chi vuole la via più semplice. Poiché il README originale non menziona alcun installer grafico per Windows, ogni REA.exe proveniente da fonti non ufficiali deve essere trattato come malware fino a prova contraria.
Cosa cambia nell’agente IA durante l’installazione
Il comando npx rea-agents setup non è una semplice installazione neutra. Per Claude Code, ad esempio, il setup registra il server REA in ~/.claude.json e copia la “skill” (le istruzioni operative per l’agente) in ~/.claude/skills. Queste modifiche avvengono solo dopo conferma esplicita dell’utente.
Altri agenti hanno percorsi analoghi: Codex salva le configurazioni in ~/.codex/config, Cursor utilizza ~/.cursor/plugins, mentre Gemini CLI crea una directory ~/.gemini/rea. In tutti i casi, l’agente acquisisce la capacità di invocare i decompilatori tramite MCP, ma resta responsabile della gestione dei dati inviati al modello.
Conclusioni
REA rappresenta un passo importante nell’integrazione tra intelligenza artificiale e strumenti di ingegneria inversa. La sua capacità di orchestrare decompilatori esistenti e restituire risultati strutturati è reale e ha attirato l’attenzione della community, come dimostrano le centinaia di migliaia di stelle su GitHub.
Tuttavia, è fondamentale distinguere le promesse di marketing dalle limitazioni tecniche: REA non rigenera il codice sorgente originale, richiede decompilatori esterni per i binari nativi, e i dati analizzati possono essere inviati al modello IA secondo le proprie policy. Inoltre, la popolarità del progetto ha generato copie fraudolente che distribuiscono malware; gli utenti devono scaricare solo da fonti verificate.
In sintesi, REA è uno strumento potente per chi vuole sfruttare l’IA nella reverse engineering, ma va usato con consapevolezza dei requisiti, dei rischi e delle reali capacità offerte.
