← Tilbage til listen

Omvendt al software: REA går op GitHub 58.000 stjerne, vrede bliver omvendt til et spørgsmål.

itadol5j

GitHub har for nylig sat ild til et andet projekt: REA. Brugeren sagde, at det var "til den 42.000 stjerne", men fra i dag (10 oktober 2026) er antallet steget. 58.000 stjerne, 11.000 gaffel- Mere end de siger. Og hvad det gør er, at du kan sige det samme: du bruger det til at vende enhver software, grave det fra ansøgning til original binær.

Omvendt engineering og ophidsende samarbejdskoncept Figur

Hvad er problemet?

Den traditionelle omvendt er "Man sidder i en counter compiler for et par dage til at læse samlingen". REA 's idé er at sætte vrede på en anti-cirkulationspumpe (original kode med Hopper, Ghidra eller IDA) og derefter forbinde til en statisk analysator for JavaScript og. NET. Angent er ansvarlig for at sætte spørgsmålstegn ved værktøjet, indsamle konklusioner og udlevere beviserne.

Dens README eksemplifier er hele salgsstedet: "Vide, hvordan søgningen i Notes ansøgning virker, vise mig beviserne, og gøre en lignende funktion for mit projekt". Du har en forklaring, en kodeplacering og en liste over, hvad du ikke ved.

Det centrale punkt er at analysere alle lokale operationer, og konklusionerne vil blive ledsaget af beviser og begrænsninger - for ikke at tillade modellen at give dig en forklaring.

ii. Hvilke mål at spise

REA har en temmelig bred støtte base, som hovedsagelig dækker fælles omvendte objekter:

  • Indfødt binær: pseudokoder, samlinger, strenge, symboler, opkald og referencer (Hopper / Ghidra / IDA kræves)
  • Offline ELF Layout: afsnit, afsnit, oprindelige symbol / ændring, kandidat til statisk afbødning
  • JavaScript / Electron: modul, import, kildekort, rute, IPC relation til primære plugin (statisk analyse uden primær motor)
  • HjemmesideSidestruktur, scripts, web observation og screenshot
  • .NET Programsamling: metadata, CIL kommandoer, erklæring om oprindelig afhængighed versus konstruktion (ren statisk)
  • Android APKListeerklæring, klasse, omvendt oversættelsesmetode og reference (behov hovedløs JADX + komplet JDK)
  • Fast: partitioner, ekstraktioner krydser med original analyse (behov Binwalk / Unblob)
  • EVM bytes, login Linux crash, HAR grabber, proces adfærdVent.

Miljøkrav: Node.js 22.x (≥ 22.19), 24.x (≥ 24.11) eller 26 +, plus npm. Understøttede agenter omfatter Claude Code, Codex, Cursor, Gemini CLI, Grok Build osv. - alle agenter, der understøtter lokale MCP servere er dybest set funktionelle. Installér en ordre:npx rea-agents setup, det vil registrere MCP server og skrive den ledsagende workflow beskrivelse, og derefter genstarte ant.

angent til omvendt værktøjskæde af MCP

Tre offentlige sager: Hvad kan det bevise?

Stjernenumre repræsenterer varme og case resultater. REA embedsmand sætte tre showscases ud af "hvad kan" og "hvad kan ikke".

Case 1: Lydfeltformel for DX- Ball

Spørgsmål: Hvordan omsatte DX- Ball i 1990 'erne murstenene til et venstre / højre lydfelt? Counter compiler er i 0x406400 Der blev kun set et ubemærket input __ftol() Opkald; manglende referencer i kommando [EBP+8]Det ved jeg ikke. Følg opkalderen 0x411f40 Koordinatformel fundet 20 + 30 × tile_x, og læs tre konstanter fra hukommelse 1.5625, 500,0 og indledende akustisk skalering 1.0.

Reglen, der i sidste ende genoprettes, er: koordinat dobbelt, ganget med 1.5625, minus 500,0, ganget med lagret akustisk felt og derefter afskåret. Zoom til 1 med venstre kant -500, centrum 0, højre kant 500. Hvad der virkelig opbygger tillid er den måde, autentificering: forfatteren kører 3205 eksempler samtidigt gennem den oprindelige x86 funktion og den nye C-version (dækker 0-640 fulde positioner, skalering 0 / 05 / 1 / 20-1), og under den faste VC 4.0 værktøj kæde bytes matches med de oprindelige 63 bytes. Hele projektrapporten fastholdt 55 C-funktioner, 45380 sammenligninger.

