about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvanhauser-thc <vh@thc.org>2023-07-18 09:56:28 +0200
committervanhauser-thc <vh@thc.org>2023-07-18 09:56:28 +0200
commit4113b6ccada97c32b3852ece5ffe2fee6dcbc2c8 (patch)
tree35e997e3711be5b6d8fdbf5424a50df29f731814
parent2b8e528a3b5f44df590b8f727983d142857d0433 (diff)
downloadafl++-4113b6ccada97c32b3852ece5ffe2fee6dcbc2c8.tar.gz
take care of uninstrumented mode for fuzz state and mode
-rw-r--r--README.md1
-rw-r--r--src/afl-fuzz-bitmap.c3
-rw-r--r--src/afl-fuzz-stats.c9
-rw-r--r--src/afl-fuzz.c3
4 files changed, 12 insertions, 4 deletions
diff --git a/README.md b/README.md
index 05c662c1..42fcaa0d 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,7 @@ AFL++ is maintained by:
 * Andrea Fioraldi <andreafioraldi@gmail.com>
 * Dominik Maier <mail@dmnk.co>
 * Heiko "hexcoder-" Eißfeldt <heiko.eissfeldt@hexco.de>
+* frida_mode is maintained by @Worksbutnottested
 * Documentation: Jana Aydinbas <jana.aydinbas@gmail.com>
 
 Originally developed by Michał "lcamtuf" Zalewski.
diff --git a/src/afl-fuzz-bitmap.c b/src/afl-fuzz-bitmap.c
index fb8a1d4b..87157cad 100644
--- a/src/afl-fuzz-bitmap.c
+++ b/src/afl-fuzz-bitmap.c
@@ -533,7 +533,8 @@ save_if_interesting(afl_state_t *afl, void *mem, u32 len, u8 fault) {
     close(fd);
     add_to_queue(afl, queue_fn, len, 0);
 
-    if (unlikely(afl->fuzz_mode) && likely(afl->switch_fuzz_mode)) {
+    if (unlikely(afl->fuzz_mode) &&
+        likely(afl->switch_fuzz_mode && !afl->non_instrumented_mode)) {
 
       if (afl->afl_env.afl_no_ui) {
 
diff --git a/src/afl-fuzz-stats.c b/src/afl-fuzz-stats.c
index 4013370d..3d0a9b9a 100644
--- a/src/afl-fuzz-stats.c
+++ b/src/afl-fuzz-stats.c
@@ -37,8 +37,13 @@ char *get_fuzzing_state(afl_state_t *afl) {
   u64 cur_run_time = cur_ms - afl->start_time;
   u64 cur_total_run_time = afl->prev_run_time + cur_run_time;
 
-  if (unlikely(cur_run_time < 60 * 3 * 1000 ||
-               cur_total_run_time < 60 * 5 * 1000)) {
+  if (unlikely(afl->non_instrumented_mode)) {
+
+    return fuzzing_state[1];
+
+  } else if (unlikely(cur_run_time < 60 * 3 * 1000 ||
+
+                      cur_total_run_time < 60 * 5 * 1000)) {
 
     return fuzzing_state[0];
 
diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c
index 9afece66..d8a88f00 100644
--- a/src/afl-fuzz.c
+++ b/src/afl-fuzz.c
@@ -2755,7 +2755,8 @@ int main(int argc, char **argv_orig, char **envp) {
 
     u64 cur_time = get_cur_time();
 
-    if (likely(afl->switch_fuzz_mode && afl->fuzz_mode == 0) &&
+    if (likely(afl->switch_fuzz_mode && afl->fuzz_mode == 0 &&
+               !afl->non_instrumented_mode) &&
         unlikely(cur_time > afl->last_find_time + afl->switch_fuzz_mode)) {
 
       if (afl->afl_env.afl_no_ui) {