Rogue Framework 是一款桌面工作台,用于 AFL++、跨架构 QEMU 模糊测试、harness 开发、轻量级 Ghidra 无头分析、自定义变异器以及补丁对比。 它被有意设计为可审计的工作台,而非仅靠点击按钮的包装器:每个生成的 AFL++ 命令在执行前都可见,生成的 harness 也是研究者可以编辑的普通源文件。 它应当成为“漏洞利用开发者的 BurpSuite”。
Rogue Framework 目前面向 Linux 和 Python 3.11+(搭配 PyQt6)。
在 Kali Linux 上,安装程序会配置 Python 环境、克隆官方
AFL++ stable 分支并构建其完整发行版和插桩版 QEMU
后端,然后安装 Ghidra headless、原生/多架构 GDB、GDB server、QEMU
用户/系统模拟、编译器/构建依赖、用户启动器,以及
持久的 shell PATH 条目。AFL++ 会被下载到被忽略的本地
AFLplusplus/ 目录中,并且不作为 Rogue Framework 的一部分分发:
chmod +x install.sh
./install.sh
rogue-framework
如需同时安装常见的交叉编译器及其来宾系统根目录(guest sysroots)(这是一个体积大得多的 下载),请执行:
./install.sh --with-cross-toolchains
安装程序是幂等的。使用 ./install.sh --check 审计现有
安装,或使用 ./install.sh --rebuild-afl 强制重建 AFL++/QEMU。
使用 ./install.sh --update-afl 可将下载的
代码显式快进到最新的官方稳定版本。
请以桌面用户身份运行;它仅针对 apt 软件包请求 sudo。新写入的
PATH 无法改变已在运行的父 shell,因此请打开一个新
终端、执行 source ~/.zshrc/~/.bashrc,或通过绝对路径
~/.local/bin/rogue-framework(安装程序会打印该路径)启动 Rogue。
仍可从代码检出目录手动启动:
python3 run.py
如需可编辑环境:
python3 -m pip install -e .
rogue-framework
跨架构动态二进制文件需要通过
QEMU_LD_PREFIX 选择匹配的来宾系统根目录;这本质上是目标/发行版相关的。Ghidra 的
analyzeHeadless 路径可以在 工具 → 外部工具 下覆盖。
.rgp 项目是可读、带版本控制的 JSON,包含可移植的项目定义。大型且可变的内容存放在其受管伴生工作区中:
example.rgp
example.rgp-work/
workspace.json
project.sqlite3
corpus/
output/
harnesses/
mutators/
analysis/
logs/
runs/
staging/
recovery/
backups/
objects/sha256/
这种拆分使项目文件保持可审查性,并避免将崩溃语料库、发现结果、分析索引或 Ghidra 状态嵌入 JSON。workspace.json 将清单绑定到正确的工作区身份,而 project.sqlite3 存储运行/索引状态。受管引用使用 workspace://;明确的外部资源使用 external://。机器本地的工具路径和 UI 状态存储在可移植项目之外。
另存为(Save As)会创建具有新项目和工作区身份的独立克隆。Rogue 会在切换当前打开的文档前暂存并验证目标位置,因此克隆失败时源项目保持不变。规范保存使用建议性写入者租约以及修订版/SHA-256 冲突检查,保留上次正常的清单,通过 fsync 原子发布文件,并维护崩溃恢复快照(包括活动中的编辑器草稿)。生成的 harness、变异器、Ghidra JSON、补丁对比结果和最小化后的发现结果也会以事务方式发布,因此替换失败时不会删除先前有效的构件。
.fuzz 项目Rogue 可以导入旧版 schema 0–2 的 .fuzz 清单及其 .fuzz-work 伴生目录。旧版源永远不会成为规范保存的目标:首次保存会将其升级为同级的 .rgp 项目和 .rgp-work 工作区,同时保留原始旧版文件。新项目和另存为的目标一律使用 .rgp。