← Înapoi la listă

Reverse toate software-ul: REA merge în sus GitHub 58.000 Star, agent se transformă invers într-o întrebare.

itadol5j

GitHub a dat recent foc unui alt proiect: REA. Utilizatorul a spus că era "la Steaua 42.000," dar începând de astăzi (10 octombrie 2026) numărul a crescut. 58.000 Star, 11.000 Furcă- Mai mult decât se spune. Și ceea ce face este că puteți spune același lucru: îl utilizați pentru a inversa orice software, săpa de la aplicație la binar original.

Figura Inginerie inversă și colaborare angentă

I. REA: Care este mai exact problema?

Inversul tradiţional este Ideea REA este de a pune agent pe un anti-cerculator (cod original cu Hopper, Ghidra sau IDA) și apoi de a conecta la un analizor static pentru JavaScript și. NET. Angen este responsabil pentru interogarea instrumentului, colectarea concluziilor și predarea dovezilor.

Exemplificatorul său README este întregul punct de vânzare: "Știi cum funcționează căutarea în aplicația Notes, arată-mi dovezile, și de a face o caracteristică similară pentru proiectul meu." Ai o explicaţie, o locaţie codată şi o listă cu ce nu ştii.

Ideea cheie este de a analiza toate operaţiunile locale, iar concluziile vor fi însoţite de dovezi şi limitări - pentru a nu permite modelului să vă ofere o explicaţie.

ii. Care ţinte să mănânce?

REA are o bază de sprijin destul de largă, care acoperă în esență obiecte comune inverse:

  • Binar nativ: pseudocoduri, compilații, șiruri de caractere, simboluri, apeluri și referințe (Hopper/Ghidra/IDA necesar)
  • Aranjament ELF offline: paragrafe, secțiuni, simbol original/repoziție, candidat static de atenuare
  • JavaScript / Electron: modul, import, sursă Hartă, rută, relaţie IPC cu modulul primar (analiză statică fără motor primar)
  • Site webStructura paginii, scripturi, observare web si capturi de ecran
  • .NET Colectarea programului: metadate, comenzi CIL, declarația de dependență originală față de construcție (pură statică)
  • Android APKDeclaraţie de listă, clasă, metodă de traducere inversă şi referinţă (nevoi fără cap JADX + JDK complet)
  • Solid: partiții, extracție intersectează cu analiza originală (nevoi Binwalk / Unblob)
  • EVM bytes, login Linux crashies, HAR apuca, comportament procesStai.

Cerințe de mediu: Node.js 22.x (≥22.19), 24.x (≥24.11) sau 26+, plus npm. Printre agenții sprijiniți se numără Codul Claude, Codex, Cursor, Gemini CLI, Grok Build etc. - orice agenți care susțin serverele locale MCP sunt practic funcționale. Instalați o comandă:npx rea-agents setup, va înregistra serverul MCP și va scrie descrierea fluxului de lucru de însoțire, și apoi reporniți furnica.

Angent to reverse tool chain by MCP

Trei cazuri publice: ce poate dovedi?

Numerele de stele reprezintă căldură și rezultate de caz. Oficialul REA a scos trei vitrine din "Ce poate" şi "Ce nu poate."

Cazul 1: Formula de câmp sonor pentru DX-Ball

Întrebare: Cum a tradus DX-Ball în anii 1990 poziția orizontală a cărămizilor într-un câmp sonor stânga/dreapta? Compilatorul contor este în 0x406400 O singură intrare neobservată a fost văzută. __ftol() Apel; referințe lipsă la comandă [EBP+8]Nu ştiu. Urmăreşte apelantul. 0x411f40 Formula de coordonate găsită 20 + 30 × tile_x, și citiți trei constante din memorie 1.5625, 500.0 și scalare acustică inițială 1.0.

Regula care este restaurată în cele din urmă este: coordonate duble, înmulțite cu 1.5625, minus 500.0, înmulțite cu câmpul acustic stocat și apoi tăiate. Măreşte la 1 cu marginea stângă -500, centru 0, margine dreaptă 500. Ceea ce construiește cu adevărat încrederea este mijlocul de autentificare: autorul rulează 3205 exemple simultan prin funcția originală x86 și noua versiune C (acoperind 0-640 poziții complete, scalare 0/05/1/20-1), iar sub lanțul de instrumente VC 4.0 fixe octeții sunt potriviți cu 63 octeți originali. Întregul raport de proiect a menținut 55 de funcții C, 45380 de comparații.

Nu a dovedit-o.Mutarea pentru a conecta câmpul de sunet la partea din spate a jocului este încă să fie finalizată, iar produsul redat este incomplet; lucrarea este legată de un hash fix la DX-Ball 1.07; compilarea de constante repoziționate și verificate bazat pe recenzie manuală.

