speed up random generation

This commit is contained in:
Alwin Berger 2023-01-25 16:14:08 +01:00
parent 8fcc54bbdd
commit 35435fbd97
2 changed files with 6 additions and 3 deletions

View File

@ -23,4 +23,5 @@ libafl_qemu = { path = "../../libafl_qemu/", features = ["arm", "systemmode"] }
serde = { version = "1.0", default-features = false, features = ["alloc"] } # serialization lib serde = { version = "1.0", default-features = false, features = ["alloc"] } # serialization lib
hashbrown = { version = "0.12", features = ["serde", "ahash-compile-time-rng"] } # A faster hashmap, nostd compatible hashbrown = { version = "0.12", features = ["serde", "ahash-compile-time-rng"] } # A faster hashmap, nostd compatible
petgraph = { version="0.6.0", features = ["serde-1"] } petgraph = { version="0.6.0", features = ["serde-1"] }
ron = "0.7" # write serialized data - including hashmaps ron = "0.7" # write serialized data - including hashmaps
rand = "0.5"

View File

@ -340,11 +340,13 @@ pub fn fuzz() {
let num = str::parse::<u64>(&t).expect("FUZZ_ITERS was not a number"); let num = str::parse::<u64>(&t).expect("FUZZ_ITERS was not a number");
if let Ok(_) = env::var("FUZZ_RANDOM") { unsafe { if let Ok(_) = env::var("FUZZ_RANDOM") { unsafe {
println!("Random Fuzzing, ignore corpus"); println!("Random Fuzzing, ignore corpus");
let mut generator = RandBytesGenerator::new(MAX_INPUT_SIZE); // let mut generator = RandBytesGenerator::new(MAX_INPUT_SIZE);
let target_duration = Duration::from_secs(num); let target_duration = Duration::from_secs(num);
let start_time = std::time::Instant::now(); let start_time = std::time::Instant::now();
while start_time.elapsed() < target_duration { while start_time.elapsed() < target_duration {
let inp = generator.generate(&mut state).unwrap(); // let inp = generator.generate(&mut state).unwrap();
// libafl's generator is too slow
let inp = BytesInput::new(vec![rand::random::<u8>(); MAX_INPUT_SIZE]);
fuzzer.evaluate_input(&mut state, &mut executor, &mut mgr, inp).unwrap(); fuzzer.evaluate_input(&mut state, &mut executor, &mut mgr, inp).unwrap();
} }
}} else { }} else {