Auf dieser Seite

Reverse Engineering mit Ihrem Codierungsagenten

Finde heraus,
wie Software funktioniert.

Frag deinen Coding-Agenten nach einer App, einem Spiel oder einer Website. REA gibt ihm die Werkzeuge, um den Code hinter der Antwort zu untersuchen.

Einrichten von REA

Kopiere diesen Prompt in deinen Coding-Agent:

Ihr Codierungsagent

Installiere REA mit npx rea-agents@latest setup und verbinde es mit diesem Coding-Agent. Zeige mir zuerst die geplanten Änderungen und warte auf meine Zustimmung. Prüfe anschließend die Installation.

Oder führe diesen Befehl im Terminal aus:

npx rea-agents@latest setup

Prüfe und bestätige die geplanten Änderungen. Starte danach deinen Agent neu.

Weitere Installationsoptionen: curl →

Zum ersten Mal oder vermisst Node.js oder ein Kodierungsagent? Befolgen Sie die Schritt-für-Schritt-Anleitung zur Einrichtung →

So funktioniert es

Reverse Engineering heißt, Software zu verstehen, indem man das Programm selbst untersucht. Mit REA kann dein Agent dem Code folgen, eine Funktion erklären und dir helfen, sie nachzubauen.

  1. Nach einer Funktion fragen

    Gib deinem Agenten ein Programm oder eine Seite und eine Frage.

  2. Das Programm untersuchen

    REA liefert Code, Referenzen und Beobachtungen zur Laufzeit.

  3. Verstehen, dann etwas ändern

    Dein Agent nutzt die Ergebnisse, um die Funktion zu erklären oder nachzubauen.

Die vollständige Taschenrechner-Untersuchung ansehen

Warum ergibt 200 + 10% im Taschenrechner 220?

Die Anweisungen Schritt für Schritt verfolgen

Original x64 * ausgewählte Anleitung
0x180124945: MOV EAX, dword ptr [R13 + 0x18]
0x180124949: CMP EAX, 0x5c
0x18012494c: JZ 0x180124aba
0x180124952: CMP EAX, 0x5b
0x180124955: JZ 0x180124aba
0x18012495b: MOV EDX, 0x64
0x180124960: LEA RCX, [RSP + 0x160]
0x180124968: CALL 0x180122650
0x18012496e: LEA RDX, [R13 + 0x160]
0x180124975: LEA RCX, [RSP + 0x78]
0x18012497a: CALL 0x180109720
0x18012497f: MOV RSI, RAX
0x180124982: MOV qword ptr [RSP + 0x28], RAX
0x180124987: LEA RDX, [RSP + 0x160]
0x18012498f: MOV RCX, RAX
0x180124992: CALL 0x180123190
; … value-copy instructions omitted …
0x180124a14: MOV RDX, RDI
0x180124a17: LEA RCX, [RSP + 0xf8]
0x180124a1f: CALL 0x180109720
0x180124a24: LEA R8, [RSP + 0x30]
0x180124a29: MOV RDX, RAX
0x180124a2c: LEA RCX, [RSP + 0xb8]
0x180124a34: CALL 0x180123c10

Sie entschlüsseln die Anweisungen, folgen den Funktionsaufrufen und rekonstruieren die Berechnung.

Dem Agenten dieselbe Frage stellen

Beispiel Eingabeaufforderung * Rechner

Verwenden REA inspizieren Windows Rechner. Warum ergibt 200 + 10% 220?

Beispielantwort * basierend auf den Ergebnissen

Nach + nimmt die% -Taste ein Prozentsatz der ersten Zahl.

10% of 200 = 20200 + 20 = 220
REA liefert
Die Anweisungen des Handlers, dekompilierter Code und Aufrufe.
Dein Agent erklärt
Welcher Zweig gilt, was er berechnet und wie er neu erstellt wird.
Ausgewählte Baugruppe aus der installierten Taschenrechner-DLL. Die Gedanken und Antworten veranschaulichen die Ergebnisse. Fahren Sie mit dem Taschenrechnerbeispiel fort ↓

Probieren wir zwei Beispiele: die Geschwindigkeit eines Spiels ändern und die %-Taste des Taschenrechners nachbauen.

Beispiel 01 * Dinosaurier-Spiel von Chrome

Warum wird der Dinosaurier schneller?

Das Spiel wird schneller, während du läufst. Um es mit einer Geschwindigkeitssteuerung nachzubauen, müssen wir zuerst verstehen, wie sich die Geschwindigkeit ändert.

1. Nach der Geschwindigkeit fragen

Beispielfrage · Dinosaurierspiel

