REA: Lass KI-Agenten Software ohne Quellcode analysieren

Das Open-Source-Projekt REA (Reverse Engineer Anything) bindet Tools zur Reverse-Engineering-Analyse an KI-Programmieragenten wie Claude Code, Codex und Cursor an. Entdeckst du in der App eines anderen eine nützliche Funktion, kannst du einen Agenten das Programm untersuchen lassen. Er erklärt dann anhand von Belegen, wie die Funktion implementiert ist, und kann etwas Ähnliches in deinem eigenen Projekt schreiben. Reverse Engineering bedeutet, ohne den Quellcode zu arbeiten und aus einem kompilierten Programm abzuleiten, wie es geschrieben wurde.

REA selbst ist ein MCP-Dienst. MCP ist eine allgemeine Schnittstelle, über die KI-Agenten externe Tools aufrufen können. Nach der Anbindung können Agenten die Analysefunktionen von REA direkt im Dialog nutzen. Die Installation erfordert nur den Befehl npx rea-agents setup. REA wird damit bei Agenten wie Claude Code, Codex, Cursor, Gemini CLI und Grok Build registriert. Bevor Konfigurationen geändert werden, erstellt das Programm eine Sicherung und bittet um deine Bestätigung. Du kannst die Befehle auch direkt im Terminal ausführen, wenn du keinen Agenten verwendest.

Es lassen sich viele Arten von Programmen analysieren. Für native Programme (Software, die direkt in Maschinencode kompiliert wurde) kommen Disassembler wie Hopper, Ghidra oder IDA zum Einsatz. Sie wandeln Maschinencode in Assembler und Pseudocode um, der C ähnelt. Electron-Anwendungen (Desktop-Software auf Basis von Webtechnologien, etwa Notion) lassen sich direkt analysieren, indem man das ASAR-Archiv im Installationspaket entpackt und Module sowie die Kommunikation zwischen Prozessen nachvollzieht – dafür sind keine zusätzlichen Tools nötig. Außerdem werden .NET-Programme, Android-APKs, Firmware, Websites, Mitschnitte von Netzwerkverkehr, Bytecode von Ethereum-Smart-Contracts sowie die Aufzeichnung des Laufzeitverhaltens von Programmen unter Linux und macOS unterstützt.

Die Analyse findet lokal statt. REA lädt das Zielprogramm nicht hoch, aber die Analyseergebnisse werden an den Anbieter des Modells weitergegeben, das hinter dem Agenten steht. Wie die Daten verarbeitet werden, hängt von den Richtlinien des jeweiligen Anbieters ab.

Das Projekt stellt drei Beispiele vor. Das erste ist das klassische Breakout-Spiel DX-Ball: Ausgehend von einem Aufruf zur Wiedergabe eines Soundeffekts wird die Funktion aufgespürt, die anhand der Ballposition die Verteilung des Tons auf den linken und rechten Kanal berechnet. Unvollständiger Pseudocode wird in C-Code rekonstruiert; die Ergebnisse von 3.205 Tests stimmen mit dem Original überein, und auch die kompilierten 63 Bytes sind exakt identisch mit dem Original. Das zweite Beispiel ist die Desktop-Version von Notion: Der gesamte Weg des Kopierens und Einfügens wird von der Oberfläche über Preload-Skripte und die Kommunikation zwischen Prozessen bis zum Hauptprozess verfolgt. Das dritte Beispiel ist das Spiel „Touhou Fuumaroku“ (TH04) für den japanischen Heimcomputer PC-98: Aus 16-Bit-Befehlen wird der Winkelalgorithmus für einen Ring aus Projektilen rekonstruiert.

Für Sicherheitsforscher sowie Menschen, die alte Spiele nachbilden oder Software bewahren, bedeutete das bisher, Disassembler selbst Zeile für Zeile zu lesen und Aufrufketten Schicht für Schicht nachzuverfolgen. Jetzt kann zunächst ein Agent die Spur verfolgen, während der Mensch die angeführten Belege überprüft. Auch gewöhnliche Entwickler erhalten so eine weitere Möglichkeit, herauszufinden, wie Wettbewerber bestimmte Funktionen umgesetzt haben.

Laut README hat das Projekt auf GitHub bereits 50.000 Sterne. Das npm-Paket wurde erstmals im Juli dieses Jahres veröffentlicht; die neueste Version 6.3.0 ist heute erschienen.

Beachte vor der Verwendung zwei Dinge. Das Projekt erklärt, dass es ausschließlich rechtmäßige Reverse-Engineering-Forschung unterstützt. Für Genehmigungen und die Einhaltung geltender Vorschriften sind die Nutzer selbst verantwortlich. Reverse Engineering an fremder Software kann gegen Nutzungsbedingungen oder Urheberrechtsgesetze verstoßen. Außerdem stellt das Projekt klar, dass es niemals eine Kryptowährung herausgegeben oder unterstützt hat. Tokens, die den Namen REA verwenden, stehen in keiner Verbindung zum Projekt.

https://github.com/morluto/rea