Cazul 2: Noţiune Cum de a copia la bord clip

Sari din binarul anilor '90 la o aplicaţie modernă de electroni. Întrebare: Notion Desktop 7.6.1 Cum se scrie text și HTML la clipboard-ul de sistem? Calea în patru segmente: script preîncărcat expus la pagina clipboard.write*A wrapper calling on some channel ipcRenderer.invoke;proces principal ipcMain.handle Primire; electron prin expeditor clipboard.write Crash. Acelaşi nume de canal de pe ambele părţi. notion:clipboard:writeNu ştiu.

Două descoperiri merită amintite: principalul handler de proces va verifica care pagină a trimis cererea, și numai Notion are propriile seturi web pentru a ajunge la clipboard pentru a scrie - Aceasta este poziția corectă pentru care Electron ar trebui să se aplice; al doilea este că există o bucată de date ascunse în copie, cu un comentariu în HTML care indică la Notion pentru a personaliza mimetypes text/_notion-blocks-v3-production Date de bloc stocate local. Returnează intrarea la lipire prin ID, și returnează textul original +HTML atunci când intrarea expiră.

Nu a dovedit-o.: REA 4.1.0 analizează numai preîncărcarea etichetei, găsește API expusă și invoke Call, wrapper își dă seama că autorul a citit manual și conectează canalul la destinatar; concluzia clipboard-ului este de la resursa web și cache-ul de salvare din 13 iulie 2026, nu de la sesiuni live desktop.

Cazul 3: Playscreen pentru PC-98 jocuri inel

Înapoi la codul de 16 biți DOS. Programul GERA suportă 16 biți de analiză DOS. Autorul restabilește unghiurile fixe și vizează unghiurile din spatele unui inel de cortină bombă, le reconstruiește cu C++ și le compară cu ieșirea compilatorului istoric. Formele sunt identice cu DX-Ball: restaurează o mică parte din calcul, reconstruiește-l și apoi autentifică-l cu produsul original, în loc să creadă în această explicație.

Patru. Pune cele trei cazuri împreună.

  • E foarte îngust.: o formulă acustică, o cale clipboard, un inel de perdea glonț, și nici un caz spune rebuild întreaga aplicație.
  • Dovezile sunt ataşate.Adresa, constant, 3205 teste, numele canalului, sonda stocată, comparaţia compilatorului.
  • Toate admise la pași manuali.Repoziţionat manual, ambalaj citit manual, potrivire compilator.
  • Ţintele au versiuni fixe.DX-Ball 1.07 cu Hash, Notion 7.6.1, original PC-98 binar.

Aceasta este frontiera cinstită de astăzi:Agent este un asistent rapid, neobosit pentru a urmări comportamentul individual, și se dovedește a fi un test de la care puteți rula din nou.

Validarea cazurilor și lanțul de probe

V. Ce înseamnă pentru dezvoltatori

Daca faceti aplicatii angente, REA reprezinta un nou model: in loc sa lasati modelul "ghiceste" direct despre cum functioneaza un program, puneti modelul pe un instrument profesional invers pentru a-l face sa vorbeasca despre dovezi. Valoarea sa nu este "o cheie inversează întregul software," ci va muta pragul invers de la "citeşte compilaţiile" la "întrebare + validează."

Dar fii treaz două puncte. În primul rând, analiza locală nu este aceeaşi cu fluxul de date -- agentul dumneavoastră va exporta instrumentele pentru modelarea furnizorilor, iar politica de date încă se aplică. În al doilea rând, calitatea probelor depindea de lanțul de certificare, iar credibilitatea în acest caz a fost determinată de comparațiile 3205 și de corelarea octet-urilor, mai degrabă decât de interpretarea orală a modelului.

Bucle de analiză locală, probe și autentificare

Cum se face?

  • Mediu: Node.js 22.x (≥22.19)/ 24.x (≥24.11)/ 26+, plus npm
  • Prima instalare cheie:npx rea-agents setup, selectați anent, revizuiți și aprobați modificările, și reporniți un anent
  • Instalare globală:npm install --global rea-agents, mai târziu disponibil rea --help
  • Analiza statică JS/Electron:npx -y rea-agents@latest analyze-javascript-application /abs/path --json
  • Analiza primară: preconfigurarea furnizorului (Hopper/Ghidra/IDA)
  • Actualizare:rea updateSau fugi din nou. npx rea-agents@latest setup

Reversul trece de la "citeşte compilarea" la "întrebare + validare" - instrumentul a coborât pragul, dar dovezile trebuie încă testate.