RHEA
Projektbeschreibung · Stand 17. Oktober 2026

RHEA

Retargetable Headless Executable Analyzer

Reverse Engineering für KI-Agenten: Ein Agent stellt eine konkrete Frage an ein Programm, RHEA beantwortet sie über mehrere Analyseverfahren hinweg und legt jeden Befund mit Belegen offen. Die statische Tiefenanalyse übernimmt die Rhea Engine, eine eigenständig weiterentwickelte, rein headless Ableitung von Ghidra, die fest in RHEA integriert ist.

Phase 0 abgeschlossen GUI-Ausbau der Engine läuft Umbenennung REA → RHEA geplant

Überblick

RHEA ist ein Produkt aus zwei Technologie-Stacks in einem Repository. Die Agentenschicht spricht mit KI-Agenten, die Engine analysiert Maschinencode. Beide sind über einen versionierten Vertrag verbunden und lassen sich unabhängig bauen, testen und ausliefern.

KI-Agent oder Mensch Claude Code, weitere MCP-Clients, Kommandozeile
↓ MCP (Model Context Protocol) oder CLI
RHEA-Agentenschicht TypeScript, Node.js · über 200 Werkzeuge · Evidence-Ledger, Untersuchungen, Sitzungen · Laufzeitquellen wie Frida, Browser-Beobachtung und Prozessaufzeichnung · eigene Parser für JavaScript, .NET, WebAssembly, EVM, Firmware, SQLite, Netzwerkmitschnitte
↓ JSON-Vertrag über lokalen Socket
Rhea Engine Java und C++ · abgeleitet von Ghidra 12.1.4 · Decompiler, Sleigh-Prozessormodelle, Loader für ELF, PE, Mach-O und viele weitere Formate, Analyzer · ausschließlich headless

Ein Analysewerkzeug

Für statische Binäranalyse gibt es genau einen Tiefenanalysator, die Rhea Engine. Hopper, IDA, JEB, Cutter, Rizin und objdump werden schrittweise ersetzt, sobald die Engine die jeweils genutzte Fähigkeit nachweislich abdeckt.

Belege statt Behauptungen

Jede Antwort trägt Artefaktidentität, Engine- und Vertragsversion, Parameter und Fundstelle. Beobachtung, Ableitung, Hypothese und offene Frage bleiben getrennt; fehlende Abdeckung wird offen ausgewiesen.

Headless und eigenständig

Die Engine braucht keine Oberfläche. Sie wird im Repository gebaut, getestet und ausgeliefert und folgt Ghidra nicht per Merge; Sicherheitskorrekturen werden einzeln und nachvollziehbar übernommen.

Ausgangslage

RHEA beginnt nicht bei null. Es führt zwei ausgereifte Open-Source-Projekte zusammen, deren Stärken sich ergänzen, die aber jeweils für einen anderen Zweck gebaut wurden.

REA – die Agentenschicht

morluto/rea · MIT-Lizenz · npm-Paket rea-agents 6.5.0

„Reverse Engineer Anything“ ist ein MCP-Server mit Kommandozeile, über den KI-Agenten native Programme, Web- und Electron-Anwendungen, .NET, Android, Firmware, WebAssembly und mehr untersuchen. Übernommen bei Commit efbc486.

  • 207 Werkzeuge im MCP-Katalog, rund 300.000 Zeilen Produktions- und 186.000 Zeilen Testcode
  • Mehrere Tiefenanalysatoren nebeneinander: Ghidra, Hopper und IDA, dazu objdump, Rizin, Cutter und JEB
  • Ghidra musste separat installiert werden; die Brücke wurde bei jedem Start als Skript mit dem Java-Compiler übersetzt
  • Kein reproduzierbarer Nachweis, ob eine Änderung Analysen wirklich besser macht
  • Die Linux-Prüfläufe gegen echtes Ghidra liefen nicht in der CI und hatten unbemerkt veraltete Erwartungen

Ghidra – die Analyse-Engine

National Security Agency · Apache License 2.0 · Version 12.1.4 (8b6bbb8)

