rename bin, allow random fuzzing
This commit is contained in:
parent
7ca2d43f3d
commit
68c4887dad
@ -1,5 +1,5 @@
|
||||
[package]
|
||||
name = "qemu_systemmode"
|
||||
name = "fret"
|
||||
version = "0.8.2"
|
||||
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"]
|
||||
edition = "2021"
|
||||
|
@ -1,3 +1,5 @@
|
||||
TIME=7200
|
||||
|
||||
corpora/%/seed:
|
||||
mkdir -p $$(dirname $@)
|
||||
LINE=$$(grep "^$$(basename $*)" target_symbols.csv); \
|
||||
@ -11,7 +13,7 @@ corpora/%/seed:
|
||||
DUMP_SEED=seed; \
|
||||
../fuzzer.sh
|
||||
|
||||
timedump/%: corpora/%/seed
|
||||
timedump/%$(FUZZ_RANDOM): corpora/%/seed
|
||||
mkdir -p $$(dirname $@)
|
||||
LINE=$$(grep "^$$(basename $*)" target_symbols.csv); \
|
||||
export \
|
||||
@ -22,7 +24,9 @@ timedump/%: corpora/%/seed
|
||||
BREAKPOINT=$$(echo $$LINE | cut -d, -f5) \
|
||||
SEED_DIR=benchmark/corpora/$* \
|
||||
TIME_DUMP=benchmark/$@; \
|
||||
../fuzzer.sh + + + + + 5 + + +
|
||||
../fuzzer.sh + + + + + $(TIME) + + +
|
||||
|
||||
all_sequential: timedump/sequential/mpeg2$(FUZZ_RANDOM) timedump/sequential/dijkstra$(FUZZ_RANDOM) timedump/sequential/epic$(FUZZ_RANDOM)
|
||||
|
||||
clean:
|
||||
rm -rf corpora timedump
|
@ -1,2 +1,5 @@
|
||||
kernel,main_function,input_symbol,input_size,return_function
|
||||
mpeg2,main,mpeg2_oldorgframe,90112,mpeg2_return
|
||||
audiobeam,main,audiobeam_input,11520,audiobeam_return
|
||||
epic,main,epic_image,4096,epic_return
|
||||
dijkstra,main,dijkstra_AdjMatrix,10000,dijkstra_return
|
|
@ -11,4 +11,6 @@ cd "$parent_path"
|
||||
[ -n "$7" -a "$7" != "+" -a -z "$TIME_DUMP" ] && export TIME_DUMP="$7"
|
||||
[ -n "$8" -a "$8" != "+" -a -z "$DO_SHOWMAP" ] && export DO_SHOWMAP="$8"
|
||||
[ -n "$9" -a "$9" != "+" -a -z "$SHOWMAP_TEXTINPUT" ] && export SHOWMAP_TEXTINPUT="$9"
|
||||
target/debug/qemu_systemmode -icount shift=3,align=off,sleep=off -machine mps2-an385 -monitor null -kernel $KERNEL -serial null -nographic -S -semihosting --semihosting-config enable=on,target=native # -snapshot -drive if=none,format=qcow2,file=dummy.qcow2
|
||||
|
||||
[ -z "$FUZZER" ] && export FUZZER=target/debug/fret
|
||||
$FUZZER -icount shift=3,align=off,sleep=off -machine mps2-an385 -monitor null -kernel $KERNEL -serial null -nographic -S -semihosting --semihosting-config enable=on,target=native # -snapshot -drive if=none,format=qcow2,file=dummy.qcow2
|
@ -28,7 +28,7 @@ use libafl::{
|
||||
stages::StdMutationalStage,
|
||||
state::{HasCorpus, StdState},
|
||||
Error,
|
||||
prelude::{SimpleMonitor, SimpleEventManager, AsMutSlice}, Evaluator,
|
||||
prelude::{SimpleMonitor, SimpleEventManager, AsMutSlice, RandBytesGenerator, Generator}, Evaluator,
|
||||
};
|
||||
use libafl_qemu::{
|
||||
edges, edges::QemuEdgeCoverageHelper, elf::EasyElf, emu::Emulator, GuestPhysAddr, QemuExecutor,
|
||||
@ -314,9 +314,20 @@ pub fn fuzz() {
|
||||
Ok(t) => {
|
||||
println!("Iterations {}",t);
|
||||
let num = str::parse::<u64>(&t).expect("FUZZ_ITERS was not a number");
|
||||
if let Ok(_) = env::var("FUZZ_RANDOM") { unsafe {
|
||||
println!("Random Fuzzing, ignore corpus");
|
||||
let mut generator = RandBytesGenerator::new(MAX_INPUT_SIZE);
|
||||
let target_duration = Duration::from_secs(num);
|
||||
let start_time = std::time::Instant::now();
|
||||
while start_time.elapsed() < target_duration {
|
||||
let inp = generator.generate(&mut state).unwrap();
|
||||
fuzzer.evaluate_input(&mut state, &mut executor, &mut mgr, inp).unwrap();
|
||||
}
|
||||
}} else {
|
||||
fuzzer
|
||||
.fuzz_loop_for_duration(&mut stages, &mut executor, &mut state, &mut mgr, Duration::from_secs(num))
|
||||
.unwrap();
|
||||
}
|
||||
if let Ok(td) = env::var("TIME_DUMP") {
|
||||
let mut file = OpenOptions::new()
|
||||
.read(true)
|
||||
|
Loading…
x
Reference in New Issue
Block a user