
Este é um projeto experimental para [resmack](https://gitlab.com/d0c-s4vage/resmack) descobrir os melhores métodos para instrumentar processos alvo, trabalhar com breakpoints de memória, fuzzing de snapshots, gerenciamento de corpus e métricas de feedback.
Este projeto é uma exploração de um fuzzer orientado por feedback que utiliza:
/proc/pid/map, /proc/pid/clear_refs e /proc/pid/pagemapprocess_vm_writevCódigo e conceitos bem-sucedidos implementados aqui serão absorvidos no resmack para transformá-lo em um fuzzer completo em vez de apenas um gerador de dados baseado em gramática.
Veja a postagem do blog Resmack: Fuzzing Thoughts - Part 2 para um relato completo sobre o que é feito neste projeto.
Este projeto requer:
linux-tools-commonlinux-tools-genericlinux-tools-$(uname -r)gccUm nível perf_event_paranoid de <= 2:
echo 2 | sudo tee /proc/sys/kernel/perf_event_paranoid
Compilando o alvo de teste:
gcc target.c -o a.out
Compilando o fuzzer
cargo build --release
Executando o fuzzer
cargo run --release ./a.out
Tudo junto agora ♪ ♫
gcc target.c -o a.out && cargo run --release ./a.out AAAAAAAAA
cargo test
cargo bench --bench snapshots -- --verbose