Invertire tutti i software: REA sale GitHub 58.000 Star, angent si trasforma in una domanda.
GitHub ha recentemente incendiato un altro progetto: REA. L'utente ha detto che era "alla 42,000 Star", ma da oggi (10 ottobre 2026) il numero è aumentato. 58.000 stelle, 11.000 Forche- Piu' di quanto dicono. E ciò che fa è che si può dire la stessa cosa: si utilizza per invertire qualsiasi software, scavarlo da applicazione a binario originale.
I. REA: Qual è esattamente il problema?
Il rovescio tradizionale è “Uomo siede in un compilatore contatore per alcuni giorni per leggere la compilation”. L'idea di REA è di mettere angent su un anti-circulatore (codice originale con Hopper, Ghidra o IDA) e poi connettersi a un analizzatore statico per JavaScript e. NET. Angent è responsabile di mettere in discussione lo strumento, raccogliere conclusioni e restituire le prove.
Il suo esemplare README è l'intero punto di vendita: "Conosci come funziona la ricerca nell'applicazione Notes, mostrami le prove e fai una caratteristica simile per il mio progetto." Quello che hai è una spiegazione, una posizione di codice e una lista di ciò che non sai.
Il punto chiave è quello di analizzare tutte le operazioni locali, e le conclusioni saranno accompagnate da prove e limitazioni - per non permettere al modello di fare una spiegazione per voi.
Ii. Quali obiettivi per mangiare
REA ha una base di supporto piuttosto ampia, che copre essenzialmente oggetti inversa comuni:
- Nativo Binary: pseudocodici, compilazioni, stringhe, simboli, chiamate e riferimenti (Hopper/Ghidra/IDA richiesto)
- Telaio ELF Offline: paragrafi, sezioni, simbolo/reposizione originale, candidato alla mitigazione statica
- JavaScript / Electron: modulo, importazione, mappa sorgente, percorso, IPC relazione al plugin primario (analisi statica senza motore primario)
- Sito webStruttura della pagina, script, osservazione web e screenshot
- .NET Program Collection: metadati, comandi CIL, dichiarazione di dipendenza originale contro costruzione (pura statica)
- Android APKElenco di istruzione, classe, metodo di traduzione inversa e riferimento (needs headless JADX + completo JDK)
- Solido: partizioni, estrazioni intersect con analisi originale (needs Binwalk / Unblob)
- EVM bytes, login Linux crash, HAR grabs, comportamento di processoAspetta.
Requisiti ambientali: Node.js 22.x (≥22.19), 24.x (≥24.11) o 26+, più npm. Gli agenti supportati includono Claude Code, Codex, Cursor, Gemini CLI, Grok Build, ecc. - tutti gli agenti che supportano i server MCP locali sono fondamentalmente funzionali. Installare un ordine:npx rea-agents setup, registrerà il server MCP e scriverà la descrizione del flusso di lavoro di accompagnamento, e poi riavviare la formica.
Tre casi pubblici: cosa può dimostrare?
I numeri stellari rappresentano risultati di calore e caso. Il funzionario REA ha messo tre showcases da “che cosa può” e “cosa non può”.
Caso 1: Formula di campo sonoro per DX-Ball
Domanda: Come ha fatto DX-Ball negli anni '90 a tradurre la posizione orizzontale dei mattoni in un campo sonoro sinistro/destro? Il compilatore contatore è in 0x406400 Solo un ingresso non osservato è stato visto __ftol() Chiamata; riferimenti mancanti al comando [EBP+8]Non lo so. Segui il chiamante 0x411f40 Formula coordinata trovata 20 + 30 × tile_x, e leggere tre costanti dalla memoria 1.5625, 500.0 e la scala acustica iniziale 1.0.
La regola che viene eventualmente ripristinata è: coordinate doppie, moltiplicate per 1.5625, meno 500.0, moltiplicate per campo acustico memorizzato e poi tagliate. Zoom a 1 con il bordo sinistro -500, centro 0, bordo destro 500. Ciò che realmente costruisce la fiducia è il mezzo di autenticazione: l'autore esegue 3205 esempi simultaneamente attraverso la funzione x86 originale e la nuova versione C (copertura 0-640 posizioni complete, scaling 0/05/1/20-1), e sotto la catena di strumenti fissa VC 4.0 i byte sono abbinati con i 63 byte originali. L'intero rapporto di progetto ha mantenuto 55 funzioni C, 45380 confronti.
Non l'ha dimostrato.La mossa per collegare il campo sonoro all'estremità posteriore del gioco è ancora da completare, e il prodotto giocabile è incompleto; il lavoro è legato a un Hash fisso a DX-Ball 1.07; la compilazione di “spettive riposizionate e controllate che si basano sulla revisione manuale” non è completamente automatica.
Caso 2: Nozione Come copiare a scheda di clip
Salta dal binario degli anni '90 a una moderna applicazione Electron. Domanda: Notion Desktop 7.6.1 Come scrivere testo e HTML alla scheda di sistema? Percorso in quattro segmenti: script precarico esposto alla pagina clipboard.write; un wrapper che chiama su qualche canale ipcRenderer.invoke; processo principale ipcMain.handle Ricevi; elettrone dal mittente clipboard.write Crash. Lo stesso nome del canale su entrambi i lati. notion:clipboard:writeNon lo so.
Due scoperte meritano di essere ricordate: il principale gestore di processo verificherà quale pagina ha inviato la richiesta, e solo Notion ha i propri set web per raggiungere il clipboard per scrivere -- Questa è la posizione corretta per cui Electron dovrebbe applicare; la seconda è che c'è un pezzo di dati nascosto nella copia, con un commento in HTML che punta a Notion per personalizzare i mimetipi text/_notion-blocks-v3-production Dati di blocco memorizzati localmente. Reverte l'ingresso quando incolla per ID, e restituisce il testo originale +HTML quando la voce scade.
Non l'ha dimostrato.: REA 4.1.0 analizza solo il precarico dell'etichetta, trova le API esposte invoke Call, wrapper si rende conto che l'autore legge e collega manualmente Channel al destinatario; la conclusione del clipboard è dalla risorsa web e salvatrice cache del 13 luglio 2026, non da sessioni desktop dal vivo.
Caso 3: Schermo per PC-98 giochi Anello
Torna al codice DOS a 16 bit. Il programma GERA supporta 16 bit di analisi DOS. L'autore ripristina gli angoli fissi e punta gli angoli dietro un anello della tenda della bomba, li ricostruisce con C++ e li confronta con l'uscita del compilatore storico. Le forme sono le stesse di DX-Ball: ripristinare una piccola frazione del calcolo, ricostruirlo e poi autenticarlo con il prodotto originale, invece di credere in quella spiegazione.
Quattro. Metti insieme i tre casi.
- E' molto stretto.: una formula acustica, un percorso di appunti, un anello della tenda del proiettile, e nessun caso dice "ricostruire l'intera applicazione".
- Le prove sono attaccate.Indirizzo, costante, 3205 test, Nome canale, sonda memorizzata, confronto compilatore.
- Tutti ammessi ai passaggi manuali.Riposizionato manualmente, involucro di lettura manuale, corrispondente compilatore.
- Gli obiettivi hanno versioni fisse.DX-Ball 1.07 con Hash, Notion 7.6.1, originale PC-98 binario.
Questa è l'onesta frontiera di oggi:L'agente è un assistente rapido e instancabile per monitorare il comportamento individuale, e dimostra di essere un test da cui è possibile eseguire di nuovo.
V. Cosa significa per gli sviluppatori
Se si sta facendo applicazioni angent, il REA rappresenta un nuovo modello: invece di lasciare che il modello "ospite" direttamente su come funziona un programma, si mette il modello su uno strumento inverso professionale per farlo parlare su prove. Il suo valore non è "una chiave invertisce l'intero software", ma sta per spostare la soglia inversa da "leggi compilation" a "questione + convalida".
Ma essere sobrio due punti. In primo luogo, l'analisi locale non è la stessa del flusso di dati -- il vostro angent esportare gli strumenti per modellare fornitori, e la politica dei dati si applica ancora. In secondo luogo, la qualità delle prove dipendeva dalla catena di certificazione, e la credibilità nel caso è stata derivata dai confronti 3205 e byte corrispondenza piuttosto che l'interpretazione orale del modello.
Come farlo?
- Ambiente: Node.js 22.x (≥22.19)/ 24.x (≥24.11)/ 26+, più npm
- Prima installazione chiave:
npx rea-agents setup, selezionare l'antenna, rivedere e approvare le modifiche, e riavviare un'antenna - Installazione globale:
npm install --global rea-agents, più tardi disponibilerea --help - Analisi statica JS/Electron:
npx -y rea-agents@latest analyze-javascript-application /abs/path --json - Analisi primaria: preconfigurazione del fornitore (Hopper/Ghidra/IDA)
- Aggiornamento:
rea updateO scappa di nuovo.npx rea-agents@latest setup
Il rovescio si sta spostando da "read compilation" a "question + validation" - lo strumento ha abbassato la soglia, ma le prove devono ancora essere testate.