Das Software-Reverse-Engineering-Framework mit einem der besten frei verfügbaren Decompiler, Prozessormodellen für dutzende Architekturen und umfangreichen Analysemodulen. Übernommen als unveränderter Quellstand ohne Git-Historie.

  • Rund 2,28 Mio. Zeilen Java in 12.837 Dateien, dazu nativer C++-Code für Decompiler und Sleigh
  • Als Desktop-Werkzeug gebaut: rund 830.000 Zeilen Swing-Oberfläche mit 240 Plugins
  • Mehrbenutzer-Server, Debugger, Versionsverwaltung, Grafik- und Diff-Ansichten, die für automatisierte Analyse nicht gebraucht werden
  • Java 21 als Mindestversion, Build auf Gradle 8.5 ausgelegt
  • 153 bekannte Schwachstellen-Funde in mitgelieferten Fremdbibliotheken, vor allem im Server-Teil

Warum eine eigene Ableitung?

Ein KI-Agent braucht keine Fenster, sondern schnelle, belegte Antworten. Headless nutzt RHEA nur rund 19 % der Engine-Klassen. Der Rest kostet Startzeit, vergrößert die Angriffsfläche und erschwert die Weiterentwicklung. Mit einer eigenen, schlanken Engine im selben Repository lassen sich Analyse und Agentenschicht gemeinsam verbessern, gemeinsam testen und als ein Produkt ausliefern.

RHEA ist ein unabhängiges Projekt. Es steht in keiner Verbindung zu den Autoren von REA oder zur National Security Agency und wird von ihnen weder unterstützt noch empfohlen. Der eigene Name ist notwendig, weil die Apache-Lizenz keine Rechte am Namen „Ghidra“ einräumt und „REA“ zum Original gehört.

Arbeitsweise

So beantwortet RHEA eine Frage wie „Welche Funktion prüft den Lizenzschlüssel, und mit welcher Konstante?“

Konzeptdarstellung: Ein Binärprogramm im Zentrum, darum Artefakt-Explorer, Disassembly, dekompilierter Code, Kontrollflussgraph, die Analyse-Pipeline des RHEA-Agenten und belegte Erkenntnisse.
Konzeptdarstellung: Der RHEA-Agent verbindet statische Analyse, Laufzeitbeobachtung, Dekompilierung und Querverweise zu belegten Erkenntnissen.

Frage stellen

Der Agent formuliert eine konkrete Analysefrage und öffnet das Zielprogramm über open_binary. RHEA bestimmt Format, Architektur und passenden Analysepfad.

Analysieren

Die Rhea Engine importiert das Programm headless, erkennt Funktionen, Referenzen und Datentypen und dekompiliert bei Bedarf. Die Zieldatei selbst wird nie verändert.

Gezielt nachsehen

Statt ganze Inventare zu laden, ruft der Agent nur die Werkzeuge auf, die er braucht: Zeichenketten, Prozeduren, Pseudocode, Speicherinhalte. Schemas werden erst bei Bedarf geladen.

Belegt antworten

Jedes Ergebnis landet mit Herkunft im Evidence-Ledger. Die Antwort nennt Adresse, Konstante und Fundstelle; Unbekanntes wird als unbekannt markiert.

Laufzeit ergänzen

Wo statische Analyse nicht reicht, beobachtet RHEA Prozesse, Browser oder Frida-Sitzungen und verknüpft die Laufzeitbelege mit dem statischen Modell.

Messen

Ein reproduzierbarer Benchmark prüft jede Änderung auf Qualität, Token, Kosten, CPU und Speicher. Eine Verbesserung, die Belege verliert, zählt nicht.

Was bereits besser ist

Jede Änderung ist ein eigener, nachvollziehbarer Commit mit Begründung und Prüfung.

Bereich Vorher Jetzt
Testabdeckung der Agentenschicht 90,8 % Zeilen / 82,0 % Branches 97,1 % / 91,3 %
Abhängigkeiten teils veraltet alle npm-Pakete und CI-Aktionen auf aktuellem stabilem Stand
Schwachstellen-Prüfung keine Baseline npm: 690 Pakete, 0 Funde · Engine: regelmäßiger OWASP-Scan
Schwachstellen-Funde der Engine-Distribution 153 (17 kritisch) 12 (0 kritisch)
Java und Build Java 21, Gradle 8.5+, über 2.000 Gradle-Warnungen Java 25 (LTS), Gradle 9.8.1 mit geprüfter Prüfsumme, Altlasten bereinigt
Engine-Umfang vollständige Desktop-Anwendung mit Server und Debugger Server und 28 Module entfernt, GUI-Ausbau läuft
Nachweis von Verbesserungen keiner Aufgaben-Benchmark mit Baseline, Vergleich mit Toleranz
Fehlgriffe des Agenten vor dem Öffnen eines Ziels 7 pro Benchmark-Lauf 0, Token-Median −11 %
Prüfläufe gegen die Engine nicht in CI, teils mit veralteten Erwartungen 13 von 19 grün gegen den Eigenbau, eigene Engine-CI

