
Desktop-Arbeitsumgebung für AFL++-Fuzzing, architekturübergreifende QEMU-Emulation, Harness-Entwicklung, Ghidra-Headless-Analyse, benutzerdefinierte Mutatoren und Patch-Vergleich für die Exploit-Entwicklung.
Rogue Framework ist eine Desktop-Werkbank für AFL++, architekturübergreifendes QEMU-Fuzzing, Harness-Entwicklung, leichtgewichtige Ghidra-Headless-Analyse, benutzerdefinierte Mutatoren und Patch-Vergleich. Es ist bewusst eine auditierbare Werkbank und kein reiner Button-Wrapper: Jeder generierte AFL++-Befehl ist vor der Ausführung sichtbar, und generierte Harnesses sind gewöhnliche Quelldateien, die der Forscher bearbeiten kann. Es soll "The BurpSuite of exploit developers" sein.
Rogue Framework unterstützt derzeit Linux und Python 3.11+ mit PyQt6.
Unter Kali Linux richtet das Installationsprogramm die Python-Umgebung ein, klont den offiziellen
AFL++-Zweig stable und baut dessen vollständige Distribution sowie das instrumentierte QEMU-
Backend. Anschließend installiert es Ghidra Headless, natives/Multiarch-GDB, GDB-Server, QEMU-
Benutzer-/Systememulation, Compiler-/Build-Abhängigkeiten, einen Benutzer-Launcher und
dauerhafte Shell-PATH-Einträge. AFL++ wird in das ignorierte lokale
AFLplusplus/-Verzeichnis heruntergeladen und ist nicht Teil der Rogue-Framework-Distribution:
chmod +x install.sh
./install.sh
rogue-framework
Installieren Sie auch gängige Cross-Compiler und deren Gast-Sysroots (dies ist ein viel größerer Download) mit:
./install.sh --with-cross-toolchains
Das Installationsprogramm ist idempotent. Verwenden Sie ./install.sh --check, um eine bestehende
Installation zu prüfen, oder ./install.sh --rebuild-afl, um einen AFL++/QEMU-Neubau zu erzwingen.
Verwenden Sie ./install.sh --update-afl, um den heruntergeladenen
Checkout explizit per Fast-Forward auf die neueste offizielle stabile Revision zu bringen.
Führen Sie es als Desktop-Benutzer aus; es fordert sudo nur für apt-Pakete an. Ein neu
geschriebener PATH kann die bereits laufende Eltern-Shell nicht verändern. Öffnen Sie also entweder ein neues
Terminal, führen Sie source ~/.zshrc/~/.bashrc aus, oder starten Sie Rogue über den absoluten
~/.local/bin/rogue-framework-Pfad, der vom Installationsprogramm ausgegeben wird.
Der manuelle Start aus dem Checkout bleibt verfügbar:
python3 run.py
Für eine editierbare Umgebung:
python3 -m pip install -e .
rogue-framework
Dynamische Binärdateien für andere Architekturen benötigen ein passendes Gast-Sysroot, das mit
QEMU_LD_PREFIX ausgewählt wird; das ist inhärent ziel-/distributionsspezifisch. Der Pfad zu Ghidras
analyzeHeadless kann unter Tools → External tools überschrieben werden.
Ein .rgp-Projekt ist lesbares, versioniertes JSON, das die portable Projektdefinition enthält. Große und veränderliche Artefakte liegen in dem verwalteten Begleit-Workspace:
example.rgp
example.rgp-work/
workspace.json
project.sqlite3
corpus/
output/
harnesses/
mutators/
analysis/
logs/
runs/
staging/
recovery/
backups/
objects/sha256/
Diese Aufteilung hält Projektdateien überprüfbar und vermeidet, dass Crash-Korpora, Befunde, Analyseindizes oder Ghidra-Zustand in JSON eingebettet werden. workspace.json bindet das Manifest an die korrekte Workspace-Identität, während project.sqlite3 den betrieblichen/indizierten Zustand speichert. Verwaltete Referenzen verwenden workspace://; explizit externe Ressourcen verwenden external://. Maschinenlokale Tool-Pfade und UI-Zustand werden außerhalb des portablen Projekts gespeichert.
„Speichern unter" erstellt einen unabhängigen Klon mit neuen Projekt- und Workspace-Identitäten. Rogue bereitet das Ziel vor und validiert es, bevor es das geöffnete Dokument wechselt, sodass ein fehlgeschlagener Klon das Quellprojekt unverändert lässt. Kanonische Speichervorgänge verwenden einen Advisory-Writer-Lease sowie Revisions-/SHA-256-Konfliktprüfungen, bewahren zuvor gültige Manifeste, veröffentlichen Dateien atomar mit fsync und pflegen Absturz-Wiederherstellungs-Snapshots einschließlich aktiver Editor-Entwürfe. Generierte Harnesses, Mutatoren, Ghidra-JSON, Patch-Diff-Ergebnisse und minimierte Befunde werden ebenfalls transaktional veröffentlicht, sodass ein fehlgeschlagener Ersatz das vorherige gültige Artefakt nicht löscht.
.fuzz-ProjekteRogue kann Legacy-Manifeste der Schemata 0–2 (.fuzz) und deren .fuzz-work-Begleiter importieren. Die Legacy-Quelle ist nie das kanonische Ziel: Der erste Speichervorgang stuft sie zu einem benachbarten .rgp-Projekt und .rgp-work-Workspace hoch, während die ursprünglichen Legacy-Dateien erhalten bleiben. Neue Projekte und Ziele von „Speichern unter" verwenden immer .rgp.