1.3 指南
cargo-fuzz 命令与配置
1分钟内可阅读完
译文 · 基于 Rust Fuzz Book
指南
原文链接: https://rust-fuzz.github.io/book/cargo-fuzz/guide.html
cargo-fuzz 所有可用命令:
| |
运行某个目标:
| |
Cargo 特性
可使用命令行选项 --features、--no-default-features 和 --all-features 对启用不同 Cargo 特性配置的 crate 进行模糊测试。注意这些选项控制的是 fuzz_targets crate;你需要将它们转发到被模糊测试的 crate,例如在 fuzz_targets/Cargo.toml 中添加:
| |
#[cfg(fuzzing)]
每个为模糊测试插桩的 crate——fuzz_targets crate、项目 crate 及其整个依赖树——都会以 --cfg fuzzing 选项编译。这样可以用简单的 #[cfg(not(fuzzing))] 禁用会妨碍模糊测试的代码路径(例如加密签名验证),而无需在每个依赖中维护外部可见的 Cargo 特性。
libFuzzer 配置选项
查看所有 libFuzzer 选项:
| |
例如,仅生成 ASCII 输入:
| |