Änderungen gegenüber REA

  • Tests deutlich ausgebaut Abdeckung um 6 bzw. 9 Prozentpunkte erhöht, Schwellen angehoben.
  • Alle Abhängigkeiten aktuell npm-Pakete und GitHub Actions auf den neuesten stabilen Stand, Node.js-Mindestversion angehoben.
  • Schwachstellen-Scan npm audit und OSV-Scanner mit befristeter Ausnahmeliste.
  • Fehler im Sitzungslebenszyklus behoben Ein erneutes Öffnen desselben Ziels startete die Engine vorzeitig und konnte eine geänderte Quelldatei übersehen. Der Fehler besteht im Original.
  • Reproduzierbarer Aufgaben-Benchmark Fünf Analyseaufgaben mit Antwortschlüssel, isolierter Agent, Messung von Qualität, Token, Kosten, CPU und Speicher.
  • Bessere Agentenführung Ein Hinweis in den Server-Anweisungen beseitigte alle Aufrufe vor dem Öffnen eines Ziels.
  • Prüfskripte korrigiert Drei veraltete Erwartungen in den Ghidra-Prüfläufen (MIPS-Attribute, Ablehnung beschnittener ELF-Dateien, CET-Sprungbefehle), die ebenfalls im Original stecken.

Änderungen gegenüber Ghidra 12.1.4

  • Ghidra-Server entfernt Mehrbenutzer-Server samt Dienstwrapper und veralteter Netzwerkbibliothek ausgebaut.
  • Moderne Toolchain Java 25 als Mindestversion und Bytecode-Ziel, Gradle 9.8.1, Gradle-10-Altlasten in 32 Build-Skripten bereinigt.
  • GUI-Ausbau, Welle 1 28 Module ohne Bedeutung für die Headless-Analyse entfernt, darunter der Debugger-Komplex, Diff- und Graph-Ansichten. Prüfung läuft.
  • Eigene Engine-CI Build, Unit-Tests, Abdeckung und Schwachstellen-Scan laufen getrennt von der Agentenschicht.
  • Sicherheitsnetz für den Umbau 128 headless Integrationstest-Klassen mit 1.832 Tests, dazu 9.750 Unit-Tests, die Prüfläufe der Agentenschicht und der Benchmark.

Messwerte

MessungErgebnis
Aufgaben-Benchmark (Baseline)30 von 30 Läufen erfolgreich, keine falsche Behauptung
Prüfläufe der Agentenschicht gegen die Engine13 von 19 bestanden, keiner scheitert an der Engine; 6 brauchen macOS, Windows oder neuere Compiler
Engine-Unit-Tests9.750 Fälle, bekannte Fehlschläge fast nur in GUI-Tests
Headless Integrationstests1.832 Tests, 0 Fehlschläge
Headless geladene Engine-Klassen3.878 von 19.996
Von Headless-Pfaden unerreichbare Klassen5.124 (Kandidaten für Welle 2)

Gemessen auf einem AMD Ryzen 9 3900X unter Linux gegen den Eigenbau der Engine.

Roadmap

Zwei Spuren laufen parallel: die Agentenschicht (TypeScript) und die Engine (Java/C++). Zwischen den Phasen liegen Gates. Ein Gate gilt nur als bestanden, wenn der Benchmark keine Belege verliert und nicht mehr Token braucht. Zeiträume sind Planungsrahmen für einen bewusst engen ersten Umfang, keine Zusagen.

Phasen im Überblick

