本项目探索了一个基于反馈的模糊测试工具,它使用:
/proc/pid/map、/proc/pid/clear_refs 和 /proc/pid/pagemapprocess_vm_writev此处实现的成功代码和概念将被吸收到 resmack 中,使其成为一个完整的模糊测试工具 而不仅仅是基于语法的数据生成器。
参见博客文章 Resmack: Fuzzing Thoughts - Part 2 了解本项目所做工作的完整说明。
本项目需要:
linux-tools-commonlinux-tools-genericlinux-tools-$(uname -r)gccperf_event_paranoid 级别需为 <= 2:
echo 2 | sudo tee /proc/sys/kernel/perf_event_paranoid
构建测试目标:
gcc target.c -o a.out
构建模糊测试工具
cargo build --release
运行模糊测试工具
cargo run --release ./a.out
现在一起运行 ♪ ♫
gcc target.c -o a.out && cargo run --release ./a.out AAAAAAAAA
cargo test
cargo bench --bench snapshots -- --verbose