2402 Commits

Author SHA1 Message Date
Dominik Maier
3a62bb68e0 updated unicornafl 2020-06-25 17:13:16 +02:00
van Hauser
8178f4dfdd remove radamsa, add radamsa custom mutator 2020-06-25 16:51:29 +02:00
Andrea Fioraldi
4a3305c007
Merge pull request #425 from dgmelski/fix-recalibration
Fix saturated maps & stability cliff in recalibration
2020-06-25 15:16:10 +02:00
hexcoder-
9858bc81a3 GNUmakefile: warn about '.' being first path in PATH environment variable. This causes recursion in 'as'. (seen in Haiku) 2020-06-25 13:28:34 +02:00
van Hauser
b5573b3adb add seek power schedule, remove update stats in calibration, fix help output 2020-06-25 10:33:59 +02:00
van Hauser
15dd4ad177 fix plot 2020-06-25 08:50:34 +02:00
David Melski
d540971443 Fix saturated maps & stability cliff in recalibration
I have observed two problems:

  1. A sudden "stability cliff" where stability drops precipitously.

  2. A sudden jump to a 100% saturated "density map".

Both issues are due to attempted "recalibration" of a case at the
beginning of fuzz_one_original() or mopt_common_fuzzing().  See the
comments "CALIBRATION (only if failed earlier on)" in those functions
and the subsequent call to calibrate_case().

At those calls to calibrate_case(), afl->fsrv.trace_bits holds
trace_bits for a run of the SUT on a prior queue entry.  However,
calibrate_case() may use the trace_bits as if they apply to the
current queue entry (afl->queue_cur).

Most often this bug causes the "stability cliff".  Trace bits are
compared for runs on distinct inputs, which can be very different.
The result is a sudden drop in stability.

Sometimes it leads to the "saturated map" problem.  A saturated
density map arises if the trace bits on the previous entry were
"simplified" by simplify_trace().  Simplified traces only contain the
values 1 and 128.  They are meant to be compared against
virgin_crashes and virgin_tmouts.

However, this bug causes the (stale) simplified trace to be compared
against virgin_bits during a call to has_new_bits(), which causes
every byte in vigin_bits to be something other than 255.  The overall
map density is determined by the percentage of bytes not 255, which
will be 100%.  Worse, AFL++ will be unable to detect novel occurrences
of edge counts 1 and 128 going forward.

This patch avoids the above issues by clearing q->exec_cksum when
calibration fails.  Recalibrations are forced to start with a fresh
trace on the queue entry.

Thanks to @andreafioraldi for suggesting the current, improved patch.
2020-06-24 17:59:04 -04:00
van Hauser
1d7c76d141 decrease time to sync for main 2020-06-24 17:37:16 +02:00
van Hauser
224a49341a update .gitignore 2020-06-24 17:04:28 +02:00
van Hauser
fce010f051 add -D option for -S 2020-06-24 11:14:00 +02:00
van Hauser
bdc8e3b79e create .synced/NAMES.last to document last sync attempts 2020-06-24 11:09:33 +02:00
van Hauser
9289af040c gitignore 2020-06-24 08:23:31 +02:00
van Hauser
49a769ac06 lto whitelist in test.sh 2020-06-23 21:23:10 +02:00
van Hauser
2b450aeb20 fix test.sh 2020-06-23 18:21:50 +02:00
van Hauser
5f1c0111a6 fix make files 2020-06-23 18:06:08 +02:00
van Hauser
89f0dc2d14 fix gcc mode for travis 2020-06-23 17:43:04 +02:00
van Hauser
cffb0e9a25 fix gcc makefile 2020-06-23 17:36:05 +02:00
van Hauser
2b26e3867f fix gcc makefile 2020-06-23 17:31:52 +02:00
Dominik Maier
aad433e11e Merge branch 'dev' of github.com:vanhauser-thc/AFLplusplus into dev 2020-06-23 15:08:49 +02:00
Dominik Maier
59e1a18197
Merge pull request #422 from devnexen/haiku__build_upd
Haiku  build upd
2020-06-23 11:01:22 +02:00
David Carlier
8f98044d69 Libdislocator Haiku build fix 2020-06-23 09:41:38 +00:00
David Carlier
6c414409d4 libtokencap Haiku support 2020-06-23 09:29:57 +00:00
Dominik Maier
7119bf5d86 Added rand, hash unittests 2020-06-22 21:58:23 +02:00
van Hauser
ea1222b33f old compiler fix 2020-06-22 21:40:02 +02:00
van Hauser
37edfe2de9 shmem support for afl-tmin and afl-showmap 2020-06-22 19:56:34 +02:00
van Hauser
76a2d9b59b further refinement 2020-06-22 13:48:59 +02:00
aflpp
87f127722c fix afl-cmin.bash 2020-06-22 08:28:41 +02:00
van Hauser
a49b5ef072 allow /tmp 2020-06-22 07:16:24 +02:00
van Hauser
5cad92e57e fix unicorn mode for CFLAGS 2020-06-21 18:07:30 +02:00
van Hauser
f6ef1fe65e fix libcompcov for CFLAGS 2020-06-21 16:43:55 +02:00
van Hauser
048e429356 remove -Werror and add include for libdislocator 2020-06-21 16:33:55 +02:00
van Hauser
eb3cb4bbf8 fix for s=0 2020-06-21 16:21:59 +02:00
van Hauser
b0866f59cc fix for -s 0 2020-06-21 14:08:41 +02:00
hexcoder-
b3b016a4a3 fix libradamsa see issue #419 2020-06-20 22:39:12 +02:00
van Hauser
341e17bf53
Merge pull request #418 from jonasmollerlarsen/dev
Fix when env. PATH contains spaces
2020-06-20 13:37:22 +02:00
hexcoder-
eb4561e3a6 afl-plot: fix issue #417, also check relative paths for directories 2020-06-20 13:09:47 +02:00
jonasmollerlarsen
990b234067 Fix when env. PATH contains spaces 2020-06-20 11:50:53 +02:00
van Hauser
07a4e6370a modify txt configs for test 2020-06-20 10:55:02 +02:00
van Hauser
1381e96d8c fix ascii percentage calc 2020-06-20 09:22:14 +02:00
van Hauser
5ca303393f fix ascii percentage calc 2020-06-20 09:21:02 +02:00
van Hauser
de2c565953 first commit, looks good 2020-06-19 18:05:04 +02:00
van Hauser
2a254fce8f fix afl-clang-fast for default pcguard mode 2020-06-19 14:21:34 +02:00
van Hauser
758f136d3e update todo 2020-06-18 20:39:06 +02:00
van Hauser
5d3d86c680 update todo 2020-06-18 15:33:16 +02:00
van Hauser
d8d5adeb61
Merge pull request #416 from Mem2019/patch-2
`fault == afl->crash_mode` should be likely
2020-06-18 07:08:11 +02:00
2019
003456f770
fault == afl->crash_mode should be likely
Since during normal fuzzing, crash_mode is FSRV_RUN_OK, and fault is also usually FSRV_RUN_OK since most executions are valid executions, thus it should be likely instead of unlikely
2020-06-18 11:23:10 +08:00
van Hauser
394d8ade15 work around for llvm 11 bug 2020-06-17 22:21:09 +02:00
van Hauser
61107c59cf fix displayed schedule 2020-06-17 16:46:30 +02:00
hexcoder-
889e54eab8 unit tests: fix stupid compiler warning for gcc 4.8.4 2020-06-16 23:07:33 +02:00
hexcoder-
a14f3c90a8 fix unit tests when exit is called at the end 2020-06-16 22:37:56 +02:00