
Questo è un progetto sperimentale per [resmack](https://gitlab.com/d0c-s4vage/resmack) per determinare i migliori metodi per instrumentare i processi target, lavorare con breakpoint di memoria, snapshot fuzzing, gestione del corpus e metriche di feedback.
Questo progetto è un'esplorazione di un fuzzer guidato dal feedback che utilizza:
/proc/pid/map, /proc/pid/clear_refs e /proc/pid/pagemapprocess_vm_writevIl codice e i concetti di successo implementati qui saranno assorbiti in resmack per renderlo un fuzzer completo anziché solo un generatore di dati basato su grammatica.
Vedi il post sul blog Resmack: Fuzzing Thoughts - Part 2 per una descrizione completa di ciò che è stato fatto in questo progetto.
Questo progetto richiede:
linux-tools-commonlinux-tools-genericlinux-tools-$(uname -r)gccUn livello perf_event_paranoid di <= 2:
echo 2 | sudo tee /proc/sys/kernel/perf_event_paranoid
Compilazione del target di test:
gcc target.c -o a.out
Compilazione del fuzzer
cargo build --release
Esecuzione del fuzzer
cargo run --release ./a.out
Tutto insieme ora ♪ ♫
gcc target.c -o a.out && cargo run --release ./a.out AAAAAAAAA
cargo test
cargo bench --bench snapshots -- --verbose