Phase 0Okt. 2026erledigt
Engine lauffähig, Hygiene, Messung
  • Eigenbau auf Java 25 und Gradle 9.8.1, Tests und Abdeckungs-Baseline
  • Schwachstellen-Baselines beider Stacks, Ghidra-Server entfernt
  • Aufgaben-Benchmark mit Baseline, Engine-CI, Fehler im Sitzungslebenszyklus behoben
Gate 0 bestanden; 6 Prüfläufe für macOS, Windows und neuere Compiler folgen.
GUI-Ausbauab Okt. 2026läuft
Ghidra-Oberfläche vollständig entfernen
  • Welle 1: 28 Module ohne Headless-Bedeutung (in Prüfung)
  • Welle 2: rund 2.000 Quelldateien, die von keinem Headless-Pfad erreichbar sind
  • Weitere Wellen: Kernklassen von Oberflächen-Typen lösen, dann Fenster-, Hilfe- und Theme-Framework entfernen
  • Startzeit messen und senken
Nach jeder Welle: Prüfläufe, Unit-Tests, headless Integrationstests und Benchmark grün.
Phase 1Dez. 2026 – Jan. 2027geplant
Neuer Name und fester Vertrag
  • Umbenennung in RHEA einschließlich Branding der Engine
  • Brücke zur Engine als echtes, getestetes Engine-Modul
  • Ein gemeinsamer, versionierter Vertrag mit Generatoren für beide Stacks
  • Sparsamere, aufgabenbezogene Ergebnislieferung
Gate 1: Vertrag beidseitig konform, kein Java-Compiler mehr zur Laufzeit, Produkt heißt RHEA.
Phase 2Feb. – Mär. 2027geplant
Auslieferung
  • rhea engine install mit geprüften Release-Archiven je Plattform
  • Startzeit verkürzen, GUI-Ausbau abschließen
  • Erste Fremdwerkzeuge ersetzen: objdump, Rizin, Cutter
Gate 2: Frischinstallation ohne separates Ghidra, Startzeit vorher/nachher belegt, Engine ohne Swing-Oberfläche.
Phase 3Apr. – Mai 2027geplant
Konsolidierung und Untersuchungsakte
  • Hopper, IDA und JEB entfernen
  • Dauerhafte Untersuchungsprojekte und persistente Engine-Projekte
Gate 3: ein einziger Tiefenanalysator, Untersuchung nach Neustart fortsetzbar.
Phase 4Jun. – Jul. 2027geplant
Belegketten und Typen
  • Ein Feature durchgängig belegen: Oberfläche → nativer Code → Wirkung
  • Rekonstruktionen mit ausführbarem Nachweis
  • Eigene Analyzer in der Engine, tiefere Typrückgewinnung
Gate 4: eine belegte Kette, Typ-Fixture mit Vererbung besteht.
Phase 5Aug. – Sep. 2027geplant
Versionsvergleich, Oberfläche, Windows
  • Semantischer Vergleich zweier Builds
  • Neue, schlanke Weboberfläche (Thymeleaf), zunächst als Status- und Monitor-Ansicht
  • Einheitlicher Transport auf Windows, Anbindung von BSim und Function ID
Gate 5: zwei Builds mit bekannten Änderungen korrekt zugeordnet.
Phase 6ab Okt. 2027geplant
Vertiefung
  • Ereignisbasierte Prozessbeobachtung
  • Ein Fachmodul nach drei- bis fünftägiger Machbarkeitsprüfung
  • Engine-Debugger als Laufzeitquelle prüfen, weitere Toolchain-Sprünge

Arbeitspakete der Engine

P0 = Voraussetzung, P1 = unmittelbarer Nutzen, P2 = Vertiefung, P3 = spätere Option.

