diff options
author | van Hauser <vh@thc.org> | 2023-06-12 10:16:45 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-12 10:16:45 +0300 |
commit | f1a616406eff94458ad300efa1b46ff301b24ae8 (patch) | |
tree | 4d3957e452ce12ef81f949a945c85f38fff216a3 /src/afl-fuzz-stats.c | |
parent | 61b6f4ed9e4dce15c39e4350278a95a41ea2522c (diff) | |
parent | ed97dbacef98c379d7028514a43c799c86050584 (diff) | |
download | afl++-f1a616406eff94458ad300efa1b46ff301b24ae8.tar.gz |
Merge pull request #1767 from AFLplusplus/mutationnew
Mutationnew
Diffstat (limited to 'src/afl-fuzz-stats.c')
-rw-r--r-- | src/afl-fuzz-stats.c | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/src/afl-fuzz-stats.c b/src/afl-fuzz-stats.c index 07157bf7..1499a7e4 100644 --- a/src/afl-fuzz-stats.c +++ b/src/afl-fuzz-stats.c @@ -27,6 +27,45 @@ #include "envs.h" #include <limits.h> +static char fuzzing_state[4][12] = {"started :-)", "in progress", "final phase", + "finished..."}; + +char *get_fuzzing_state(afl_state_t *afl) { + + u64 cur_ms = get_cur_time(); + u64 last_find = cur_ms - afl->last_find_time; + 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)) { + + return fuzzing_state[0]; + + } else { + + u64 last_find_100 = 100 * last_find; + u64 percent_cur = last_find_100 / cur_run_time; + u64 percent_total = last_find_100 / cur_total_run_time; + + if (unlikely(percent_cur >= 80 && percent_total >= 80)) { + + return fuzzing_state[3]; + + } else if (unlikely(percent_cur >= 55 && percent_total >= 55)) { + + return fuzzing_state[2]; + + } else { + + return fuzzing_state[1]; + + } + + } + +} + /* Write fuzzer setup file */ void write_setup_file(afl_state_t *afl, u32 argc, char **argv) { @@ -1282,7 +1321,11 @@ void show_stats_normal(afl_state_t *afl) { } /* Last line */ - SAYF(SET_G1 "\n" bSTG bLB bH30 bH20 bH2 bRB bSTOP cRST RESET_G1); + + SAYF(SET_G1 "\n" bSTG bLB bH cCYA bSTOP " strategy:" cPIN + " %s " bSTG bH10 cCYA bSTOP " state:" cPIN + " %s " bSTG bH2 bRB bSTOP cRST RESET_G1, + afl->fuzz_mode == 0 ? "explore" : "exploit", get_fuzzing_state(afl)); #undef IB |