From efef29f8770dfe7a90dbc1fd0a74f1f561a38694 Mon Sep 17 00:00:00 2001 From: Alwin Berger Date: Wed, 2 Nov 2022 14:47:00 +0100 Subject: [PATCH] set size and function from env --- fuzzers/qemu_fret/src/fuzzer.rs | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/fuzzers/qemu_fret/src/fuzzer.rs b/fuzzers/qemu_fret/src/fuzzer.rs index af656fee1e..6d0bc2bd17 100644 --- a/fuzzers/qemu_fret/src/fuzzer.rs +++ b/fuzzers/qemu_fret/src/fuzzer.rs @@ -44,9 +44,13 @@ use libafl_qemu::{ Regs, }; -pub const MAX_INPUT_SIZE: usize = 1048576; // 1MB +// pub const MAX_INPUT_SIZE: usize = 1048576; // 1MB pub fn fuzz() { + let MAX_INPUT_SIZE: usize = match env::var("FUZZ_SIZE") { + Ok(s) => str::parse::(&s).expect("FUZZ_SIZE was not a number"), + _ => 1048576, + }; // 1MB // Hardcoded parameters let timeout = Duration::from_secs(1); let broker_port = 1337; @@ -63,10 +67,15 @@ pub fn fuzz() { let mut elf_buffer = Vec::new(); let elf = EasyElf::from_file(emu.binary_path(), &mut elf_buffer).unwrap(); - let test_one_input_ptr = elf - .resolve_symbol("LLVMFuzzerTestOneInput", emu.load_addr()) - .expect("Symbol LLVMFuzzerTestOneInput not found"); - println!("LLVMFuzzerTestOneInput @ {:#x}", test_one_input_ptr); + let test_one_input_ptr = match env::var("MAIN_FUNC") { + Ok(s) => elf + .resolve_symbol(&s, emu.load_addr()) + .expect(&format!("Symbol {} not found",s)), + Err(e) => elf + .resolve_symbol("LLVMFuzzerTestOneInput", emu.load_addr()) + .expect("Symbol LLVMFuzzerTestOneInput not found"), + }; + println!("Main funtion @ {:#x}", test_one_input_ptr); emu.set_breakpoint(test_one_input_ptr); // LLVMFuzzerTestOneInput unsafe { emu.run() };