G0 Engine eigenständig lauffähig auf LTS-Toolchain P0 erledigt
Ziel
Ein nachweislich bauender, getesteter Engine-Stand ohne Agentenschicht, von dem die Integration startet.
Umfang
Build auf Java 25 und aktuellem Gradle, Unit- und Integrationstests mit Abdeckungs-Baseline je Modul, Anhebung des Bytecode-Ziels, eigene Engine-CI, Abhängigkeits- und Schwachstellen-Scan.
Ergebnis
Alle Teilschritte erledigt; Ghidra-Server zusätzlich entfernt (153 → 12 Funde).
T0 Fehler beim erneuten Öffnen eines Ziels P0 erledigt
Befund
Ein erneutes Öffnen desselben Ziels startete die Engine sofort und konnte danach eine geänderte Quelldatei übersehen.
Ergebnis
Im Sitzungslebenszyklus behoben, mit Reproduktionstest; der Prüflauf besteht gegen den Eigenbau.
T1 Umbenennung in RHEA P0 Phase 1
Umfang
Anzeigename, Befehl rhea, MCP-Schlüssel, Konfigurationsdatei, Paketname, 79 Umgebungsvariablen (alte Namen eine Version lang weiter gültig), Dokumentation; Branding der Engine (Anwendungsname, Archiv- und Einstellungsnamen, Startskripte). Java-Pakete bleiben unverändert.
Abnahme
RHEA läuft unter eigenem Namen und kollidiert nicht mit einer parallelen Installation des Originals.
G1 Repo-Integration und Richtlinien P0 Phase 1
Umfang
Lizenzdokumente beschreiben die Engine als abgeleitetes Werk, eigene Engine-Richtlinien für Herkunft, Einzelübernahmen aus Upstream und Sicherheitsdurchsicht, Build-Integration in die Repository-Werkzeuge.
Abnahme
Die TypeScript-Prüfungen bleiben unberührt vom Java-Teil; Lizenzdokumente nennen die Engine.
G2 Brücke als Engine-Modul und gemeinsame Vertragsquelle P0 Phase 1
Umfang
Die Brücke wird ein kompiliertes, mit JUnit getestetes Engine-Modul, aufgeteilt in Dispatcher, Serialisierer und Operationsgruppen. Der Vertrag wird als JSON Schema gepflegt, daraus entstehen Typen für TypeScript und Java; ein Handshake prüft die Vertragsversion.
Abnahme
Alle 28 Operationen laufen über das Modul, ein absichtlich verstimmtes Schema lässt beide Konformitätstests fehlschlagen, kein Java-Compiler zur Laufzeit.
G3 Engine-Auslieferung und Installation P0 Phase 2
Umfang
Release-Archive je Plattform mit SHA-256-Manifest, rhea engine install|status|remove, Diagnoseprüfungen, ein separates Ghidra nur noch als Entwickler-Option.
Abnahme
Auf einer frischen Maschine mit Java 25 liefert RHEA nach Installation ohne weitere Schritte Pseudocode.
G4 Startzeit und Ausbau der Swing-Oberfläche P1 läuft
Ausgangslage
Headless werden 3.878 von 19.996 Klassen geladen; die Oberfläche ist mit dem Kern nur an rund 165 Stellen verflochten (Einstellungen, Task-Monitore, Optionen, Farben).
Umfang
Wellenweise: ungenutzte Module entfernen, unerreichbare Klassen löschen, verflochtene Kernklassen in ein oberflächenfreies Modul verschieben, Fenster-, Hilfe- und Theme-Framework entfernen, GUI-only-Bibliotheken streichen; Startzeit über Klassenarchiv und schlankere Analyseprofile senken.
Abnahme
Nach jeder Welle bestehen Engine-Tests, Prüfläufe und Benchmark; Klassenliste und Startzeit vorher/nachher dokumentiert.
G5 Provider-Konsolidierung P1 Phase 2–3
Reihenfolge
objdump → Rizin-Einzelbefehle und Cutter (ersetzt durch kuratierte Engine-Skripte) → Hopper → IDA → JEB. Debug-Sitzungen bleiben bis G9.
Abnahme je Schritt
Paritäts-Matrix dokumentiert, Werkzeuge auf die Engine umgebunden oder mit Migrationshinweis entfernt, eigene Version mit Breaking-Change-Vermerk.
G6 Persistente Engine-Projekte P1 Phase 3
Umfang
Eigenes Projektformat mit Manifest (Artefakt-Hash, Engine-Version, Analyseprofil, Vertragsversion), explizites Öffnen und Speichern, Invalidierung bei geändertem Artefakt, langlebiger Engine-Dienst mit mehreren Programmen.
Abnahme
Untersuchung nach Neustart fortsetzbar, geändertes Binary erzeugt eine neue Artefaktversion.
G7 Eigenständige Engine-Weiterentwicklung P1 Phase 4
Umfang
Entwicklerdokumentation, eigenes Versionsschema, eigene Analyzer und Loader statt Skript-Umwegen: Reparatur fehlerhafter No-Return-Annahmen, MIPS-Soft-Float, PSP, .NET NativeAOT.
Abnahme
Ein Engine-Feature lässt sich ohne Änderung an der Agentenschicht entwickeln, testen und ausliefern.
G8 Windows-Vereinheitlichung P2 Phase 5
Umfang
Ein Transportpfad für alle Plattformen, Windows verliert den Sonderstatus „nur lesend“.
G9 Engine-Debugger als Laufzeitquelle P3 Phase 6
Umfang
Machbarkeit prüfen, ob statische und dynamische Belege im selben Programmmodell zusammengeführt werden können; erst nach erfolgreicher Machbarkeit eine Entscheidung.

