
Это экспериментальный проект для [resmack](https://gitlab.com/d0c-s4vage/resmack), чтобы выяснить наилучшие методы для инструментирования целевых процессов, работы с точками останова памяти, фаззинга снимков, управления корпусом и метрик обратной связи.
Этот проект — исследование фаззера с обратной связью, который использует:
/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)gccУровень perf_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