Auf dieser Seite

Reverse Engineering mit Ihrem Codierungsagenten

Finde heraus,
wie Software funktioniert.

REA gibt deinem Coding-Agent die Werkzeuge, um ein Programm zu untersuchen und sein Verhalten zu erklären.

Kennen Sie RE schon? Zu den Analysehandbüchern springen →

Willst du tiefer gehen? Lesen Sie den Blog →

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.

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

Was ist Reverse Engineering?

Herausfinden, wie Software funktioniert, indem man das Programm selbst untersucht.

Das Ziel: ein Feature gut genug verstehen, um erkläre es, ändern Sie es oder bauen Sie es wieder auf.

Zum Beispiel: Warum ergibt 200 + 10% im Rechner 220?

Vor REA · Du untersuchst es selbst

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.

Mit REA · Du fragst deinen Agent

Ein einziger Prompt.

Frag deinen Agent in ganz normalen Worten.

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 aus. Ändere die Geschwindigkeit eines Spiels, kehre dann zum Taschenrechner zurück und baue die%-Schaltfläche neu auf.

Beispiel 01 * Dinosaurier-Spiel von Chrome

Warum wird der Dinosaurier schneller?

Ziel
Baue das Spiel mit neu auf einstellbare Geschwindigkeit.
Warum es zurückentwickeln?
Um seine Beschleunigung zu reproduzieren, brauchen wir die Regel im laufenden Spiel: wie schnell es beginnt, wie stark es zunimmt und wann es aufhört.

Den Nachbau spielen

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.

REA hat zurückgegeben

Das Skript, das tatsächlich auf der Seite ausgeführt wird. Der Agent liest seine Aktualisierungsfunktion und Geschwindigkeitseinstellungen und verwendet diese Regel dann in einem neuen Spiel.

Beispiel Prompt * Dinosaurier-Spiel

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.

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.

Öffnen Sie das Geschwindigkeitslabor →

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.
Sehen Sie sich das Skript, die Überprüfungen und das Ausprobieren der Analyse an

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.

Wir haben gesehen warum 200 + 10% ergibt 220. Lassen Sie uns nun die Regeln für + und × wiederherstellen und ausprobieren.

Ziel
Erstellen Sie einen kleinen Taschenrechner, der funktioniert sowohl + als auch × korrekt.
Warum es zurückentwickeln?
Die gleiche Schaltfläche verwendet unterschiedliche Regeln nach + und ×. Wir überprüfen die installierte App, um herauszufinden, auf welche Zahl der Prozentsatz angewendet wird.

Probieren Sie die Berechnung aus

200 + 20

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

Interaktive Darstellung der geprüften Prozentregel.

REA hat zurückgegeben

Ein Zweig teilt sich durch 100. Die andere multipliziert sich auch mit der ersten Zahl. Der Agent verwendet beide, um die% -Schaltfläche neu zu erstellen.

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

Beispiel-Eingabeaufforderung * Erstellen Sie die %-Schaltfläche neu

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.

Lesbare Zusammenfassung des % -Handlers
if (operation == multiply || operation == divide) {
  percent = current / 100;
} else {
  percent = current * previous / 100;
}
Mit +
Nimm 10% der ersten Zahl.10% of 200 = 20 → 200 + 20 = 220
Mit ×
Verwandle 10% in 0,1.200 × 0.1 = 20

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 ×.
Sehen Sie sich den echten Code an und wie die Antwort überprüft wurde
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

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

Möchtest du tiefer einsteigen?

Sagen Sie Ihrem Agenten, was Sie verstehen oder bauen möchten. Mit REA können Sie an allem zusammenarbeiten, von klonen dieser Website zu rekonstruieren eines Spiels aus seiner ausführbaren Datei.

Beispiel Eingabeaufforderung * Website

Verwenden Sie REA zum Überprüfen https://reverseengineeranything.app/. 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 →

Wählen Sie für Einrichtungs- und Analyseschritte Ihr Ziel aus:

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

Noch Fragen?

Lesen Sie die FAQ, chatten Sie mit uns auf Discord , oder öffnen Sie eine GitHub-Ausgabe für Fehler und Funktionswünsche.

Zur Community

Teilen Sie Untersuchungen mit und holen Sie sich Hilfe von anderen REA-Benutzern auf Discord. Folgen Sie REA auf X für Projektaktualisierungen.

Oberen