Arbeitspakete der Analyse

A Reproduzierbare Aufgaben-Benchmarks P0 Baseline liegt vor
Problem
Eine neue Funktion oder kürzere Antwort ist noch kein Nachweis für bessere Analyse.
Umfang
Korpus aus selbst gebauten Programmen mit bekannten Lösungen: Funktion finden, Dateischreibvorgang erklären, Änderung zwischen zwei Builds erkennen, statischen Aufruf dynamisch prüfen, Funktion nachimplementieren.
Nächste Schritte
Schwerere Varianten (gestrippte und optimierte Builds, indirekte Aufrufe), damit auch Qualitätsgewinne messbar werden.
B Aufgabenbezogene, sparsame Ergebnislieferung P0 Phase 1
Umfang
Bei Inventarfragen zuerst Zusammenfassungen, gelesene Belege referenzieren statt erneut senden, doppelte Serialisierung vermeiden; optional hybride Suche aus Symbolen, Volltext und semantischer Suche.
Abnahme
Weniger Gesamt-Token im Benchmark bei gleicher Antwortqualität.
C Dauerhafte Untersuchungsprojekte P1 Phase 3
Umfang
Benannte Projekte mit automatischer Sicherung, Manifest, Hypothesen und Gegenbelegen, Wiederaufnahme nach Neustart.
Abnahme
Eine Untersuchung läuft nach Neustart weiter; widersprüchliche Belege werden sichtbar.
D Durchgängige Verfolgung eines Features P1 Phase 4
Umfang
Eine Frage wie „Was passiert beim Speichern?“ wird zu einer belegten Kette von der Oberfläche über den nativen Code bis zur Wirkung, statisch und zur Laufzeit.
Abnahme
Ein bekanntes Fixture liefert eine belegte Kette, auch unter Adressraum-Randomisierung.
E Ereignisbasierte Prozessbeobachtung P1/P2 Phase 6
Umfang
Plattformadapter für Prozessstart, Ende, Neustart und Kindprozesse.
Abnahme
Auch sehr kurzlebige Kindprozesse werden erkannt.
F Tiefere native Typ- und Aufrufanalyse P1/P2 Phase 4
Umfang
Struktur-Layouts, Argumenttypen, Funktionszeiger und virtuelle Aufrufe, berechnet in der Engine.
Abnahme
Ein selbst gebautes Fixture mit Vererbung und Funktionszeigern wird korrekt rekonstruiert.
G Semantischer Versionsvergleich P1/P2 Phase 5
Umfang
„Welche bisherigen Aussagen und Erweiterungspunkte müssen nach einem Update neu geprüft werden?“ – Zuordnung umbenannter und verschobener Funktionen über Builds hinweg.
Abnahme
Zwei Builds mit bekannten Änderungen werden korrekt zugeordnet.
H Von Rekonstruktion zu ausführbarem Nachweis P1 Phase 4
Umfang
Aus Anforderungen an eine Rekonstruktion entstehen Testgerüste und Eingabekorpora, die Original und Nachbau vergleichen.
Abnahme
Eine absichtlich falsche Rekonstruktion wird zurückgewiesen.
I Neue Analyseoberfläche P2 Phase 5
Umfang
Serverseitig gerenderte Weboberfläche mit Thymeleaf, zunächst als Status- und Monitor-Ansicht für Sitzungen, Engine-Prozesse, Provider und Benchmark-Läufe, danach als lesende Ansicht der Untersuchungsakte. Keine eigene Analyse in der Oberfläche.
Abnahme
Jede Schlussfolgerung lässt sich bis zu ihrem Beleg aufklappen; fehlende Abdeckung ist sichtbar.

