From 730fbcf6d4d2b2c2856c97af1cd8306491ed24f7 Mon Sep 17 00:00:00 2001 From: Alwin Berger Date: Wed, 27 Mar 2024 15:24:44 +0100 Subject: [PATCH] fix capture in api calls --- fuzzers/FRET/benchmark/target_symbols.csv | 3 ++- fuzzers/FRET/src/systemstate/helpers.rs | 8 ++++---- fuzzers/FRET/src/systemstate/observers.rs | 12 +++++++----- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/fuzzers/FRET/benchmark/target_symbols.csv b/fuzzers/FRET/benchmark/target_symbols.csv index c42ba19ae7..6412c8f547 100644 --- a/fuzzers/FRET/benchmark/target_symbols.csv +++ b/fuzzers/FRET/benchmark/target_symbols.csv @@ -22,4 +22,5 @@ watersv2_int,main_waters,FUZZ_INPUT,4096,trigger_Qemu_break micro_branchless,main_branchless,FUZZ_INPUT,4,trigger_Qemu_break micro_int,main_int,FUZZ_INPUT,16,trigger_Qemu_break micro_longint,main_micro_longint,FUZZ_INPUT,16,trigger_Qemu_break -minimal,main_minimal,FUZZ_INPUT,4096,trigger_Qemu_break \ No newline at end of file +minimal,main_minimal,FUZZ_INPUT,4096,trigger_Qemu_break +gen3,main_minimal,FUZZ_INPUT,4096,trigger_Qemu_break diff --git a/fuzzers/FRET/src/systemstate/helpers.rs b/fuzzers/FRET/src/systemstate/helpers.rs index b3ddaa24e4..bf65068056 100644 --- a/fuzzers/FRET/src/systemstate/helpers.rs +++ b/fuzzers/FRET/src/systemstate/helpers.rs @@ -235,7 +235,7 @@ fn trigger_collection(emulator: &Emulator, edge: (Option,Option { - if let Some(src) = edge.0 { // Bot set, can be API Call/Ret + if let Some(src) = edge.0 { // Both set, can be API Call/Ret if let Some(s) = h.api_fn_addrs.get(&src) { // API End systemstate.capture_point=(CaptureEvent::APIEnd, s); } else if let Some(s) = h.api_fn_addrs.get(&dest) { // API Call @@ -282,9 +282,9 @@ fn trigger_collection(emulator: &Emulator, edge: (Option,Option) -> Vec) -> Vec { // remove subsequent pairs of equal states where an ISRStart follows an ISREnd + let mut ret : Vec = Vec::new(); + ret.push(trace[0].clone()); let mut i = 1; while i < trace.len() - 1 { if trace[i] == trace[i + 1] && @@ -181,13 +183,13 @@ fn post_process_trace(mut trace: Vec) -> Vec