
This is an experimental project for [resmack](https://gitlab.com/d0c-s4vage/resmack) to figure out the best methods for instrumenting target processes, working with memory breakpoints, snapshot fuzzing, corpus management, and feedback metrics
This project is an exploration of a feedback-driven fuzzer that uses:
/proc/pid/map, /proc/pid/clear_refs, and /proc/pid/pagemapprocess_vm_writevSuccessful code and concepts implemented here will be absorbed into resmack to make it a full fuzzer instead of only grammar-based data generator.
See the blog post Resmack: Fuzzing Thoughts - Part 2 for a full writeup on what is done in this project.
This project requires:
linux-tools-commonlinux-tools-genericlinux-tools-$(uname -r)gccA perf_event_paranoid level of <= 2:
echo 2 | sudo tee /proc/sys/kernel/perf_event_paranoid
Building the test target:
gcc target.c -o a.out
Building the fuzzer
cargo build --release
Running the fuzzer
cargo run --release ./a.out
All together now ♪ ♫
gcc target.c -o a.out && cargo run --release ./a.out AAAAAAAAA
cargo test
cargo bench --bench snapshots -- --verbose