aboutsummaryrefslogtreecommitdiff
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) {