jubnzv/multifuzz

GitHub: jubnzv/multifuzz

Rust 多引擎模糊测试编排器,可并行运行 AFL++、honggfuzz 和 libFuzzer 并自动同步语料库与收集崩溃。

Stars: 0 | Forks: 0

# multifuzz Rust 的多引擎 Fuzzing 编排器。并行运行 AFL++、honggfuzz 和 libfuzzer,具备自动语料库同步和崩溃收集功能。 ![screenshot](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/e9c5b33c99010121.png) ## 用法 使用 `fuzz!` 宏编写 Fuzz harness: ``` use multifuzz::fuzz; fn main() { fuzz!(|data: &[u8]| { // test your code here }); } ``` 也支持通过 `Arbitrary` 实现结构化输入: ``` fuzz!(|data: MyStruct| { // data is deserialized automatically }); ``` ## 前置条件 安装 fuzzing 工具链: ``` cargo install cargo-afl cargo install honggfuzz ``` ## 安装 ``` cargo install --path path/to/multifuzz ``` ## 配置 活动 (Campaign) 通过 TOML 文件进行配置(默认为 `multifuzz.toml`,或通过 `--config ` 指定)。请参阅 `multifuzz.toml.example` 获取完整参考。 ``` [fuzz] target = "my_target" jobs = 4 corpus = "./corpus" output = "./output" timeout = 10 strategy = "parallel" # "parallel", "afl-only", "hongg-only", "libfuzzer-only" sync_interval = 60 dictionaries = ["./dict.dict"] [fuzz.web] enabled = true # Per-worker AFL++ env 覆盖。 # Keys: "all", "even", "odd", "workerN"。 [fuzz.afl.all.env] AFL_SKIP_CPUFREQ = "1" [fuzz.afl.worker2.env] AFL_CUSTOM_MUTATOR_LIBRARY = "/path/to/mutator.so" ``` ## CLI ``` # 构建所有 fuzzer 二进制文件 (AFL++, honggfuzz, libfuzzer) multifuzz build # 运行 campaign (从 cwd 读取 multifuzz.toml,或传递 --config ) multifuzz fuzz # 重放 crash 或输入目录 multifuzz run my_target -i output/my_target/crashes/ -r # 将外部输入添加到正在运行的 fuzzing 会话 multifuzz add-corpus my_target -i interesting_inputs/ -r ``` ## Web 仪表板 可选的轻量级 Web UI(`[fuzz.web] enabled = true`)为正在运行的活动提供实时监控、暂停/恢复控制以及 Worker 扩缩容功能。 ## 工作原理 任务会自动分配到各引擎。语料库文件通过基于哈希的去重机制在引擎间定期同步。来自所有引擎的崩溃信息会被收集到统一的 `crashes/` 目录中。 ## 许可证 Apache-2.0
标签:AFL++, Fuzzing, Honggfuzz, libFuzzer, Python安全, Rust, TLS抓取, Web仪表盘, 可视化界面, 多引擎编排, 安全测试, 并行计算, 攻击性安全, 文档安全, 测试框架, 网络流量审计, 语料库同步, 软件安全, 软件开发工具包, 通知系统