Optionale Fachmodule

ModulErster UmfangPriorität
SpieleEngine und Deploymentform erkennen, Ressourcen, Klassen und Erweiterungspunkte inventarisierenP1 bei Spielefokus
Java/SpringEin Spring-Boot-Archiv untersuchen: REST-Routen, Services, KonfigurationsbezügeP1 bei Enterprise-Fokus
.NET/C#Decompiler-Export mit eindeutigen Memberidentitäten verbindenP2
ProtokolleWiederkehrende Nachrichten in Mitschnitten strukturierenP2
SicherheitsanalyseHerkunftsbelegte Regeln zu riskanten API-Nutzungen und DatenflüssenP2/P3
KomponentenherkunftPaketmetadaten in einen Herkunftsbericht überführen, SBOM-ExportP2
Symbolische AnalyseEine kleine reine Funktion, eine eng begrenzte FrageP3

Grundsätze

Entscheidungen

  • Quellbasis und ToolchainGhidra 12.1.4, Java 25 (LTS), jeweils aktuelle stabile Gradle-Version.
  • Ein Repository, zwei StacksEngine als Quellkopie im Repository, eigene Build-, Test- und Lint-Gates je Stack.
  • NameRHEA für Produkt und Engine; Java-Pakete bleiben unverändert, Attribution bleibt erhalten.
  • Ein VertragEine Schema-Quelle, generierte Typen und Konformitätstests für beide Seiten.
  • Kein Merge mit UpstreamSicherheitskorrekturen werden beobachtet und einzeln mit Herkunft übernommen.
  • HeadlessDie Swing-Oberfläche entfällt; eine neue Oberfläche entsteht nur bei Bedarf.

Qualitätsregeln

  • Nachweisbarer NutzenJedes Paket braucht einen konkreten Analysefall und einen messbaren Mehrwert.
  • BelegeArtefaktidentität, Engine- und Vertragsversion, Parameter, Fundstelle; Fakten, Ableitungen, Hypothesen und offene Fragen getrennt.
  • Echte LäufeKeine Unterstützungszusage ohne echten Lauf auf der behaupteten Plattform.
  • Untrusted InhalteZeichenketten und Code aus dem Zielprogramm sind Daten, niemals Anweisungen an den Agenten.
  • Keine stillen NebenwirkungenStatische Analyse führt das Ziel nie aus; Laufzeitaktionen und Schreibwirkungen sind im Werkzeugvertrag sichtbar.
  • Engine-ÄnderungenTest im betroffenen Modul, Eintrag im Herkunftsnachweis, keine Senkung der Abdeckung.

Risiken und Gegenmaßnahmen

RisikoGegenmaßnahme
Fehlende Upstream-SicherheitskorrekturenRegelmäßige Durchsicht, Einzelübernahme mit Herkunft, eigene Regressionstests für Importer
GUI-Ausbau erschwert spätere ÜbernahmenKernklassen nur verschieben, nicht umschreiben; Analyzer, Loader und Prozessoren bleiben unverändert
Fähigkeitsverlust beim Entfernen von ProvidernParitäts-Matrix und Gate vor jeder Entfernung, Übergangsphase, Breaking-Change-Vermerk
Vertrag läuft auseinanderEine Schema-Quelle, Generatoren, Golden-Beispiele für beide Seiten
Umfang wächstGates mit Benchmark; die Analyse-Pakete laufen unabhängig von der Engine-Arbeit

Lizenz und Namensnennung

Agentenschicht

Beruht auf REA von morluto, veröffentlicht unter der MIT-Lizenz. Der ursprüngliche Copyright-Vermerk bleibt in allen Kopien erhalten.

Rhea Engine

Abgeleitet von Ghidra, veröffentlicht unter der Apache License 2.0. Lizenztext, NOTICE-Datei und alle Namensnennungen bleiben erhalten; jede Abweichung ist in engine/UPSTREAM.md dokumentiert. Ghidra-Logos werden nicht verwendet.