Verwenden Sie REA, um dieses Dinosaurierspiel zu inspizieren. Warum wird es schneller? Zeigen Sie die Geschwindigkeitsregel an und bauen Sie dann eine kleine Version mit einstellbarer Geschwindigkeit.

2. Die Geschwindigkeitsregel finden

Mit REA kann der Agent den laufenden Spielcode lesen. Die Geschwindigkeit beginnt bei 6 und steigt bei jeder Aktualisierung ein wenig, solange sie unter 13 liegt.

3. Das Ergebnis spielen

Wir haben diese Regel im Minispiel unten nachgebaut und einen Geschwindigkeitsregler ergänzt. Drücke Spielen und wähle dein Tempo.

6 → 10 → 13

Ursprüngliche Regel: Beginnen Sie bei 6 und erhöhen Sie sich dann in Richtung 13.

Bewegen Sie den Schieberegler, um Ihre eigene Geschwindigkeit einzustellen. Leertaste oder Sprung löscht einen Kaktus.
Öffnen Sie das Geschwindigkeitslabor →
Sehen Sie sich das Skript, die Überprüfungen und das Ausprobieren der Analyse an

Untersuchtes Ziel: wayous von Chromium abgeleitete Browser-Edition.

REA * geladen index.js * ausgewählte Linien
if (this.currentSpeed < this.config.MAX_SPEED) {
  this.currentSpeed += this.config.ACCELERATION;
}

Beginnen Sie bei 6. Hinzufügen 0.001 jedes Update ohne Kollision, während die Geschwindigkeit darunter liegt 13.

Was jeder Teil tut

  1. 01 · REA Lesen Sie das Skript des laufenden SpielsGeben Sie den tatsächlichen Code und die Einstellungen an den Agenten zurück.
  2. 02 · Ihr AgentErstellen Sie die Regel neu, fügen Sie ein Steuerelement hinzuVerwenden Sie die wiederhergestellte Beschleunigung in einem kleinen Spiel mit einem Geschwindigkeitsregler.
  3. 03 · SieÄndern Sie die Geschwindigkeit und spielen SieProbieren Sie die ursprüngliche Beschleunigung aus und wählen Sie dann Ihr eigenes Tempo.

REA überprüfte die HTTP-Browser-Edition über eine lokale Debugging-Verbindung und gab das geladene zurück index.js, einschließlich seiner Quelle und Verdauung.

Ausgewählte Einstellungen aus dem überprüften Skript
ACCELERATION: 0.001,
MAX_SPEED: 13,
SPEED: 6

Wir haben die Update-Funktion des Originalspiels in einem kontrollierten Browser-Check aufgerufen, bei dem Hindernisse und die automatische Zeitplanung deaktiviert waren. Nach 4.000 Aktualisierungen betrug die Geschwindigkeit 10,0; Nach 10.000 war es 13,0, auf eine Dezimalstelle gerundet.

Das neue Minispiel hält diese Geschwindigkeitsregel ein. Sein Zeichen-, Sprung- und Kollisionscode ist eine kleine Unterrichtsimplementierung. Öffnen Sie das Labor um den neuen Code zu sehen und die gleiche Geschwindigkeitsprüfung durchzuführen.

Um das Ziel selbst zu inspizieren, folgen Sie den Anweisungen schritte zur Browser-Verbindung wobei die Dinosaurier-Seite. Geben Sie Ihrem Agenten die Seiten-URL und Ihren lokalen Debugging-Endpunkt an und kopieren Sie dann die obige Eingabeaufforderung.

Geprüfter Geschwindigkeitscode · Chromium Autoren * BSD-Lizenz

Beispiel 02 * Windows Rechner

Die %-Taste des Rechners nachbauen.

Die %-Taste verhält sich nach + und × unterschiedlich. Finden wir beide Regeln und probieren sie in einem kleinen Taschenrechner aus.

1. Nach der %-Taste fragen

Beispielfrage · Taschenrechner

Verwenden Sie REA, um die% -Schaltfläche des Windows-Rechners zu überprüfen. Stellen Sie die Regeln nach + und × wieder her und erstellen Sie dann einen kleinen Taschenrechner, der beide verwendet.

2. Beide Regeln finden

REA hilft dem Agenten, den Code hinter der %-Taste zu lesen. Er wendet zwei unterschiedliche Regeln an:

Mit +
Nimm 10% der ersten Zahl.10% of 200 = 20 → 200 + 20 = 220
Mit ×
Verwandle 10% in 0,1.200 × 0.1 = 20

3. Die %-Taste ausprobieren

Wir haben beide Regeln unten nachgebaut. Wähle + oder ×, drücke % und dann =.

200 + 20

10% von 200 = 20. Dann ist 200 + 20 = 220.