Det beviser det ikke.Overgangen til at forbinde lydfeltet til den bagerste ende af spillet er stadig ikke afsluttet, og det spilbare produkt er ufuldstændigt; arbejdet er bundet til en fast hash ved DX- Ball 1.07; samlingen af "genplacerede og kontrollerede konstanter afhængig af manuel gennemgang" er ikke helt automatisk.

Case 2: Hvordan man kopierer til Clip Board

Hop fra 90 'erne binær til en moderne Electron ansøgning. Spørgsmål: Notion Desktop 7.6.1 Sådan skriver du tekst og HTML til systemets udklipsholder? Sti i fire segmenter: præload script eksponeret til side clipboard.write; en wrapper kalder på nogle kanal ipcRenderer.invoke; hovedproces ipcMain.handle Modtag; elektron ved afsender clipboard.write Crash. Det samme kanalnavn på begge sider. notion:clipboard:writeDet ved jeg ikke.

To opdagelser er værd at huske: Den primære proceshåndterende vil kontrollere hvilken side der sendte anmodningen, og kun Notion har sine egne websæt til at nå udklipsholderen til at skrive -- Dette er den korrekte position, som Electron skal gælde for; den anden er, at der er et stykke data skjult i kopien, med en kommentar i HTML peger på Notion til at tilpasse mimetyper text/_notion-blocks-v3-production Lokalt lagrede blokdata. Returnerer indgangen, når indsættelse ved ID, og returnerer den oprindelige tekst + HTML, når indgangen udløber.

Det beviser det ikke.: REA 4.1.0 kun analyserer etiketten forbelastning, finde udsat API og invoke Call, wrapper indser, at forfatteren manuelt læse og forbinder kanal til modtageren; udklipsholderen konklusion er fra web ressource og saver cache af juli 13, 2026, ikke fra live desktop sessioner.

Case 3: Spilleskærm til PC- 98 spil Ring

Tilbage til 16 bit DOS kode. GERA programmet understøtter 16 bits DOS analyse. Forfatteren genopretter de faste vinkler og sigter vinkler bag en bombe gardinring, rekonstruerer dem med C + + og sammenligner dem med output af den historiske compiler. Shapes er det samme som DX- Ball: genoprette en lille brøkdel af beregningen, genopbygge det og derefter autentificere det med det oprindelige produkt, i stedet for at tro på denne forklaring.

Fire. Sæt de tre sager sammen.

  • Det er meget smalt.: en akustisk formel, en udklipsholder sti, en kugle gardinring, og ingen sag siger "genopbygge hele programmet".
  • Beviserne er vedlagt.Adresse, konstant, 3205 test, Kanal navn, gemt sonde, compiler sammenligning.
  • Alle har adgang til manuelle trin.Manuel revideret ompositioneret, manuelt læse wrapper, compiler matching.
  • Mål har faste versioner.DX- Ball 1.07 med Hash, Notion 7.6.1, original PC- 98 binær.

Dette er dagens ærlige grænse:Agent er en hurtig, utrættelig assistent til at spore individuel adfærd, og viser sig at være en test, hvorfra du kan køre igen.

Sagsvalidering og beviskæde

V. Hvad det betyder for udviklere

Hvis du laver vrede programmer, REA repræsenterer et nyt mønster: i stedet for at lade modellen "gætte" direkte om, hvordan et program kører, du sætte modellen på en professionel omvendt værktøj til at gøre det tale om beviser. Dens værdi er ikke "en nøgle vender hele softwaren", men det vil flytte den omvendte tærskel fra "læse samlinger" til "spørgsmål + validerer".

Men vær ædru to point. For det første er lokal analyse ikke det samme som datastrøm -- din vrede vil eksportere værktøjerne til modelleverandører, og datapolitikken gælder stadig. For det andet afhang beviskvaliteten af certificeringskæden, og troværdigheden i sagen blev afledt af 3205 sammenligninger og byte matching snarere end den mundtlige fortolkning af modellen.

Lokale analyse-, bevis- og autentificeringsløkker

Hvordan?

  • Miljø: Node.js 22.x (≥ 22.19) / 24.x (≥ 24.11) / 26 +, plus npm
  • Første nøgleinstallation:npx rea-agents setup, vælge din anent, gennemgå og godkende ændringer, og genstarte en anent
  • Global installation:npm install --global rea-agents, senere tilgængelig rea --help
  • Statisk JS / Electron analyse:npx -y rea-agents@latest analyze-javascript-application /abs/path --json
  • Primær analyse: prækonfiguration af udbyder (Hopper / Ghidra / IDA)
  • Opdatering:rea updateEller løbe igen. npx rea-agents@latest setup

Det modsatte er at gå fra "læse samlinger" til "spørgsmål + validering" - værktøjet har sænket tærsklen, men beviserne skal stadig testes.