diff options
Diffstat (limited to 'infra/base-images/base-builder/compile_afl')
-rw-r--r-- | infra/base-images/base-builder/compile_afl | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/infra/base-images/base-builder/compile_afl b/infra/base-images/base-builder/compile_afl index dc6624459..d6509c74c 100644 --- a/infra/base-images/base-builder/compile_afl +++ b/infra/base-images/base-builder/compile_afl @@ -22,6 +22,8 @@ # AFL++ settings. export AFL_LLVM_MODE_WORKAROUND=0 export AFL_ENABLE_DICTIONARY=0 +export AFL_ENABLE_CMPLOG=1 +export AFL_LAF_CHANCE=3 # Start compiling afl++. echo "Copying precompiled afl++" @@ -45,19 +47,32 @@ export ASAN_OPTIONS="detect_leaks=0:symbolize=0:detect_odr_violation=0:abort_on_ # AFL compile option roulette. It is OK if they all happen together. -# 40% chance to perform CMPLOG +# 20% chance for CTX-2 coverage instrumentation (Caller conTeXt sensitive +# edge coverage). +test $(($RANDOM % 100)) -lt 20 && { + export AFL_LLVM_INSTRUMENT=CLASSIC,CTX-2 + export AFL_ENABLE_CMPLOG=0 + export AFL_LAF_CHANCE=30 +} + +# 40% chance to create a dictionary. +test $(($RANDOM % 100)) -lt 40 && { + export AFL_ENABLE_DICTIONARY=1 +} + +# 60% chance to perform CMPLOG/REDQUEEN. rm -f "$OUT/afl_cmplog.txt" -test $(($RANDOM % 10)) -lt 4 && { +test "$AFL_ENABLE_CMPLOG" = "1" -a $(($RANDOM % 100)) -lt 60 && { export AFL_LLVM_CMPLOG=1 touch "$OUT/afl_cmplog.txt" } -# 10% chance to perform LAF_INTEL -test $(($RANDOM % 10)) -lt 1 && { +# 3% chance to perform COMPCOV/LAF_INTEL. +test $(($RANDOM % 100)) -lt $AFL_LAF_CHANCE && { export AFL_LLVM_LAF_ALL=1 } -# If the targets wants a dictionary - then create one. +# Create a dictionary if one is wanted. test "$AFL_ENABLE_DICTIONARY" = "1" && { export AFL_LLVM_DICT2FILE="$OUT/afl++.dict" } |