Interaktive Darstellung der geprüften Prozentregel.
Sehen Sie sich den echten Code an und wie die Antwort überprüft wurde

Für dieses Beispiel, previous = 200 und current = 10.

Lesbare Zusammenfassung des % -Handlers
if (operation == multiply || operation == divide) {
  percent = current / 100;
} else {
  percent = current * previous / 100;
}

Von der installierten App zu einer funktionierenden% -Schaltfläche

  1. 01 * REA liest calc.exeEs startet die Taschenrechner-AppDer Code öffnet sich ms-calculator:. Der Agent wählt dann die Bibliothek der installierten App aus.
  2. 02 * REA liest die BibliothekGeben Sie den Code des% -Handlers zurückDie Funktion überprüft den Operator und verwendet die Konstante 100.
  3. 03 · Ihr Agent interpretiert esErklären und reproduzieren Sie die RegelnÜberprüfen Sie den Zweig mit der Quelle von Microsoft und versuchen Sie dann oben + und ×.
REA * ausgewählte Originalanleitung
0x180124945: MOV EAX, dword ptr [R13 + 0x18]
0x180124949: CMP EAX, 0x5c
0x18012494c: JZ 0x180124aba
0x180124952: CMP EAX, 0x5b
0x180124955: JZ 0x180124aba
0x18012495b: MOV EDX, 0x64
Betreiber-IDs * Quelle von Microsoft
#define IDC_MUL 92      // 0x5c
#define IDC_DIV 91      // 0x5b
#define IDC_PERCENT 118 // 0x76

0x64 = 100

Geprüft mit REA 4.1.0: Windows-Rechner 11.2508.4.0, x64. Die lesbare Zusammenfassung verwendet Namen aus der öffentlichen Quelle von Microsoft, um den wiederhergestellten Zweig zu erläutern.

Prozentuale Umsetzung · Testfälle von Microsoft · Anleitung zur nativen Einrichtung

REA Fallstudien.

Entdecke eine Funktion in einer veröffentlichten App oder einem Spiel, mit Code und geprüften Ergebnissen.

Präsentieren →

Androide * APK Analyse

Wie ein Authentifikator einen Anmeldecode generiert

Verfolge den sechsstelligen Anmeldecode von Aegis in der veröffentlichten APK. Bewege dann die Demo-Uhr und sieh, warum er sich alle 30 Sekunden ändert.

Lesen Sie die Android-Fallstudie

Electron * Merkmalsverfolgung

Wie Notion Text und HTML kopiert

Folge Notions gebündeltem JavaScript bis zur Systemzwischenablage und sieh, wie eine Kopie strukturierte Blockdaten bewahrt.

Lesen Sie die Notion-Fallstudie

Einheimische * Rekonstruktion

DX-BallS Berechnung der linken / rechten Klangposition

Rekonstruiere, wie die Ballposition in einem Windows-Spiel von 1996 zum linken oder rechten Ton wird.

Lesen Sie die DX-Ball-Fallstudie

Ihre erste Untersuchung

Probieren Sie REA mit einer kleinen App aus.

Laden Sie unser Notizbeispiel herunter, verfolgen Sie den Export von CSV und überprüfen Sie eine geänderte Eingabe.

Probieren Sie das geführte Beispiel aus

Wähle dein Ziel.

Diese Anleitungen behandeln die Einrichtung und eine erste Untersuchung für jede Art von Software.

Maschinencode-Programme

Überprüfen Sie Funktionen, Zeichenfolgen, Referenzen und Funktionsaufrufbeziehungen in ausführbaren Dateien und Bibliotheken.

Handbuch zur Analyse von Maschinencode-Programmen

Modell: JavaScript und Electron

Ordnen Sie Module, Routen, IPC und native Abhängigkeiten aus einem Anwendungsordner oder einem ASAR-Archiv zu.

Anwendungs-Workflows

Browser- & Laufzeit-Aktivität

Erfassen Sie ausgewählte Browser- oder Prozessaktivitäten und vergleichen Sie dann die Ergebnisse über Läufe hinweg.

Anleitung zur Browserbeobachtung
Ein größeres Projekt ausprobieren
Beispiel Eingabeaufforderung * Website

Verwenden Sie REA zum Überprüfen https://rea.tools/. Klonen Sie diese Website für mich.

Ja, das hier.

Beispiel-Eingabeaufforderung * Spielrekonstruktion

Verwenden Sie REA, um dieses Spiel aus seiner ausführbaren Datei zu rekonstruieren. Stellen Sie die Gameplay-Logik in C wieder her und testen Sie sie gegen das Original.

Siehe die Fallstudie DX-Ball →

Noch Fragen?

Oberen