REA, acronimo di Reverse Engineer Anything, è un progetto open‑source rilasciato sotto licenza MIT che permette a un agente IA – ad esempio Claude Code – di analizzare un programma senza disporre del suo codice sorgente. Il repository morluto/rea è stato creato il 14 aprile 2026 e, al 14 ottobre dello stesso anno, contava 234 477 stelle e 58 512 fork su GitHub.
Contesto e terminologia
Prima di addentrarci nei dettagli, è utile definire tre termini fondamentali.
Retro‑ingegneria
La retro‑ingegneria (reverse engineering) consiste nell’esaminare un programma già compilato, privo di codice sorgente, per ricostruirne il funzionamento osservando istruzioni, stringhe e comportamento.
Decompilatore
Strumenti come Ghidra (gratuito, sviluppato dalla NSA), Hopper e IDA Pro (quest’ultimo la soluzione commerciale di riferimento) trasformano il codice macchina in una rappresentazione più leggibile.
MCP – Model Context Protocol
Il MCP è il protocollo mediante il quale un agente IA chiama strumenti esterni. REA utilizza questo canale per mettere a disposizione dell’agente i decompilatori sopra citati.
Installazione e requisiti
REA è gratuito e si installa con il comando:
npx rea‑agents setup
È necessario avere Node.js 22.19 (o versione successiva) e un agente compatibile (Claude Code, Codex, Cursor, Gemini CLI). Per i binari nativi, gli utenti devono già avere installato Hopper, Ghidra o IDA Pro. Il setup modifica la configurazione dell’agente solo dopo aver ottenuto la conferma dell’utente.
Il pacchetto npm si chiama rea‑agents e ha raggiunto la versione 6.5.0 il 14 ottobre 2026. Solo nella settimana dal 6 al 12 ottobre è stato installato 231 579 volte, secondo i dati del registro npm. Il progetto è scritto in TypeScript.
Come funziona REA
L’idea è descritta in una singola riga del README: l’utente individua una funzione in un’applicazione, chiede all’agente di spiegarla e di fornire le prove. REA non è un decompilatore nuovo, ma un ponte che collega l’agente ai decompilatori esistenti, restituendo risultati con offset, frammenti di codice e limiti della conclusione, evitando spiegazioni “a senso unico”.
Il motto del progetto recita:
Everything is binary. Everything is reverse engineerable. Reverse engineer anything.
Per le applicazioni JavaScript, Electron (ad es. Notion, Slack) e gli assembly .NET, basta Node.js: l’analisi è statica e non richiede motori nativi. Per binari C, C++, Rust o Go, occorre uno dei tre strumenti (Hopper, Ghidra o IDA). Il catalogo supporta inoltre APK Android, firmware, capture di rete, database SQLite e il comportamento di siti web, ognuno con requisiti propri.
Statistica delle stelle: cosa è vero e cosa è esagerato
Il numero di stelle varia a seconda del momento in cui viene osservato. Diverse fonti riportano:
- 115 000 stelle in una settimana (fonte non specificata)
- ≈145 000 stelle secondo l’analisi di Kunal Ganglani del 12 ottobre
- ≈120 000 stelle in un sito taiwanese
Tutti i valori sono corretti per l’istante di rilevamento. Il registro interno del repository mostra una crescita rapida: il 12 ottobre alle 03:58 UTC si celebravano 110 000 stelle; il 13 ottobre alle 03:20 UTC si segnalarono 170 000; alle 09:48 UTC 180 000; alle 16:11 UTC 200 000. In appena 36 ore il contatore è aumentato di 90 000 unità, arrivando a 234 477 il 14 ottobre.
Questa accelerazione è rara, ma non è possibile determinare quanti di questi “like” provengono da utenti realmente interessati o da bot. L’“stella” misura l’attenzione, non la qualità del codice, la sostenibilità o la sicurezza.
Verità e falsità più diffuse
| Affermato | Verdetto | Spiegazione |
|---|---|---|
| REA ricostruisce il codice sorgente originale | Falso | Fornisce pseudo‑code, assembly e relazioni tra moduli, ma non il sorgente originale. |
| Funziona su qualsiasi programma | Vero a metà | Copre molti formati, ma ognuno richiede prerequisiti specifici; alcune analisi sono limitate a Linux. |
| Include o sostituisce Ghidra e IDA Pro | Falso | Li controlla, ma l’installazione e le licenze rimangono a carico dell’utente. |
| Tutto resta sul tuo computer | Vero sotto riserva | L’analisi avviene localmente, ma i risultati vengono inviati al modello IA, che ha la propria politica sui dati. |
| Il progetto è nato improvvisamente a ottobre | Falso | Il repository è del 14 aprile, il pacchetto npm è stato pubblicato a luglio e conta 32 versioni. |
| Dietro c’è una grande azienda | Rimane incerto | Un autore ha 1 566 commit, un altro 528, un terzo 429; in totale 30 contributori. |
| Serve per cracker DRM e licenze | Escluso dal progetto | Il disclaimer proibisce espressamente tali richieste. |
| Si può usare a occhi chiusi | Falso | La policy di sicurezza avverte che non è un sandbox; una copia falsa del repo ha diffuso un trojan. |
Esempio pratico: il caso DX‑Ball
Nel README è presentato uno studio di caso su DX‑Ball, un gioco Windows del 1996. REA ha ricostruito il calcolo dell’equilibrio audio in C, superando 3 205 test confrontati con l’originale x86 e replicando i 63 byte della funzione compilata. Si tratta di una dimostrazione su una funzione molto piccola, selezionata appositamente; non è una ricostruzione dell’intero gioco.
Il pericolo delle copie fraudolente
Il 13 ottobre alle 00:42 UTC, un utente ha segnalato su GitHub una copia del repository sotto l’organizzazione rea‑tools che aggiungeva una sezione “Windows Standalone .exe”. L’archivio di 82,6 MB, presentato come release 6.3.0, era stato scaricato 172 volte prima della segnalazione.
Microsoft Defender lo classificava come trojan della famiglia Wacatac; su VirusTotal, 8 motori su 45 lo segnalavano come dropper. Il README ufficiale ora include un avviso che invita a scaricare REA esclusivamente da github.com/morluto/rea, dal sito rea.tools o dal pacchetto npm rea‑agents. Il link della falsa copia restituisce un errore 404.
Questo scenario è comune: un progetto diventa virale, qualcuno clona il README, aggiunge un “installer per Windows” e spera di attirare utenti meno attenti. Poiché il README originale non menziona alcun installer grafico, qualsiasi file REA.exe trovato altrove dovrebbe essere considerato potenzialmente maligno.
Cosa cambia nell’agente dopo l’installazione
Il comando npx rea‑agents setup non è una semplice installazione “neutra”. Secondo la guida di installazione, il processo modifica la configurazione dell’agente, aggiungendo percorsi verso i decompilatori, impostando variabili di ambiente e registrando i plugin MCP. L’utente deve confermare ogni modifica, ma una volta accettato, l’agente ottiene la capacità di invocare gli strumenti esterni in modo automatizzato.
Questo significa che, durante le successive richieste di retro‑ingegneria, l’agente potrà:
- Avviare Ghidra o IDA con parametri predefiniti
- Estrarre offset e segmenti di codice rilevanti
- Restituire al chiamante un report strutturato con prove verificabili
È fondamentale ricordare che i dati inviati al modello IA (ad esempio Claude Code) possono essere conservati per migliorare il servizio, secondo le policy del fornitore. Per chi ha requisiti di riservatezza assoluta, è consigliabile consultare le condizioni d’uso dell’agente scelto.
Conclusioni
REA rappresenta una svolta nella combinazione di IA e strumenti di analisi binaria, consentendo a sviluppatori e ricercatori di ottenere rapidamente prove concrete su programmi chiusi. Tuttavia, è importante distinguere tra le affermazioni verificabili – come la capacità di orchestrare decompilatori esistenti – e le iperboli – ad esempio l’idea di ricostruire il codice sorgente originale. La crescita esponenziale delle stelle su GitHub testimonia l’interesse della community, ma la qualità e la legittimità di ogni “like” rimangono da valutare.
Gli utenti devono prestare attenzione ai prerequisiti tecnici, verificare le fonti di download per evitare malware, e comprendere le limitazioni di privacy legate all’interazione con gli agenti IA. Con queste precauzioni, REA può diventare uno strumento potente per la retro‑ingegneria moderna, senza cadere in trappole di marketing fuorvianti o rischi di sicurezza.
