Benutzerhandbuch
rhexa.Konzepte
- Ziel
- Das untersuchte Artefakt: ein natives Programm, eine Bibliothek, eine App, eine Webseite, ein Mitschnitt. RHEXA identifiziert es über seinen SHA-256-Hash.
- Sitzung
- Mit
open_binarywird ein Ziel geöffnet; die Rhexa Engine startet beim ersten Analysezugriff und hält das analysierte Programm bisclose_binary. - Engine und Provider
- Die statische Tiefenanalyse übernimmt die Rhexa Engine. Übergangsweise unterstützt RHEXA weitere Provider (Hopper, IDA), die laut Roadmap entfallen.
- Evidence
- Jedes Ergebnis ist ein Beleg mit Artefaktidentität, Werkzeug, Parametern, Engine-Version und Fundstelle. Beobachtungen, Ableitungen, Hypothesen und offene Fragen bleiben getrennt; fehlende Abdeckung wird ausgewiesen.
- Unbekannte
- Was sich nicht belegen lässt, wird als unbekannt geführt statt geraten.
Arbeiten mit dem Agenten
- Stellen Sie konkrete Fragen mit Pfad und Ziel, etwa „Welche Funktion schreibt die Datei X?“ oder „Was ändert sich zwischen Version 1 und 2?“.
- Bitten Sie ausdrücklich um Belege; der Agent zitiert dann Adressen, Funktionen und Fundstellen.
- Bei vielen Werkzeugen lädt der Agent deren Beschreibungen erst bei Bedarf (ToolSearch); das hält den Kontext klein.
- Für Programmfunktionen öffnet der Agent zuerst das Ziel mit
open_binary; ohne geöffnetes Ziel antworten die Analysewerkzeuge mittarget_unavailable.
Wichtige Werkzeuge
| Werkzeug | Zweck |
|---|---|
open_binary, close_binary | Ziel öffnen bzw. Sitzung schließen, optional mit Snapshot |
binary_overview | Format, Architektur, Segmente, Anzahl Funktionen und Zeichenketten |
list_procedures, search_strings, list_strings | Inventare durchsuchen |
analyze_function, procedure_pseudo_code | Funktionsdossier bzw. Pseudocode |
read_bytes, inspect_native_instruction | Speicherinhalte und einzelne Befehle |
disassemble_range | Listing einer Sektion oder eines Adressbereichs; Daten bleiben Daten |
run_engine_script | kuratierte Engine-Skripte: raw_strings, instruction_search, function_graph, cpp_classes |
inspect_object_file | Header, Sektionen, Symbole, Relocations und DWARF-Zeilentabellen von ELF, PE und Mach-O so, wie die Datei sie angibt |
capture_process_scenario | Programm kontrolliert ausführen und beobachten (Laufzeit) |
Die vollständige Liste zeigt der Agent selbst oder rhexa --help.
Kommandozeile
rhexa providers --json # verfügbare Analyse-Provider
rhexa analyze <ziel> --provider ghidra --json # Überblick
rhexa search <ziel> "text" --provider ghidra --json
rhexa function <ziel> <name|adresse> --provider ghidra --json
rhexa decompile <ziel> <adresse> --provider ghidra --json
rhexa xrefs <ziel> <adresse> --provider ghidra --json
rhexa trace <ziel> "text" --provider ghidra --json
Ohne --json erscheint eine lesbare Zusammenfassung. Der Exit-Code ist 0 bei Erfolg und
ungleich 0 bei einem typisierten Fehler, dessen Code und Abhilfe in der Ausgabe stehen.
Snapshots und Belege
Beim Schließen einer Sitzung lässt sich ein Snapshot schreiben, der Ziel, Analyseprofil und alle Belege enthält:
close_binary snapshot_path=/pfad/untersuchung.snapshot.json
Auf der Kommandozeile laden Befehle einen gespeicherten Snapshot mit --snapshot; die
Analyse muss dann nicht wiederholt werden. Belege lassen sich außerdem als Bundle exportieren,
importieren und vergleichen.
Laufzeitbeobachtung
Wo statische Analyse nicht reicht, kann RHEXA Prozesse kontrolliert starten und beobachten, Frida-Sitzungen nutzen oder Webseiten im Browser beobachten. Diese Werkzeuge führen Code aus und sind im Werkzeugvertrag entsprechend gekennzeichnet.
Grenzen
- Plattform-Prüfläufe für macOS und Windows stehen noch aus.
- Analyseprojekte überleben die Sitzung noch nicht (geplant für Phase 3).
- Für einige Formate werden optionale Fremdwerkzeuge gebraucht, bis die Engine sie abdeckt.