1*08b48e0bSAndroid Build Coastguard Worker# Changelog 2*08b48e0bSAndroid Build Coastguard Worker 3*08b48e0bSAndroid Build Coastguard Worker This is the list of all noteworthy changes made in every public 4*08b48e0bSAndroid Build Coastguard Worker release of the tool. See README.md for the general instruction manual. 5*08b48e0bSAndroid Build Coastguard Worker 6*08b48e0bSAndroid Build Coastguard Worker### Version ++4.10c (release) 7*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 8*08b48e0bSAndroid Build Coastguard Worker - default power schedule is now EXPLORE, due a fix in fast schedules 9*08b48e0bSAndroid Build Coastguard Worker explore is slightly better now. 10*08b48e0bSAndroid Build Coastguard Worker - fixed minor issues in the mutation engine, thanks to @futhewo for 11*08b48e0bSAndroid Build Coastguard Worker reporting! 12*08b48e0bSAndroid Build Coastguard Worker - better deterministic fuzzing is now available, benchmarks have shown 13*08b48e0bSAndroid Build Coastguard Worker to improve fuzzing. Enable with -D. Thanks to @kdsjZh for the PR! 14*08b48e0bSAndroid Build Coastguard Worker - afl-cc: 15*08b48e0bSAndroid Build Coastguard Worker - large rewrite by @SonicStark which fixes a few corner cases, thanks! 16*08b48e0bSAndroid Build Coastguard Worker - LTO mode now requires llvm 12+ 17*08b48e0bSAndroid Build Coastguard Worker - workaround for ASAN with gcc_plugin mode 18*08b48e0bSAndroid Build Coastguard Worker - instrumentation: 19*08b48e0bSAndroid Build Coastguard Worker - LLVM 18 support, thanks to @devnexen! 20*08b48e0bSAndroid Build Coastguard Worker - Injection (SQL, LDAP, XSS) fuzzing feature now available, see 21*08b48e0bSAndroid Build Coastguard Worker `instrumentation/README.injections.md` how to activate/use/expand. 22*08b48e0bSAndroid Build Coastguard Worker - compcov/LAF-intel: 23*08b48e0bSAndroid Build Coastguard Worker - floating point splitting bug fix by @hexcoder 24*08b48e0bSAndroid Build Coastguard Worker - due a bug in LLVM 17 integer splitting is disabled there! 25*08b48e0bSAndroid Build Coastguard Worker - when splitting floats was selected, integers were always split as well, 26*08b48e0bSAndroid Build Coastguard Worker fixed to require AFL_LLVM_LAF_SPLIT_COMPARES or _ALL as it should 27*08b48e0bSAndroid Build Coastguard Worker - dynamic instrumentation filtering for LLVM NATIVE, thanks @Mozilla! 28*08b48e0bSAndroid Build Coastguard Worker see utils/dynamic_covfilter/README.md 29*08b48e0bSAndroid Build Coastguard Worker - qemu_mode: 30*08b48e0bSAndroid Build Coastguard Worker - plugins are now activated by default and a new module is included that 31*08b48e0bSAndroid Build Coastguard Worker produces drcov compatible traces for lighthouse/lightkeeper/... 32*08b48e0bSAndroid Build Coastguard Worker thanks to @JRomainG to submitting! 33*08b48e0bSAndroid Build Coastguard Worker - updated Nyx checkout (fixes a bug) and some QOL 34*08b48e0bSAndroid Build Coastguard Worker - updated the custom grammar mutator 35*08b48e0bSAndroid Build Coastguard Worker - document afl-cmin does not work on macOS (but afl-cmin.bash does) 36*08b48e0bSAndroid Build Coastguard Worker 37*08b48e0bSAndroid Build Coastguard Worker### Version ++4.09c (release) 38*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 39*08b48e0bSAndroid Build Coastguard Worker - fixed the new mutation implementation for two bugs 40*08b48e0bSAndroid Build Coastguard Worker - added `AFL_FINAL_SYNC` which forces a final fuzzer sync (also for `-F`) 41*08b48e0bSAndroid Build Coastguard Worker before terminating. 42*08b48e0bSAndroid Build Coastguard Worker - added AFL_IGNORE_SEED_PROBLEMS to skip over seeds that time out instead 43*08b48e0bSAndroid Build Coastguard Worker of exiting with an error message 44*08b48e0bSAndroid Build Coastguard Worker - allow -S/-M naming up to 50 characters (from 24) 45*08b48e0bSAndroid Build Coastguard Worker - CMPLOG: 46*08b48e0bSAndroid Build Coastguard Worker - added scale support (-l S) 47*08b48e0bSAndroid Build Coastguard Worker - skip unhelpful insertions (u8) 48*08b48e0bSAndroid Build Coastguard Worker - added --version and --help command line parameters 49*08b48e0bSAndroid Build Coastguard Worker - fixed endless loop when reading malformed dictionaries 50*08b48e0bSAndroid Build Coastguard Worker - new custom mutator function: post_run - thanks to yangzao! 51*08b48e0bSAndroid Build Coastguard Worker - afl-whatsup: 52*08b48e0bSAndroid Build Coastguard Worker - detect instanced that are starting up and show them as such as not dead 53*08b48e0bSAndroid Build Coastguard Worker - now also shows coverage reached 54*08b48e0bSAndroid Build Coastguard Worker - option -m shows only very relevant stats 55*08b48e0bSAndroid Build Coastguard Worker - option -n will not use color in the output 56*08b48e0bSAndroid Build Coastguard Worker - instrumentation: 57*08b48e0bSAndroid Build Coastguard Worker - fix for a few string compare transform functions for LAF 58*08b48e0bSAndroid Build Coastguard Worker - we are instrumenting __cxx internal functions again. this might break 59*08b48e0bSAndroid Build Coastguard Worker a few targets, please report if so. 60*08b48e0bSAndroid Build Coastguard Worker - frida_mode: 61*08b48e0bSAndroid Build Coastguard Worker - fixes support for large map offsets 62*08b48e0bSAndroid Build Coastguard Worker - support for AFL_FUZZER_LOOPCOUNT for afl.rs and LLVMFuzzerTestOneInput 63*08b48e0bSAndroid Build Coastguard Worker - afl-cmin/afl-cmin.bash: prevent unneeded file errors 64*08b48e0bSAndroid Build Coastguard Worker - added new tool afl-addseeds that adds new seeds to a running campaign 65*08b48e0bSAndroid Build Coastguard Worker - added benchmark/benchmark.py if you want to see how good your fuzzing 66*08b48e0bSAndroid Build Coastguard Worker speed is in comparison to other setups. 67*08b48e0bSAndroid Build Coastguard Worker 68*08b48e0bSAndroid Build Coastguard Worker### Version ++4.08c (release) 69*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 70*08b48e0bSAndroid Build Coastguard Worker - new mutation engine: mutations that favor discovery more paths are 71*08b48e0bSAndroid Build Coastguard Worker prefered until no new finds for 10 minutes then switching to mutations 72*08b48e0bSAndroid Build Coastguard Worker that favor triggering crashes. Modes and switch time can be configured 73*08b48e0bSAndroid Build Coastguard Worker with `-P`. Also input mode for the target can be defined with `-a` to 74*08b48e0bSAndroid Build Coastguard Worker be `text` or `binary` (defaults to `generic`) 75*08b48e0bSAndroid Build Coastguard Worker - new custom mutator that has the new afl++ engine (so it can easily 76*08b48e0bSAndroid Build Coastguard Worker incorporated into new custom mutators), and also comes with a standalone 77*08b48e0bSAndroid Build Coastguard Worker command line tool! See custom_mutators/aflpp/standalone/ 78*08b48e0bSAndroid Build Coastguard Worker - display the state of the fuzzing run in the UI :-) 79*08b48e0bSAndroid Build Coastguard Worker - fix timeout setting if '+' is used or a session is restarted 80*08b48e0bSAndroid Build Coastguard Worker - -l X option to enable base64 transformation solving 81*08b48e0bSAndroid Build Coastguard Worker - allow to disable CMPLOG with '-c -' (e.g. afl.rs enforces '-c 0' on 82*08b48e0bSAndroid Build Coastguard Worker every instance which is counterproductive). 83*08b48e0bSAndroid Build Coastguard Worker - afl-cmin/afl-cmin.bash: 84*08b48e0bSAndroid Build Coastguard Worker - fixed a bug inherited from vanilla AFL where a coverage of 85*08b48e0bSAndroid Build Coastguard Worker map[123] = 11 would be the same as map[1123] = 1 86*08b48e0bSAndroid Build Coastguard Worker - warn on crashing inputs 87*08b48e0bSAndroid Build Coastguard Worker - adjust threads if less inputs than threads specified 88*08b48e0bSAndroid Build Coastguard Worker - afl-cc: 89*08b48e0bSAndroid Build Coastguard Worker - fixed an off-by-one instrumentation of iselect, hurting coverage a bit. 90*08b48e0bSAndroid Build Coastguard Worker Thanks to @amykweon for spotting and fixing! 91*08b48e0bSAndroid Build Coastguard Worker - @toka fixed a bug in laf-intel signed integer comparison splitting, 92*08b48e0bSAndroid Build Coastguard Worker thanks a lot!! 93*08b48e0bSAndroid Build Coastguard Worker - more LLVM compatability 94*08b48e0bSAndroid Build Coastguard Worker - frida_mode: 95*08b48e0bSAndroid Build Coastguard Worker - support for long form instrumentation on x86_x64 and arm64 96*08b48e0bSAndroid Build Coastguard Worker - renamed utils/get_symbol_addr.sh to utils/frida_get_symbol_addr.sh 97*08b48e0bSAndroid Build Coastguard Worker - qemu_mode: 98*08b48e0bSAndroid Build Coastguard Worker - added qemu_mode/utils/qemu_get_symbol_addr.sh 99*08b48e0bSAndroid Build Coastguard Worker 100*08b48e0bSAndroid Build Coastguard Worker### Version ++4.07c (release) 101*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 102*08b48e0bSAndroid Build Coastguard Worker - reverse reading the seeds only on restarts (increases performance) 103*08b48e0bSAndroid Build Coastguard Worker - new env `AFL_POST_PROCESS_KEEP_ORIGINAL` to keep the orignal 104*08b48e0bSAndroid Build Coastguard Worker data before post process on finds (for atnwalk custom mutator) 105*08b48e0bSAndroid Build Coastguard Worker - new env `AFL_IGNORE_PROBLEMS_COVERAGE` to ignore coverage from 106*08b48e0bSAndroid Build Coastguard Worker loaded libs after forkserver initialization (required by Mozilla) 107*08b48e0bSAndroid Build Coastguard Worker - afl-cc: 108*08b48e0bSAndroid Build Coastguard Worker - added @responsefile support 109*08b48e0bSAndroid Build Coastguard Worker - new env `AFL_LLVM_LTO_SKIPINIT` to support the AFL++ based WASM 110*08b48e0bSAndroid Build Coastguard Worker (https://github.com/fgsect/WAFL) project 111*08b48e0bSAndroid Build Coastguard Worker - error and print help if afl-clan-lto is used with lto=thin 112*08b48e0bSAndroid Build Coastguard Worker - rewrote our PCGUARD pass to be compatible with LLVM 15+ shenanigans, 113*08b48e0bSAndroid Build Coastguard Worker requires LLVM 13+ now instead of 10.0.1+ 114*08b48e0bSAndroid Build Coastguard Worker - fallback to native LLVM PCGUARD if our PCGUARD is unavailable 115*08b48e0bSAndroid Build Coastguard Worker - fixed a crash in GCC CMPLOG 116*08b48e0bSAndroid Build Coastguard Worker - afl-showmap: 117*08b48e0bSAndroid Build Coastguard Worker - added custom mutator post_process and send support 118*08b48e0bSAndroid Build Coastguard Worker - add `-I filelist` option, an alternative to `-i in_dir` 119*08b48e0bSAndroid Build Coastguard Worker - afl-cmin + afl-cmin.bash: 120*08b48e0bSAndroid Build Coastguard Worker - `-T threads` parallel task support, can be a huge speedup! 121*08b48e0bSAndroid Build Coastguard Worker - qemu_mode: 122*08b48e0bSAndroid Build Coastguard Worker - Persistent mode + QASAN support for ppc32 targets by @worksbutnottested 123*08b48e0bSAndroid Build Coastguard Worker - a new grammar custom mutator atnwalk was submitted by @voidptr127 ! 124*08b48e0bSAndroid Build Coastguard Worker - two new custom mutators are now available: 125*08b48e0bSAndroid Build Coastguard Worker - TritonDSE in custom_mutators/aflpp_tritondse 126*08b48e0bSAndroid Build Coastguard Worker - SymQEMU in custom_mutators/symqemu 127*08b48e0bSAndroid Build Coastguard Worker 128*08b48e0bSAndroid Build Coastguard Worker### Version ++4.06c (release) 129*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 130*08b48e0bSAndroid Build Coastguard Worker - ensure temporary file descriptor is closed when not used 131*08b48e0bSAndroid Build Coastguard Worker - added `AFL_NO_WARN_INSTABILITY` 132*08b48e0bSAndroid Build Coastguard Worker - added time_wo_finds to fuzzer_stats 133*08b48e0bSAndroid Build Coastguard Worker - fixed a crash in pizza (1st april easter egg) mode. Sorry for 134*08b48e0bSAndroid Build Coastguard Worker everyone who was affected! 135*08b48e0bSAndroid Build Coastguard Worker - allow pizza mode to be disabled when AFL_PIZZA_MODE is set to -1 136*08b48e0bSAndroid Build Coastguard Worker - option `-p mmopt` now also selects new queue items more often 137*08b48e0bSAndroid Build Coastguard Worker - fix bug in post_process custom mutator implementation 138*08b48e0bSAndroid Build Coastguard Worker - print name of custom mutator in UI 139*08b48e0bSAndroid Build Coastguard Worker - slight changes that improve fuzzer performance 140*08b48e0bSAndroid Build Coastguard Worker - afl-cc: 141*08b48e0bSAndroid Build Coastguard Worker - add CFI sanitizer variant to gcc targets 142*08b48e0bSAndroid Build Coastguard Worker - llvm 16 + 17 support (thanks to @devnexen!) 143*08b48e0bSAndroid Build Coastguard Worker - support llvm 15 native pcguard changes 144*08b48e0bSAndroid Build Coastguard Worker - support for LLVMFuzzerTestOneInput -1 return 145*08b48e0bSAndroid Build Coastguard Worker - LTO autoken and llvm_mode: added AFL_LLVM_DICT2FILE_NO_MAIN support 146*08b48e0bSAndroid Build Coastguard Worker - qemu_mode: 147*08b48e0bSAndroid Build Coastguard Worker - fix _RANGES envs to allow hyphens in the filenames 148*08b48e0bSAndroid Build Coastguard Worker - basic riscv support 149*08b48e0bSAndroid Build Coastguard Worker - frida_mode: 150*08b48e0bSAndroid Build Coastguard Worker - added `AFL_FRIDA_STATS_INTERVAL` 151*08b48e0bSAndroid Build Coastguard Worker - fix issue on MacOS 152*08b48e0bSAndroid Build Coastguard Worker - unicorn_mode: 153*08b48e0bSAndroid Build Coastguard Worker - updated and minor issues fixed 154*08b48e0bSAndroid Build Coastguard Worker - nyx_mode support for all tools 155*08b48e0bSAndroid Build Coastguard Worker - better sanitizer default options support for all tools 156*08b48e0bSAndroid Build Coastguard Worker - new custom module: autotoken, a grammar free fuzzer for text inputs 157*08b48e0bSAndroid Build Coastguard Worker - fixed custom mutator C examples 158*08b48e0bSAndroid Build Coastguard Worker - more minor fixes and cross-platform support 159*08b48e0bSAndroid Build Coastguard Worker 160*08b48e0bSAndroid Build Coastguard Worker### Version ++4.05c (release) 161*08b48e0bSAndroid Build Coastguard Worker - MacOS: libdislocator, libtokencap etc. do not work with modern 162*08b48e0bSAndroid Build Coastguard Worker MacOS anymore, but could be patched to work, see this issue if you 163*08b48e0bSAndroid Build Coastguard Worker want to make the effort and send a PR: 164*08b48e0bSAndroid Build Coastguard Worker https://github.com/AFLplusplus/AFLplusplus/issues/1594 165*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 166*08b48e0bSAndroid Build Coastguard Worker - added afl_custom_fuzz_send custom mutator feature. Now your can 167*08b48e0bSAndroid Build Coastguard Worker send fuzz data to the target as you need, e.g. via IPC. 168*08b48e0bSAndroid Build Coastguard Worker - cmplog mode now has a -l R option for random colorization, thanks 169*08b48e0bSAndroid Build Coastguard Worker to guyf2010 for the PR! 170*08b48e0bSAndroid Build Coastguard Worker - queue statistics are written every 30 minutes to 171*08b48e0bSAndroid Build Coastguard Worker out/NAME/queue_data if compiled with INTROSPECTION 172*08b48e0bSAndroid Build Coastguard Worker - new env: AFL_FORK_SERVER_KILL_SIGNAL 173*08b48e0bSAndroid Build Coastguard Worker - afl-showmap/afl-cmin 174*08b48e0bSAndroid Build Coastguard Worker - `-t none` now translates to `-t 120000` (120 seconds) 175*08b48e0bSAndroid Build Coastguard Worker - unicorn_mode updated 176*08b48e0bSAndroid Build Coastguard Worker - updated rust custom mutator dependencies and LibAFL custom mutator 177*08b48e0bSAndroid Build Coastguard Worker - overall better sanitizer default setting handling 178*08b48e0bSAndroid Build Coastguard Worker - several minor bugfixes 179*08b48e0bSAndroid Build Coastguard Worker 180*08b48e0bSAndroid Build Coastguard Worker### Version ++4.04c (release) 181*08b48e0bSAndroid Build Coastguard Worker - fix gramatron and grammar_mutator build scripts 182*08b48e0bSAndroid Build Coastguard Worker - enhancements to the afl-persistent-config and afl-system-config 183*08b48e0bSAndroid Build Coastguard Worker scripts 184*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 185*08b48e0bSAndroid Build Coastguard Worker - force writing all stats on exit 186*08b48e0bSAndroid Build Coastguard Worker - ensure targets are killed on exit 187*08b48e0bSAndroid Build Coastguard Worker - `AFL_FORK_SERVER_KILL_SIGNAL` added 188*08b48e0bSAndroid Build Coastguard Worker - afl-cc: 189*08b48e0bSAndroid Build Coastguard Worker - make gcc_mode (afl-gcc-fast) work with gcc down to version 3.6 190*08b48e0bSAndroid Build Coastguard Worker - qemu_mode: 191*08b48e0bSAndroid Build Coastguard Worker - fixed 10x speed degredation in v4.03c, thanks to @ele7enxxh for 192*08b48e0bSAndroid Build Coastguard Worker reporting! 193*08b48e0bSAndroid Build Coastguard Worker - added qemu_mode/fastexit helper library 194*08b48e0bSAndroid Build Coastguard Worker - unicorn_mode: 195*08b48e0bSAndroid Build Coastguard Worker - Enabled tricore arch (by @jma-qb) 196*08b48e0bSAndroid Build Coastguard Worker - Updated Capstone version in Rust bindings 197*08b48e0bSAndroid Build Coastguard Worker - llvm-mode: 198*08b48e0bSAndroid Build Coastguard Worker - AFL runtime will always pass inputs via shared memory, when possible, 199*08b48e0bSAndroid Build Coastguard Worker ignoring the command line. 200*08b48e0bSAndroid Build Coastguard Worker 201*08b48e0bSAndroid Build Coastguard Worker 202*08b48e0bSAndroid Build Coastguard Worker### Version ++4.03c (release) 203*08b48e0bSAndroid Build Coastguard Worker - Building now gives a build summary what succeeded and what not 204*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 205*08b48e0bSAndroid Build Coastguard Worker - added AFL_NO_STARTUP_CALIBRATION to start fuzzing at once instead 206*08b48e0bSAndroid Build Coastguard Worker of calibrating all initial seeds first. Good for large queues 207*08b48e0bSAndroid Build Coastguard Worker and long execution times, especially in CIs. 208*08b48e0bSAndroid Build Coastguard Worker - default calibration cycles set to 7 from 8, and only add 5 cycles 209*08b48e0bSAndroid Build Coastguard Worker to variables queue items instead of 12. 210*08b48e0bSAndroid Build Coastguard Worker - afl-cc: 211*08b48e0bSAndroid Build Coastguard Worker - fixed off-by-one bug in our pcguard implemenation, thanks for 212*08b48e0bSAndroid Build Coastguard Worker @tokatoka for reporting 213*08b48e0bSAndroid Build Coastguard Worker - fix for llvm 15 and reenabling LTO, thanks to nikic for the PR! 214*08b48e0bSAndroid Build Coastguard Worker - better handling of -fsanitize=..,...,.. lists 215*08b48e0bSAndroid Build Coastguard Worker - support added for LLVMFuzzerRunDriver() 216*08b48e0bSAndroid Build Coastguard Worker - fix gcc_mode cmplog 217*08b48e0bSAndroid Build Coastguard Worker - obtain the map size of a target with setting AFL_DUMP_MAP_SIZE=1 218*08b48e0bSAndroid Build Coastguard Worker note that this will exit the target before main() 219*08b48e0bSAndroid Build Coastguard Worker - qemu_mode: 220*08b48e0bSAndroid Build Coastguard Worker - added AFL_QEMU_TRACK_UNSTABLE to log the addresses of unstable 221*08b48e0bSAndroid Build Coastguard Worker edges (together with AFL_DEBUG=1 afl-fuzz). thanks to 222*08b48e0bSAndroid Build Coastguard Worker worksbutnottested! 223*08b48e0bSAndroid Build Coastguard Worker - afl-analyze broke at some point, fix by CodeLogicError, thank you! 224*08b48e0bSAndroid Build Coastguard Worker - afl-cmin/afl-cmin.bash now have an -A option to allow also crashing 225*08b48e0bSAndroid Build Coastguard Worker and timeout inputs 226*08b48e0bSAndroid Build Coastguard Worker - unicorn_mode: 227*08b48e0bSAndroid Build Coastguard Worker - updated upstream unicorn version 228*08b48e0bSAndroid Build Coastguard Worker - fixed builds for aarch64 229*08b48e0bSAndroid Build Coastguard Worker - build now uses all available cores 230*08b48e0bSAndroid Build Coastguard Worker 231*08b48e0bSAndroid Build Coastguard Worker 232*08b48e0bSAndroid Build Coastguard Worker### Version ++4.02c (release) 233*08b48e0bSAndroid Build Coastguard Worker - afl-cc: 234*08b48e0bSAndroid Build Coastguard Worker - important fix for the default pcguard mode when LLVM IR vector 235*08b48e0bSAndroid Build Coastguard Worker selects are produced, thanks to @juppytt for reporting! 236*08b48e0bSAndroid Build Coastguard Worker - gcc_plugin: 237*08b48e0bSAndroid Build Coastguard Worker - Adacore submitted CMPLOG support to the gcc_plugin! :-) 238*08b48e0bSAndroid Build Coastguard Worker - llvm_mode: 239*08b48e0bSAndroid Build Coastguard Worker - laf cmp splitting fixed for more comparison types 240*08b48e0bSAndroid Build Coastguard Worker - frida_mode: 241*08b48e0bSAndroid Build Coastguard Worker - now works on Android! 242*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 243*08b48e0bSAndroid Build Coastguard Worker - change post_process hook to allow returning NULL and 0 length to 244*08b48e0bSAndroid Build Coastguard Worker tell afl-fuzz to skip this mutated input 245*08b48e0bSAndroid Build Coastguard Worker 246*08b48e0bSAndroid Build Coastguard Worker### Version ++4.01c (release) 247*08b48e0bSAndroid Build Coastguard Worker - fixed */build_...sh scripts to work outside of git 248*08b48e0bSAndroid Build Coastguard Worker - new custom_mutator: libafl with token fuzzing :) 249*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 250*08b48e0bSAndroid Build Coastguard Worker - when you just want to compile once and set CMPLOG, then just 251*08b48e0bSAndroid Build Coastguard Worker set -c 0 to tell afl-fuzz that the fuzzing binary is also for 252*08b48e0bSAndroid Build Coastguard Worker CMPLOG. 253*08b48e0bSAndroid Build Coastguard Worker - new commandline options -g/G to set min/max length of generated 254*08b48e0bSAndroid Build Coastguard Worker fuzz inputs 255*08b48e0bSAndroid Build Coastguard Worker - you can set the time for syncing to other fuzzer now with 256*08b48e0bSAndroid Build Coastguard Worker AFL_SYNC_TIME 257*08b48e0bSAndroid Build Coastguard Worker - reintroduced AFL_PERSISTENT and AFL_DEFER_FORKSRV to allow 258*08b48e0bSAndroid Build Coastguard Worker persistent mode and manual forkserver support if these are not 259*08b48e0bSAndroid Build Coastguard Worker in the target binary (e.g. are in a shared library) 260*08b48e0bSAndroid Build Coastguard Worker - add AFL_EARLY_FORKSERVER to install the forkserver as earliest as 261*08b48e0bSAndroid Build Coastguard Worker possible in the target (for afl-gcc-fast/afl-clang-fast/ 262*08b48e0bSAndroid Build Coastguard Worker afl-clang-lto) 263*08b48e0bSAndroid Build Coastguard Worker - "saved timeouts" was wrong information, timeouts are still thrown 264*08b48e0bSAndroid Build Coastguard Worker away by default even if they have new coverage (hangs are always 265*08b48e0bSAndroid Build Coastguard Worker kept), unless AFL_KEEP_TIMEOUTS are set 266*08b48e0bSAndroid Build Coastguard Worker - AFL never implemented auto token inserts (but user token inserts, 267*08b48e0bSAndroid Build Coastguard Worker user token overwrite and auto token overwrite), added now! 268*08b48e0bSAndroid Build Coastguard Worker - fixed a mutation type in havoc mode 269*08b48e0bSAndroid Build Coastguard Worker - Mopt fix to always select the correct algorithm 270*08b48e0bSAndroid Build Coastguard Worker - fix effector map calculation (deterministic mode) 271*08b48e0bSAndroid Build Coastguard Worker - fix custom mutator post_process functionality 272*08b48e0bSAndroid Build Coastguard Worker - document and auto-activate pizza mode on condition 273*08b48e0bSAndroid Build Coastguard Worker - afl-cc: 274*08b48e0bSAndroid Build Coastguard Worker - due a bug in lld of llvm 15 LTO instrumentation wont work atm :-( 275*08b48e0bSAndroid Build Coastguard Worker - converted all passed to use the new llvm pass manager for llvm 11+ 276*08b48e0bSAndroid Build Coastguard Worker - AFL++ PCGUARD mode is not available for 10.0.1 anymore (11+ only) 277*08b48e0bSAndroid Build Coastguard Worker - trying to stay on top on all these #$&§!! changes in llvm 15 ... 278*08b48e0bSAndroid Build Coastguard Worker - frida_mode: 279*08b48e0bSAndroid Build Coastguard Worker - update to new frida release, handles now c++ throw/catch 280*08b48e0bSAndroid Build Coastguard Worker - unicorn_mode: 281*08b48e0bSAndroid Build Coastguard Worker - update unicorn engine, fix C example 282*08b48e0bSAndroid Build Coastguard Worker - utils: 283*08b48e0bSAndroid Build Coastguard Worker - removed optimin because it looses coverage due to a bug and is 284*08b48e0bSAndroid Build Coastguard Worker unmaintained :-( 285*08b48e0bSAndroid Build Coastguard Worker 286*08b48e0bSAndroid Build Coastguard Worker 287*08b48e0bSAndroid Build Coastguard Worker### Version ++4.00c (release) 288*08b48e0bSAndroid Build Coastguard Worker - complete documentation restructuring, made possible by Google Season 289*08b48e0bSAndroid Build Coastguard Worker of Docs :) thank you Jana! 290*08b48e0bSAndroid Build Coastguard Worker - we renamed several UI and fuzzer_stat entries to be more precise, 291*08b48e0bSAndroid Build Coastguard Worker e.g. "unique crashes" -> "saved crashes", "total paths" -> 292*08b48e0bSAndroid Build Coastguard Worker "corpus count", "current path" -> "current item". 293*08b48e0bSAndroid Build Coastguard Worker This might need changing custom scripting! 294*08b48e0bSAndroid Build Coastguard Worker - Nyx mode (full system emulation with snapshot capability) has been 295*08b48e0bSAndroid Build Coastguard Worker added - thanks to @schumilo and @eqv! 296*08b48e0bSAndroid Build Coastguard Worker - unicorn_mode: 297*08b48e0bSAndroid Build Coastguard Worker - Moved to unicorn2! by Ziqiao Kong (@lazymio) 298*08b48e0bSAndroid Build Coastguard Worker - Faster, more accurate emulation (newer QEMU base), risc-v support 299*08b48e0bSAndroid Build Coastguard Worker - removed indirections in rust callbacks 300*08b48e0bSAndroid Build Coastguard Worker - new binary-only fuzzing mode: coresight_mode for aarch64 CPUs :) 301*08b48e0bSAndroid Build Coastguard Worker thanks to RICSecLab submitting! 302*08b48e0bSAndroid Build Coastguard Worker - if instrumented libaries are dlopen()'ed after the forkserver you 303*08b48e0bSAndroid Build Coastguard Worker will now see a crash. Before you would have colliding coverage. 304*08b48e0bSAndroid Build Coastguard Worker We changed this to force fixing a broken setup rather then allowing 305*08b48e0bSAndroid Build Coastguard Worker ineffective fuzzing. 306*08b48e0bSAndroid Build Coastguard Worker See docs/best_practices.md how to fix such setups. 307*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 308*08b48e0bSAndroid Build Coastguard Worker - cmplog binaries will need to be recompiled for this version 309*08b48e0bSAndroid Build Coastguard Worker (it is better!) 310*08b48e0bSAndroid Build Coastguard Worker - fix a regression introduced in 3.10 that resulted in less 311*08b48e0bSAndroid Build Coastguard Worker coverage being detected. thanks to Collin May for reporting! 312*08b48e0bSAndroid Build Coastguard Worker - ensure all spawned targets are killed on exit 313*08b48e0bSAndroid Build Coastguard Worker - added AFL_IGNORE_PROBLEMS, plus checks to identify and abort on 314*08b48e0bSAndroid Build Coastguard Worker incorrect LTO usage setups and enhanced the READMEs for better 315*08b48e0bSAndroid Build Coastguard Worker information on how to deal with instrumenting libraries 316*08b48e0bSAndroid Build Coastguard Worker - fix -n dumb mode (nobody should use this mode though) 317*08b48e0bSAndroid Build Coastguard Worker - fix stability issue with LTO and cmplog 318*08b48e0bSAndroid Build Coastguard Worker - better banner 319*08b48e0bSAndroid Build Coastguard Worker - more effective cmplog mode 320*08b48e0bSAndroid Build Coastguard Worker - more often update the UI when in input2stage mode 321*08b48e0bSAndroid Build Coastguard Worker - qemu_mode/unicorn_mode: fixed OOB write when using libcompcov, 322*08b48e0bSAndroid Build Coastguard Worker thanks to kotee4ko for reporting! 323*08b48e0bSAndroid Build Coastguard Worker - frida_mode: 324*08b48e0bSAndroid Build Coastguard Worker - better performance, bug fixes 325*08b48e0bSAndroid Build Coastguard Worker - David Carlier added Android support :) 326*08b48e0bSAndroid Build Coastguard Worker - afl-showmap, afl-tmin and afl-analyze: 327*08b48e0bSAndroid Build Coastguard Worker - honor persistent mode for more speed. thanks to dloffre-snl 328*08b48e0bSAndroid Build Coastguard Worker for reporting! 329*08b48e0bSAndroid Build Coastguard Worker - fix bug where targets are not killed on timeouts 330*08b48e0bSAndroid Build Coastguard Worker - moved hidden afl-showmap -A option to -H to be used for 331*08b48e0bSAndroid Build Coastguard Worker coresight_mode 332*08b48e0bSAndroid Build Coastguard Worker - Prevent accidentally killing non-afl/fuzz services when aborting 333*08b48e0bSAndroid Build Coastguard Worker afl-showmap and other tools. 334*08b48e0bSAndroid Build Coastguard Worker - afl-cc: 335*08b48e0bSAndroid Build Coastguard Worker - detect overflow reads on initial input buffer for asan 336*08b48e0bSAndroid Build Coastguard Worker - new cmplog mode (incompatible with older AFL++ versions) 337*08b48e0bSAndroid Build Coastguard Worker - support llvm IR select instrumentation for default PCGUARD and LTO 338*08b48e0bSAndroid Build Coastguard Worker - fix for shared linking on MacOS 339*08b48e0bSAndroid Build Coastguard Worker - better selective instrumentation AFL_LLVM_{ALLOW|DENY}LIST 340*08b48e0bSAndroid Build Coastguard Worker on filename matching (requires llvm 11 or newer) 341*08b48e0bSAndroid Build Coastguard Worker - fixed a potential crash in targets for LAF string handling 342*08b48e0bSAndroid Build Coastguard Worker - fixed a bad assert in LAF split switches 343*08b48e0bSAndroid Build Coastguard Worker - added AFL_USE_TSAN thread sanitizer support 344*08b48e0bSAndroid Build Coastguard Worker - llvm and LTO mode modified to work with new llvm 14-dev (again.) 345*08b48e0bSAndroid Build Coastguard Worker - fix for AFL_REAL_LD 346*08b48e0bSAndroid Build Coastguard Worker - more -z defs filtering 347*08b48e0bSAndroid Build Coastguard Worker - make -v without options work 348*08b48e0bSAndroid Build Coastguard Worker - added the very good grammar mutator "GramaTron" to the 349*08b48e0bSAndroid Build Coastguard Worker custom_mutators 350*08b48e0bSAndroid Build Coastguard Worker - added optimin, a faster and better corpus minimizer by 351*08b48e0bSAndroid Build Coastguard Worker Adrian Herrera. Thank you! 352*08b48e0bSAndroid Build Coastguard Worker - added afl-persistent-config script to set perform permanent system 353*08b48e0bSAndroid Build Coastguard Worker configuration settings for fuzzing, for Linux and Macos. 354*08b48e0bSAndroid Build Coastguard Worker thanks to jhertz! 355*08b48e0bSAndroid Build Coastguard Worker - added xml, curl & exotic string functions to llvm dictionary feature 356*08b48e0bSAndroid Build Coastguard Worker - fix AFL_PRELOAD issues on MacOS 357*08b48e0bSAndroid Build Coastguard Worker - removed utils/afl_frida because frida_mode/ is now so much better 358*08b48e0bSAndroid Build Coastguard Worker - added uninstall target to makefile (todo: update new readme!) 359*08b48e0bSAndroid Build Coastguard Worker 360*08b48e0bSAndroid Build Coastguard Worker### Version ++3.14c (release) 361*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 362*08b48e0bSAndroid Build Coastguard Worker - fix -F when a '/' was part of the parameter 363*08b48e0bSAndroid Build Coastguard Worker - fixed a crash for cmplog for very slow inputs 364*08b48e0bSAndroid Build Coastguard Worker - fix for AFLfast schedule counting 365*08b48e0bSAndroid Build Coastguard Worker - removed implied -D determinstic from -M main 366*08b48e0bSAndroid Build Coastguard Worker - if the target becomes unavailable check out out/default/error.txt 367*08b48e0bSAndroid Build Coastguard Worker for an indicator why 368*08b48e0bSAndroid Build Coastguard Worker - AFL_CAL_FAST was a dead env, now does the same as AFL_FAST_CAL 369*08b48e0bSAndroid Build Coastguard Worker - reverse read the queue on resumes (more effective) 370*08b48e0bSAndroid Build Coastguard Worker - fix custom mutator trimming 371*08b48e0bSAndroid Build Coastguard Worker - afl-cc: 372*08b48e0bSAndroid Build Coastguard Worker - Update to COMPCOV/laf-intel that speeds up the instrumentation 373*08b48e0bSAndroid Build Coastguard Worker process a lot - thanks to Michael Rodler/f0rki for the PR! 374*08b48e0bSAndroid Build Coastguard Worker - Fix for failures for some sized string instrumentations 375*08b48e0bSAndroid Build Coastguard Worker - Fix to instrument global namespace functions in c++ 376*08b48e0bSAndroid Build Coastguard Worker - Fix for llvm 13 377*08b48e0bSAndroid Build Coastguard Worker - support partial linking 378*08b48e0bSAndroid Build Coastguard Worker - do honor AFL_LLVM_{ALLOW/DENY}LIST for LTO autodictionary andDICT2FILE 379*08b48e0bSAndroid Build Coastguard Worker - We do support llvm versions from 3.8 to 5.0 again 380*08b48e0bSAndroid Build Coastguard Worker - frida_mode: 381*08b48e0bSAndroid Build Coastguard Worker - several fixes for cmplog 382*08b48e0bSAndroid Build Coastguard Worker - remove need for AFL_FRIDA_PERSISTENT_RETADDR_OFFSET 383*08b48e0bSAndroid Build Coastguard Worker - less coverage collision 384*08b48e0bSAndroid Build Coastguard Worker - feature parity of aarch64 with intel now (persistent, cmplog, 385*08b48e0bSAndroid Build Coastguard Worker in-memory testcases, asan) 386*08b48e0bSAndroid Build Coastguard Worker - afl-cmin and afl-showmap -i do now descend into subdirectories 387*08b48e0bSAndroid Build Coastguard Worker (like afl-fuzz does) - note that afl-cmin.bash does not! 388*08b48e0bSAndroid Build Coastguard Worker - afl_analyze: 389*08b48e0bSAndroid Build Coastguard Worker - fix timeout handling 390*08b48e0bSAndroid Build Coastguard Worker - add forkserver support for better performance 391*08b48e0bSAndroid Build Coastguard Worker - ensure afl-compiler-rt is built for gcc_module 392*08b48e0bSAndroid Build Coastguard Worker - always build aflpp_driver for libfuzzer harnesses 393*08b48e0bSAndroid Build Coastguard Worker - added `AFL_NO_FORKSRV` env variable support to 394*08b48e0bSAndroid Build Coastguard Worker afl-cmin, afl-tmin, and afl-showmap, by @jhertz 395*08b48e0bSAndroid Build Coastguard Worker - removed outdated documents, improved existing documentation 396*08b48e0bSAndroid Build Coastguard Worker 397*08b48e0bSAndroid Build Coastguard Worker### Version ++3.13c (release) 398*08b48e0bSAndroid Build Coastguard Worker - Note: plot_data switched to relative time from unix time in 3.10 399*08b48e0bSAndroid Build Coastguard Worker - frida_mode - new mode that uses frida to fuzz binary-only targets, 400*08b48e0bSAndroid Build Coastguard Worker it currently supports persistent mode and cmplog. 401*08b48e0bSAndroid Build Coastguard Worker thanks to @WorksButNotTested! 402*08b48e0bSAndroid Build Coastguard Worker - create a fuzzing dictionary with the help of CodeQL thanks to 403*08b48e0bSAndroid Build Coastguard Worker @microsvuln! see utils/autodict_ql 404*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 405*08b48e0bSAndroid Build Coastguard Worker - added patch by @realmadsci to support @@ as part of command line 406*08b48e0bSAndroid Build Coastguard Worker options, e.g. `afl-fuzz ... -- ./target --infile=@@` 407*08b48e0bSAndroid Build Coastguard Worker - add recording of previous fuzz attempts for persistent mode 408*08b48e0bSAndroid Build Coastguard Worker to allow replay of non-reproducable crashes, see 409*08b48e0bSAndroid Build Coastguard Worker AFL_PERSISTENT_RECORD in config.h and docs/envs.h 410*08b48e0bSAndroid Build Coastguard Worker - fixed a bug when trimming for stdin targets 411*08b48e0bSAndroid Build Coastguard Worker - cmplog -l: default cmplog level is now 2, better efficiency. 412*08b48e0bSAndroid Build Coastguard Worker level 3 now performs redqueen on everything. use with care. 413*08b48e0bSAndroid Build Coastguard Worker - better fuzzing strategy yield display for enabled options 414*08b48e0bSAndroid Build Coastguard Worker - ensure one fuzzer sync per cycle 415*08b48e0bSAndroid Build Coastguard Worker - fix afl_custom_queue_new_entry original file name when syncing 416*08b48e0bSAndroid Build Coastguard Worker from fuzzers 417*08b48e0bSAndroid Build Coastguard Worker - fixed a crash when more than one custom mutator was used together 418*08b48e0bSAndroid Build Coastguard Worker with afl_custom_post_process 419*08b48e0bSAndroid Build Coastguard Worker - on a crashing seed potentially the wrong input was disabled 420*08b48e0bSAndroid Build Coastguard Worker - added AFL_EXIT_ON_SEED_ISSUES env that will exit if a seed in 421*08b48e0bSAndroid Build Coastguard Worker -i dir crashes the target or results in a timeout. By default 422*08b48e0bSAndroid Build Coastguard Worker AFL++ ignores these and uses them for splicing instead. 423*08b48e0bSAndroid Build Coastguard Worker - added AFL_EXIT_ON_TIME env that will make afl-fuzz exit fuzzing 424*08b48e0bSAndroid Build Coastguard Worker after no new paths have been found for n seconds 425*08b48e0bSAndroid Build Coastguard Worker - when AFL_FAST_CAL is set a variable path will now be calibrated 426*08b48e0bSAndroid Build Coastguard Worker 8 times instead of originally 40. Long calibration is now 20. 427*08b48e0bSAndroid Build Coastguard Worker - added AFL_TRY_AFFINITY to try to bind to CPUs but don't error if 428*08b48e0bSAndroid Build Coastguard Worker it fails 429*08b48e0bSAndroid Build Coastguard Worker - afl-cc: 430*08b48e0bSAndroid Build Coastguard Worker - We do not support llvm versions prior 6.0 anymore 431*08b48e0bSAndroid Build Coastguard Worker - added thread safe counters to all modes (`AFL_LLVM_THREADSAFE_INST`), 432*08b48e0bSAndroid Build Coastguard Worker note that this disables NeverZero counters. 433*08b48e0bSAndroid Build Coastguard Worker - Fix for -pie compiled binaries with default afl-clang-fast PCGUARD 434*08b48e0bSAndroid Build Coastguard Worker - Leak Sanitizer (AFL_USE_LSAN) added by Joshua Rogers, thanks! 435*08b48e0bSAndroid Build Coastguard Worker - Removed InsTrim instrumentation as it is not as good as PCGUARD 436*08b48e0bSAndroid Build Coastguard Worker - Removed automatic linking with -lc++ for LTO mode 437*08b48e0bSAndroid Build Coastguard Worker - Fixed a crash in llvm dict2file when a strncmp length was -1 438*08b48e0bSAndroid Build Coastguard Worker - added --afl-noopt support 439*08b48e0bSAndroid Build Coastguard Worker - utils/aflpp_driver: 440*08b48e0bSAndroid Build Coastguard Worker - aflpp_qemu_driver_hook fixed to work with qemu_mode 441*08b48e0bSAndroid Build Coastguard Worker - aflpp_driver now compiled with -fPIC 442*08b48e0bSAndroid Build Coastguard Worker - unicornafl: 443*08b48e0bSAndroid Build Coastguard Worker - fix MIPS delay slot caching, thanks @JackGrence 444*08b48e0bSAndroid Build Coastguard Worker - fixed aarch64 exit address 445*08b48e0bSAndroid Build Coastguard Worker - execution no longer stops at address 0x0 446*08b48e0bSAndroid Build Coastguard Worker - updated afl-system-config to support Arch Linux weirdness and increase 447*08b48e0bSAndroid Build Coastguard Worker MacOS shared memory 448*08b48e0bSAndroid Build Coastguard Worker - updated the grammar custom mutator to the newest version 449*08b48e0bSAndroid Build Coastguard Worker - add -d (add dead fuzzer stats) to afl-whatsup 450*08b48e0bSAndroid Build Coastguard Worker - added AFL_PRINT_FILENAMES to afl-showmap/cmin to print the 451*08b48e0bSAndroid Build Coastguard Worker current filename 452*08b48e0bSAndroid Build Coastguard Worker - afl-showmap/cmin will now process queue items in alphabetical order 453*08b48e0bSAndroid Build Coastguard Worker 454*08b48e0bSAndroid Build Coastguard Worker### Version ++3.12c (release) 455*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 456*08b48e0bSAndroid Build Coastguard Worker - added AFL_TARGET_ENV variable to pass extra env vars to the target 457*08b48e0bSAndroid Build Coastguard Worker (for things like LD_LIBRARY_PATH) 458*08b48e0bSAndroid Build Coastguard Worker - fix map detection, AFL_MAP_SIZE not needed anymore for most cases 459*08b48e0bSAndroid Build Coastguard Worker - fix counting favorites (just a display thing) 460*08b48e0bSAndroid Build Coastguard Worker - afl-cc: 461*08b48e0bSAndroid Build Coastguard Worker - fix cmplog rtn (rare crash and not being able to gather ptr data) 462*08b48e0bSAndroid Build Coastguard Worker - fix our own PCGUARD implementation to compile with llvm 10.0.1 463*08b48e0bSAndroid Build Coastguard Worker - link runtime not to shared libs 464*08b48e0bSAndroid Build Coastguard Worker - ensure shared libraries are properly built and instrumented 465*08b48e0bSAndroid Build Coastguard Worker - AFL_LLVM_INSTRUMENT_ALLOW/DENY were not implemented for LTO, added 466*08b48e0bSAndroid Build Coastguard Worker - show correct LLVM PCGUARD NATIVE mode when auto switching to it 467*08b48e0bSAndroid Build Coastguard Worker and keep fsanitize-coverage-*list=... 468*08b48e0bSAndroid Build Coastguard Worker Short mnemnonic NATIVE is now also accepted. 469*08b48e0bSAndroid Build Coastguard Worker - qemu_mode (thanks @realmadsci): 470*08b48e0bSAndroid Build Coastguard Worker - move AFL_PRELOAD and AFL_USE_QASAN logic inside afl-qemu-trace 471*08b48e0bSAndroid Build Coastguard Worker - add AFL_QEMU_CUSTOM_BIN 472*08b48e0bSAndroid Build Coastguard Worker - unicorn_mode 473*08b48e0bSAndroid Build Coastguard Worker - accidently removed the subfolder from github, re-added 474*08b48e0bSAndroid Build Coastguard Worker - added DEFAULT_PERMISSION to config.h for all files created, default 475*08b48e0bSAndroid Build Coastguard Worker to 0600 476*08b48e0bSAndroid Build Coastguard Worker 477*08b48e0bSAndroid Build Coastguard Worker### Version ++3.11c (release) 478*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 479*08b48e0bSAndroid Build Coastguard Worker - better auto detection of map size 480*08b48e0bSAndroid Build Coastguard Worker - fix sanitizer settings (bug since 3.10c) 481*08b48e0bSAndroid Build Coastguard Worker - fix an off-by-one overwrite in cmplog 482*08b48e0bSAndroid Build Coastguard Worker - add non-unicode variants from unicode-looking dictionary entries 483*08b48e0bSAndroid Build Coastguard Worker - Rust custom mutator API improvements 484*08b48e0bSAndroid Build Coastguard Worker - Imported crash stats painted yellow on resume (only new ones are red) 485*08b48e0bSAndroid Build Coastguard Worker - afl-cc: 486*08b48e0bSAndroid Build Coastguard Worker - added AFL_NOOPT that will just pass everything to the normal 487*08b48e0bSAndroid Build Coastguard Worker gcc/clang compiler without any changes - to pass weird configure 488*08b48e0bSAndroid Build Coastguard Worker scripts 489*08b48e0bSAndroid Build Coastguard Worker - fixed a crash that can occur with ASAN + CMPLOG together plus 490*08b48e0bSAndroid Build Coastguard Worker better support for unicode (thanks to @stbergmann for reporting!) 491*08b48e0bSAndroid Build Coastguard Worker - fixed a crash in LAF transform for empty strings 492*08b48e0bSAndroid Build Coastguard Worker - handle erroneous setups in which multiple afl-compiler-rt are 493*08b48e0bSAndroid Build Coastguard Worker compiled into the target. This now also supports dlopen() 494*08b48e0bSAndroid Build Coastguard Worker instrumented libs loaded before the forkserver and even after the 495*08b48e0bSAndroid Build Coastguard Worker forkserver is started (then with collisions though) 496*08b48e0bSAndroid Build Coastguard Worker - the compiler rt was added also in object building (-c) which 497*08b48e0bSAndroid Build Coastguard Worker should have been fixed years ago but somewhere got lost :( 498*08b48e0bSAndroid Build Coastguard Worker - Renamed CTX to CALLER, added correct/real CTX implementation to 499*08b48e0bSAndroid Build Coastguard Worker CLASSIC 500*08b48e0bSAndroid Build Coastguard Worker - qemu_mode: 501*08b48e0bSAndroid Build Coastguard Worker - added AFL_QEMU_EXCLUDE_RANGES env by @realmadsci, thanks! 502*08b48e0bSAndroid Build Coastguard Worker - if no new/updated checkout is wanted, build with: 503*08b48e0bSAndroid Build Coastguard Worker NO_CHECKOUT=1 ./build_qemu_support.sh 504*08b48e0bSAndroid Build Coastguard Worker - we no longer perform a "git drop" 505*08b48e0bSAndroid Build Coastguard Worker - afl-cmin: support filenames with spaces 506*08b48e0bSAndroid Build Coastguard Worker 507*08b48e0bSAndroid Build Coastguard Worker### Version ++3.10c (release) 508*08b48e0bSAndroid Build Coastguard Worker - Mac OS ARM64 support 509*08b48e0bSAndroid Build Coastguard Worker - Android support fixed and updated by Joey Jiaojg - thanks! 510*08b48e0bSAndroid Build Coastguard Worker - New selective instrumentation option with __AFL_COVERAGE_* commands 511*08b48e0bSAndroid Build Coastguard Worker to be placed in the source code. 512*08b48e0bSAndroid Build Coastguard Worker Check out instrumentation/README.instrument_list.md 513*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz 514*08b48e0bSAndroid Build Coastguard Worker - Making AFL_MAP_SIZE (mostly) obsolete - afl-fuzz now learns on 515*08b48e0bSAndroid Build Coastguard Worker start the target map size 516*08b48e0bSAndroid Build Coastguard Worker - upgraded cmplog/redqueen: solving for floating point, solving 517*08b48e0bSAndroid Build Coastguard Worker transformations (e.g. toupper, tolower, to/from hex, xor, 518*08b48e0bSAndroid Build Coastguard Worker arithmetics, etc.). This is costly hence new command line option 519*08b48e0bSAndroid Build Coastguard Worker `-l` that sets the intensity (values 1 to 3). Recommended is 2. 520*08b48e0bSAndroid Build Coastguard Worker - added `AFL_CMPLOG_ONLY_NEW` to not use cmplog on initial seeds 521*08b48e0bSAndroid Build Coastguard Worker from `-i` or resumes (these have most likely already been done) 522*08b48e0bSAndroid Build Coastguard Worker - fix crash for very, very fast targets+systems (thanks to mhlakhani 523*08b48e0bSAndroid Build Coastguard Worker for reporting) 524*08b48e0bSAndroid Build Coastguard Worker - on restarts (`-i`)/autoresume (AFL_AUTORESUME) the stats are now 525*08b48e0bSAndroid Build Coastguard Worker reloaded and used, thanks to Vimal Joseph for this patch! 526*08b48e0bSAndroid Build Coastguard Worker - changed the meaning of '+' of the '-t' option, it now means to 527*08b48e0bSAndroid Build Coastguard Worker auto-calculate the timeout with the value given being the max 528*08b48e0bSAndroid Build Coastguard Worker timeout. The original meaning of skipping timeouts instead of 529*08b48e0bSAndroid Build Coastguard Worker abort is now inherent to the -t option. 530*08b48e0bSAndroid Build Coastguard Worker - if deterministic mode is active (`-D`, or `-M` without `-d`) then 531*08b48e0bSAndroid Build Coastguard Worker we sync after every queue entry as this can take very long time 532*08b48e0bSAndroid Build Coastguard Worker otherwise 533*08b48e0bSAndroid Build Coastguard Worker - added minimum SYNC_TIME to include/config.h (30 minutes default) 534*08b48e0bSAndroid Build Coastguard Worker - better detection if a target needs a large shared map 535*08b48e0bSAndroid Build Coastguard Worker - fix for `-Z` 536*08b48e0bSAndroid Build Coastguard Worker - fixed a few crashes 537*08b48e0bSAndroid Build Coastguard Worker - switched to an even faster RNG 538*08b48e0bSAndroid Build Coastguard Worker - added hghwng's patch for faster trace map analysis 539*08b48e0bSAndroid Build Coastguard Worker - printing suggestions for mistyped `AFL_` env variables 540*08b48e0bSAndroid Build Coastguard Worker - added Rust bindings for custom mutators (thanks @julihoh) 541*08b48e0bSAndroid Build Coastguard Worker - afl-cc 542*08b48e0bSAndroid Build Coastguard Worker - allow instrumenting LLVMFuzzerTestOneInput 543*08b48e0bSAndroid Build Coastguard Worker - fixed endless loop for allow/blocklist lines starting with a 544*08b48e0bSAndroid Build Coastguard Worker comment (thanks to Zherya for reporting) 545*08b48e0bSAndroid Build Coastguard Worker - cmplog/redqueen now also tracks floating point, _ExtInt() + 128bit 546*08b48e0bSAndroid Build Coastguard Worker - cmplog/redqueen can now process basic libc++ and libstdc++ 547*08b48e0bSAndroid Build Coastguard Worker std::string comparisons (no position or length type variants) 548*08b48e0bSAndroid Build Coastguard Worker - added support for __afl_coverage_interesting() for LTO and our 549*08b48e0bSAndroid Build Coastguard Worker own PCGUARD (llvm 10.0.1+), read more about this function and 550*08b48e0bSAndroid Build Coastguard Worker selective coverage in instrumentation/README.instrument_list.md 551*08b48e0bSAndroid Build Coastguard Worker - added AFL_LLVM_INSTRUMENT option NATIVE for native clang pc-guard 552*08b48e0bSAndroid Build Coastguard Worker support (less performant than our own), GCC for old afl-gcc and 553*08b48e0bSAndroid Build Coastguard Worker CLANG for old afl-clang 554*08b48e0bSAndroid Build Coastguard Worker - fixed a potential crash in the LAF feature 555*08b48e0bSAndroid Build Coastguard Worker - workaround for llvm bitcast lto bug 556*08b48e0bSAndroid Build Coastguard Worker - workaround for llvm 13 557*08b48e0bSAndroid Build Coastguard Worker - qemuafl 558*08b48e0bSAndroid Build Coastguard Worker - QASan (address sanitizer for Qemu) ported to qemuafl! 559*08b48e0bSAndroid Build Coastguard Worker See qemu_mode/libqasan/README.md 560*08b48e0bSAndroid Build Coastguard Worker - solved some persistent mode bugs (thanks Dil4rd) 561*08b48e0bSAndroid Build Coastguard Worker - solved an issue when dumping the memory maps (thanks wizche) 562*08b48e0bSAndroid Build Coastguard Worker - Android support for QASan 563*08b48e0bSAndroid Build Coastguard Worker - unicornafl 564*08b48e0bSAndroid Build Coastguard Worker - Substantial speed gains in python bindings for certain use cases 565*08b48e0bSAndroid Build Coastguard Worker - Improved rust bindings 566*08b48e0bSAndroid Build Coastguard Worker - Added a new example harness to compare python, c and rust bindings 567*08b48e0bSAndroid Build Coastguard Worker - afl-cmin and afl-showmap now support the -f option 568*08b48e0bSAndroid Build Coastguard Worker - afl_plot now also generates a graph on the discovered edges 569*08b48e0bSAndroid Build Coastguard Worker - changed default: no memory limit for afl-cmin and afl-cmin.bash 570*08b48e0bSAndroid Build Coastguard Worker - warn on any _AFL and __AFL env vars. 571*08b48e0bSAndroid Build Coastguard Worker - set AFL_IGNORE_UNKNOWN_ENVS to not warn on unknown AFL_... env vars 572*08b48e0bSAndroid Build Coastguard Worker - added dummy Makefile to instrumentation/ 573*08b48e0bSAndroid Build Coastguard Worker - Updated utils/afl_frida to be 5% faster, 7% on x86_x64 574*08b48e0bSAndroid Build Coastguard Worker - Added `AFL_KILL_SIGNAL` env variable (thanks @v-p-b) 575*08b48e0bSAndroid Build Coastguard Worker - @Edznux added a nice documentation on how to use rpc.statsd with 576*08b48e0bSAndroid Build Coastguard Worker AFL++ in docs/rpc_statsd.md, thanks! 577*08b48e0bSAndroid Build Coastguard Worker 578*08b48e0bSAndroid Build Coastguard Worker### Version ++3.00c (release) 579*08b48e0bSAndroid Build Coastguard Worker - llvm_mode/ and gcc_plugin/ moved to instrumentation/ 580*08b48e0bSAndroid Build Coastguard Worker - examples/ renamed to utils/ 581*08b48e0bSAndroid Build Coastguard Worker - moved libdislocator, libtokencap and qdbi_mode to utils/ 582*08b48e0bSAndroid Build Coastguard Worker - all compilers combined to afl-cc which emulates the previous ones 583*08b48e0bSAndroid Build Coastguard Worker - afl-llvm/gcc-rt.o merged into afl-compiler-rt.o 584*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz 585*08b48e0bSAndroid Build Coastguard Worker - not specifying -M or -S will now auto-set "-S default" 586*08b48e0bSAndroid Build Coastguard Worker - deterministic fuzzing is now disabled by default and can be enabled with 587*08b48e0bSAndroid Build Coastguard Worker -D. It is still enabled by default for -M. 588*08b48e0bSAndroid Build Coastguard Worker - a new seed selection was implemented that uses weighted randoms based on 589*08b48e0bSAndroid Build Coastguard Worker a schedule performance score, which is much better that the previous 590*08b48e0bSAndroid Build Coastguard Worker walk the whole queue approach. Select the old mode with -Z (auto enabled 591*08b48e0bSAndroid Build Coastguard Worker with -M) 592*08b48e0bSAndroid Build Coastguard Worker - Marcel Boehme submitted a patch that improves all AFFast schedules :) 593*08b48e0bSAndroid Build Coastguard Worker - the default schedule is now FAST 594*08b48e0bSAndroid Build Coastguard Worker - memory limits are now disabled by default, set them with -m if required 595*08b48e0bSAndroid Build Coastguard Worker - rpc.statsd support, for stats and charts, by Edznux, thanks a lot! 596*08b48e0bSAndroid Build Coastguard Worker - reading testcases from -i now descends into subdirectories 597*08b48e0bSAndroid Build Coastguard Worker - allow the -x command line option up to 4 times 598*08b48e0bSAndroid Build Coastguard Worker - loaded extras now have a duplication protection 599*08b48e0bSAndroid Build Coastguard Worker - If test cases are too large we do a partial read on the maximum 600*08b48e0bSAndroid Build Coastguard Worker supported size 601*08b48e0bSAndroid Build Coastguard Worker - longer seeds with the same trace information will now be ignored 602*08b48e0bSAndroid Build Coastguard Worker for fuzzing but still be used for splicing 603*08b48e0bSAndroid Build Coastguard Worker - crashing seeds are now not prohibiting a run anymore but are 604*08b48e0bSAndroid Build Coastguard Worker skipped - they are used for splicing, though 605*08b48e0bSAndroid Build Coastguard Worker - update MOpt for expanded havoc modes 606*08b48e0bSAndroid Build Coastguard Worker - setting the env var AFL_NO_AUTODICT will not load an LTO autodictionary 607*08b48e0bSAndroid Build Coastguard Worker - added NO_SPLICING compile option and makefile define 608*08b48e0bSAndroid Build Coastguard Worker - added INTROSPECTION make target that writes all mutations to 609*08b48e0bSAndroid Build Coastguard Worker out/NAME/introspection.txt 610*08b48e0bSAndroid Build Coastguard Worker - print special compile time options used in help output 611*08b48e0bSAndroid Build Coastguard Worker - when using -c cmplog, one of the childs was not killed, fixed 612*08b48e0bSAndroid Build Coastguard Worker - somewhere we broke -n dumb fuzzing, fixed 613*08b48e0bSAndroid Build Coastguard Worker - added afl_custom_describe to the custom mutator API to allow for easy 614*08b48e0bSAndroid Build Coastguard Worker mutation reproduction on crashing inputs 615*08b48e0bSAndroid Build Coastguard Worker - new env. var. AFL_NO_COLOR (or AFL_NO_COLOUR) to suppress colored 616*08b48e0bSAndroid Build Coastguard Worker console output (when configured with USE_COLOR and not ALWAYS_COLORED) 617*08b48e0bSAndroid Build Coastguard Worker - instrumentation 618*08b48e0bSAndroid Build Coastguard Worker - We received an enhanced gcc_plugin module from AdaCore, thank you 619*08b48e0bSAndroid Build Coastguard Worker very much!! 620*08b48e0bSAndroid Build Coastguard Worker - not overriding -Ox or -fno-unroll-loops anymore 621*08b48e0bSAndroid Build Coastguard Worker - we now have our own trace-pc-guard implementation. It is the same as 622*08b48e0bSAndroid Build Coastguard Worker -fsanitize-coverage=trace-pc-guard from llvm 12, but: it is a) inline 623*08b48e0bSAndroid Build Coastguard Worker and b) works from llvm 10.0.1 + onwards :) 624*08b48e0bSAndroid Build Coastguard Worker - new llvm pass: dict2file via AFL_LLVM_DICT2FILE, create afl-fuzz 625*08b48e0bSAndroid Build Coastguard Worker -x dictionary of string comparisons found during compilation 626*08b48e0bSAndroid Build Coastguard Worker - LTO autodict now also collects interesting cmp comparisons, 627*08b48e0bSAndroid Build Coastguard Worker std::string compare + find + ==, bcmp 628*08b48e0bSAndroid Build Coastguard Worker - fix crash in dict2file for integers > 64 bit 629*08b48e0bSAndroid Build Coastguard Worker - custom mutators 630*08b48e0bSAndroid Build Coastguard Worker - added a new custom mutator: symcc -> https://github.com/eurecom-s3/symcc/ 631*08b48e0bSAndroid Build Coastguard Worker - added a new custom mutator: libfuzzer that integrates libfuzzer mutations 632*08b48e0bSAndroid Build Coastguard Worker - Our AFL++ Grammar-Mutator is now better integrated into custom_mutators/ 633*08b48e0bSAndroid Build Coastguard Worker - added INTROSPECTION support for custom modules 634*08b48e0bSAndroid Build Coastguard Worker - python fuzz function was not optional, fixed 635*08b48e0bSAndroid Build Coastguard Worker - some python mutator speed improvements 636*08b48e0bSAndroid Build Coastguard Worker - afl-cmin/afl-cmin.bash now search first in PATH and last in AFL_PATH 637*08b48e0bSAndroid Build Coastguard Worker - unicornafl synced with upstream version 1.02 (fixes, better rust bindings) 638*08b48e0bSAndroid Build Coastguard Worker - renamed AFL_DEBUG_CHILD_OUTPUT to AFL_DEBUG_CHILD 639*08b48e0bSAndroid Build Coastguard Worker - added AFL_CRASH_EXITCODE env variable to treat a child exitcode as crash 640*08b48e0bSAndroid Build Coastguard Worker 641*08b48e0bSAndroid Build Coastguard Worker 642*08b48e0bSAndroid Build Coastguard Worker### Version ++2.68c (release) 643*08b48e0bSAndroid Build Coastguard Worker - added the GSoC excellent AFL++ grammar mutator by Shengtuo to our 644*08b48e0bSAndroid Build Coastguard Worker custom_mutators/ (see custom_mutators/README.md) - or get it here: 645*08b48e0bSAndroid Build Coastguard Worker https://github.com/AFLplusplus/Grammar-Mutator 646*08b48e0bSAndroid Build Coastguard Worker - a few QOL changes for Apple and its outdated gmake 647*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 648*08b48e0bSAndroid Build Coastguard Worker - fix for auto dictionary entries found during fuzzing to not throw out 649*08b48e0bSAndroid Build Coastguard Worker a -x dictionary 650*08b48e0bSAndroid Build Coastguard Worker - added total execs done to plot file 651*08b48e0bSAndroid Build Coastguard Worker - AFL_MAX_DET_EXTRAS env variable added to control the amount of 652*08b48e0bSAndroid Build Coastguard Worker deterministic dict entries without recompiling. 653*08b48e0bSAndroid Build Coastguard Worker - AFL_FORKSRV_INIT_TMOUT env variable added to control the time to wait 654*08b48e0bSAndroid Build Coastguard Worker for the forkserver to come up without the need to increase the overall 655*08b48e0bSAndroid Build Coastguard Worker timeout. 656*08b48e0bSAndroid Build Coastguard Worker - bugfix for cmplog that results in a heap overflow based on target data 657*08b48e0bSAndroid Build Coastguard Worker (thanks to the magma team for reporting!) 658*08b48e0bSAndroid Build Coastguard Worker - write fuzzing setup into out/fuzzer_setup (environment variables and 659*08b48e0bSAndroid Build Coastguard Worker command line) 660*08b48e0bSAndroid Build Coastguard Worker - custom mutators: 661*08b48e0bSAndroid Build Coastguard Worker - added afl_custom_fuzz_count/fuzz_count function to allow specifying 662*08b48e0bSAndroid Build Coastguard Worker the number of fuzz attempts for custom_fuzz 663*08b48e0bSAndroid Build Coastguard Worker - llvm_mode: 664*08b48e0bSAndroid Build Coastguard Worker - ported SanCov to LTO, and made it the default for LTO. better 665*08b48e0bSAndroid Build Coastguard Worker instrumentation locations 666*08b48e0bSAndroid Build Coastguard Worker - Further llvm 12 support (fast moving target like AFL++ :-) ) 667*08b48e0bSAndroid Build Coastguard Worker - deprecated LLVM SKIPSINGLEBLOCK env environment 668*08b48e0bSAndroid Build Coastguard Worker 669*08b48e0bSAndroid Build Coastguard Worker 670*08b48e0bSAndroid Build Coastguard Worker### Version ++2.67c (release) 671*08b48e0bSAndroid Build Coastguard Worker - Support for improved AFL++ snapshot module: 672*08b48e0bSAndroid Build Coastguard Worker https://github.com/AFLplusplus/AFL-Snapshot-LKM 673*08b48e0bSAndroid Build Coastguard Worker - Due to the instrumentation needing more memory, the initial memory sizes 674*08b48e0bSAndroid Build Coastguard Worker for -m have been increased 675*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 676*08b48e0bSAndroid Build Coastguard Worker - added -F option to allow -M main fuzzers to sync to foreign fuzzers, 677*08b48e0bSAndroid Build Coastguard Worker e.g. honggfuzz or libfuzzer 678*08b48e0bSAndroid Build Coastguard Worker - added -b option to bind to a specific CPU 679*08b48e0bSAndroid Build Coastguard Worker - eliminated CPU affinity race condition for -S/-M runs 680*08b48e0bSAndroid Build Coastguard Worker - expanded havoc mode added, on no cycle finds add extra splicing and 681*08b48e0bSAndroid Build Coastguard Worker MOpt into the mix 682*08b48e0bSAndroid Build Coastguard Worker - fixed a bug in redqueen for strings and made deterministic with -s 683*08b48e0bSAndroid Build Coastguard Worker - Compiletime autodictionary fixes 684*08b48e0bSAndroid Build Coastguard Worker - llvm_mode: 685*08b48e0bSAndroid Build Coastguard Worker - now supports llvm 12 686*08b48e0bSAndroid Build Coastguard Worker - support for AFL_LLVM_ALLOWLIST/AFL_LLVM_DENYLIST (previous 687*08b48e0bSAndroid Build Coastguard Worker AFL_LLVM_WHITELIST and AFL_LLVM_INSTRUMENT_FILE are deprecated and 688*08b48e0bSAndroid Build Coastguard Worker are matched to AFL_LLVM_ALLOWLIST). The format is compatible to llvm 689*08b48e0bSAndroid Build Coastguard Worker sancov, and also supports function matching :) 690*08b48e0bSAndroid Build Coastguard Worker - added neverzero counting to trace-pc/pcgard 691*08b48e0bSAndroid Build Coastguard Worker - fixes for laf-intel float splitting (thanks to mark-griffin for 692*08b48e0bSAndroid Build Coastguard Worker reporting) 693*08b48e0bSAndroid Build Coastguard Worker - fixes for llvm 4.0 694*08b48e0bSAndroid Build Coastguard Worker - skipping ctors and ifuncs for instrumentation 695*08b48e0bSAndroid Build Coastguard Worker - LTO: switch default to the dynamic memory map, set AFL_LLVM_MAP_ADDR 696*08b48e0bSAndroid Build Coastguard Worker for a fixed map address (eg. 0x10000) 697*08b48e0bSAndroid Build Coastguard Worker - LTO: improved stability for persistent mode, no other instrumentation 698*08b48e0bSAndroid Build Coastguard Worker has that advantage 699*08b48e0bSAndroid Build Coastguard Worker - LTO: fixed autodict for long strings 700*08b48e0bSAndroid Build Coastguard Worker - LTO: laf-intel and redqueen/cmplog are now applied at link time 701*08b48e0bSAndroid Build Coastguard Worker to prevent llvm optimizing away the splits 702*08b48e0bSAndroid Build Coastguard Worker - LTO: autodictionary mode is a fixed default now 703*08b48e0bSAndroid Build Coastguard Worker - LTO: instrim instrumentation disabled, only classic support used 704*08b48e0bSAndroid Build Coastguard Worker as it is always better 705*08b48e0bSAndroid Build Coastguard Worker - LTO: env var AFL_LLVM_DOCUMENT_IDS=file will document which edge ID 706*08b48e0bSAndroid Build Coastguard Worker was given to which function during compilation 707*08b48e0bSAndroid Build Coastguard Worker - LTO: single block functions were not implemented by default, fixed 708*08b48e0bSAndroid Build Coastguard Worker - LTO: AFL_LLVM_SKIP_NEVERZERO behaviour was inversed, fixed 709*08b48e0bSAndroid Build Coastguard Worker - setting AFL_LLVM_LAF_SPLIT_FLOATS now activates 710*08b48e0bSAndroid Build Coastguard Worker AFL_LLVM_LAF_SPLIT_COMPARES 711*08b48e0bSAndroid Build Coastguard Worker - support for -E and -shared compilation runs 712*08b48e0bSAndroid Build Coastguard Worker - added honggfuzz mangle as a custom mutator in custom_mutators/honggfuzz 713*08b48e0bSAndroid Build Coastguard Worker - added afl-frida gum solution to examples/afl_frida (mostly imported 714*08b48e0bSAndroid Build Coastguard Worker from https://github.com/meme/hotwax/) 715*08b48e0bSAndroid Build Coastguard Worker - small fixes to afl-plot, afl-whatsup and man page creation 716*08b48e0bSAndroid Build Coastguard Worker - new README, added FAQ 717*08b48e0bSAndroid Build Coastguard Worker 718*08b48e0bSAndroid Build Coastguard Worker 719*08b48e0bSAndroid Build Coastguard Worker### Version ++2.66c (release) 720*08b48e0bSAndroid Build Coastguard Worker - renamed the main branch on Github to "stable" 721*08b48e0bSAndroid Build Coastguard Worker - renamed master/slave to main/secondary 722*08b48e0bSAndroid Build Coastguard Worker - renamed blacklist/whitelist to ignorelist/instrumentlist -> 723*08b48e0bSAndroid Build Coastguard Worker AFL_LLVM_INSTRUMENT_FILE and AFL_GCC_INSTRUMENT_FILE 724*08b48e0bSAndroid Build Coastguard Worker - warn on deprecated environment variables 725*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 726*08b48e0bSAndroid Build Coastguard Worker - -S secondary nodes now only sync from the main node to increase 727*08b48e0bSAndroid Build Coastguard Worker performance, the -M main node still syncs from everyone. Added checks 728*08b48e0bSAndroid Build Coastguard Worker that ensure exactly one main node is present and warn otherwise 729*08b48e0bSAndroid Build Coastguard Worker - Add -D after -S to force a secondary to perform deterministic fuzzing 730*08b48e0bSAndroid Build Coastguard Worker - If no main node is present at a sync one secondary node automatically 731*08b48e0bSAndroid Build Coastguard Worker becomes a temporary main node until a real main nodes shows up 732*08b48e0bSAndroid Build Coastguard Worker - Fixed a mayor performance issue we inherited from AFLfast 733*08b48e0bSAndroid Build Coastguard Worker - switched murmur2 hashing and random() for xxh3 and xoshiro256**, 734*08b48e0bSAndroid Build Coastguard Worker resulting in an up to 5.5% speed increase 735*08b48e0bSAndroid Build Coastguard Worker - Resizing the window does not crash afl-fuzz anymore 736*08b48e0bSAndroid Build Coastguard Worker - Ensure that the targets are killed on exit 737*08b48e0bSAndroid Build Coastguard Worker - fix/update to MOpt (thanks to arnow117) 738*08b48e0bSAndroid Build Coastguard Worker - added MOpt dictionary support from repo 739*08b48e0bSAndroid Build Coastguard Worker - added experimental SEEK power schedule. It is EXPLORE with ignoring 740*08b48e0bSAndroid Build Coastguard Worker the runtime and less focus on the length of the test case 741*08b48e0bSAndroid Build Coastguard Worker - llvm_mode: 742*08b48e0bSAndroid Build Coastguard Worker - the default instrumentation is now PCGUARD if the llvm version is >= 7, 743*08b48e0bSAndroid Build Coastguard Worker as it is faster and provides better coverage. The original afl 744*08b48e0bSAndroid Build Coastguard Worker instrumentation can be set via AFL_LLVM_INSTRUMENT=AFL. This is 745*08b48e0bSAndroid Build Coastguard Worker automatically done when the instrument_file list feature is used. 746*08b48e0bSAndroid Build Coastguard Worker - PCGUARD mode is now even better because we made it collision free - plus 747*08b48e0bSAndroid Build Coastguard Worker it has a fixed map size, so it is also faster! :) 748*08b48e0bSAndroid Build Coastguard Worker - some targets want a ld variant for LD that is not gcc/clang but ld, 749*08b48e0bSAndroid Build Coastguard Worker added afl-ld-lto to solve this 750*08b48e0bSAndroid Build Coastguard Worker - lowered minimum required llvm version to 3.4 (except LLVMInsTrim, which 751*08b48e0bSAndroid Build Coastguard Worker needs 3.8.0) 752*08b48e0bSAndroid Build Coastguard Worker - instrument_file list feature now supports wildcards (thanks to sirmc) 753*08b48e0bSAndroid Build Coastguard Worker - small change to cmplog to make it work with current llvm 11-dev 754*08b48e0bSAndroid Build Coastguard Worker - added AFL_LLVM_LAF_ALL, sets all laf-intel settings 755*08b48e0bSAndroid Build Coastguard Worker - LTO instrument_files functionality rewritten, now main, _init etc functions 756*08b48e0bSAndroid Build Coastguard Worker need not to be listed anymore 757*08b48e0bSAndroid Build Coastguard Worker - fixed crash in compare-transform-pass when strcasecmp/strncasecmp was 758*08b48e0bSAndroid Build Coastguard Worker tried to be instrumented with LTO 759*08b48e0bSAndroid Build Coastguard Worker - fixed crash in cmplog with LTO 760*08b48e0bSAndroid Build Coastguard Worker - enable snapshot lkm also for persistent mode 761*08b48e0bSAndroid Build Coastguard Worker - Unicornafl 762*08b48e0bSAndroid Build Coastguard Worker - Added powerPC support from unicorn/next 763*08b48e0bSAndroid Build Coastguard Worker - rust bindings! 764*08b48e0bSAndroid Build Coastguard Worker - CMPLOG/Redqueen now also works for MMAP sharedmem 765*08b48e0bSAndroid Build Coastguard Worker - ensure shmem is released on errors 766*08b48e0bSAndroid Build Coastguard Worker - we moved radamsa to be a custom mutator in ./custom_mutators/. It is not 767*08b48e0bSAndroid Build Coastguard Worker compiled by default anymore. 768*08b48e0bSAndroid Build Coastguard Worker - allow running in /tmp (only unsafe with umask 0) 769*08b48e0bSAndroid Build Coastguard Worker - persistent mode shared memory testcase handover (instead of via 770*08b48e0bSAndroid Build Coastguard Worker files/stdin) - 10-100% performance increase 771*08b48e0bSAndroid Build Coastguard Worker - General support for 64 bit PowerPC, RiscV, Sparc etc. 772*08b48e0bSAndroid Build Coastguard Worker - fix afl-cmin.bash 773*08b48e0bSAndroid Build Coastguard Worker - slightly better performance compilation options for AFL++ and targets 774*08b48e0bSAndroid Build Coastguard Worker - fixed afl-gcc/afl-as that could break on fast systems reusing pids in 775*08b48e0bSAndroid Build Coastguard Worker the same second 776*08b48e0bSAndroid Build Coastguard Worker - added lots of dictionaries from oss-fuzz, go-fuzz and Jakub Wilk 777*08b48e0bSAndroid Build Coastguard Worker - added former post_library examples to examples/custom_mutators/ 778*08b48e0bSAndroid Build Coastguard Worker - Dockerfile upgraded to Ubuntu 20.04 Focal and installing llvm 11 and 779*08b48e0bSAndroid Build Coastguard Worker gcc 10 so afl-clang-lto can be build 780*08b48e0bSAndroid Build Coastguard Worker 781*08b48e0bSAndroid Build Coastguard Worker 782*08b48e0bSAndroid Build Coastguard Worker### Version ++2.65c (release): 783*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 784*08b48e0bSAndroid Build Coastguard Worker - AFL_MAP_SIZE was not working correctly 785*08b48e0bSAndroid Build Coastguard Worker - better python detection 786*08b48e0bSAndroid Build Coastguard Worker - an old, old bug in AFL that would show negative stability in rare 787*08b48e0bSAndroid Build Coastguard Worker circumstances is now hopefully fixed 788*08b48e0bSAndroid Build Coastguard Worker - AFL_POST_LIBRARY was deprecated, use AFL_CUSTOM_MUTATOR_LIBRARY 789*08b48e0bSAndroid Build Coastguard Worker instead (see docs/custom_mutators.md) 790*08b48e0bSAndroid Build Coastguard Worker - llvm_mode: 791*08b48e0bSAndroid Build Coastguard Worker - afl-clang-fast/lto now do not skip single block functions. This 792*08b48e0bSAndroid Build Coastguard Worker behaviour can be reactivated with AFL_LLVM_SKIPSINGLEBLOCK 793*08b48e0bSAndroid Build Coastguard Worker - if LLVM 11 is installed the posix shm_open+mmap is used and a fixed 794*08b48e0bSAndroid Build Coastguard Worker address for the shared memory map is used as this increases the 795*08b48e0bSAndroid Build Coastguard Worker fuzzing speed 796*08b48e0bSAndroid Build Coastguard Worker - InsTrim now has an LTO version! :-) That is the best and fastest mode! 797*08b48e0bSAndroid Build Coastguard Worker - fixes to LTO mode if instrumented edges > MAP_SIZE 798*08b48e0bSAndroid Build Coastguard Worker - CTX and NGRAM can now be used together 799*08b48e0bSAndroid Build Coastguard Worker - CTX and NGRAM are now also supported in CFG/INSTRIM mode 800*08b48e0bSAndroid Build Coastguard Worker - AFL_LLVM_LAF_TRANSFORM_COMPARES could crash, fixed 801*08b48e0bSAndroid Build Coastguard Worker - added AFL_LLVM_SKIP_NEVERZERO to skip the never zero coverage counter 802*08b48e0bSAndroid Build Coastguard Worker implementation. For targets with few or no loops or heavily called 803*08b48e0bSAndroid Build Coastguard Worker functions. Gives a small performance boost. 804*08b48e0bSAndroid Build Coastguard Worker - qemu_mode: 805*08b48e0bSAndroid Build Coastguard Worker - add information on PIE/PIC load addresses for 32 bit 806*08b48e0bSAndroid Build Coastguard Worker - better dependency checks 807*08b48e0bSAndroid Build Coastguard Worker - gcc_plugin: 808*08b48e0bSAndroid Build Coastguard Worker - better dependency checks 809*08b48e0bSAndroid Build Coastguard Worker - unicorn_mode: 810*08b48e0bSAndroid Build Coastguard Worker - validate_crash_callback can now count non-crashing inputs as crash as well 811*08b48e0bSAndroid Build Coastguard Worker - better submodule handling 812*08b48e0bSAndroid Build Coastguard Worker - afl-showmap: fix for -Q mode 813*08b48e0bSAndroid Build Coastguard Worker - added examples/afl_network_proxy which allows to fuzz a target over the 814*08b48e0bSAndroid Build Coastguard Worker network (not fuzzing tcp/ip services but running afl-fuzz on one system 815*08b48e0bSAndroid Build Coastguard Worker and the target being on an embedded device) 816*08b48e0bSAndroid Build Coastguard Worker - added examples/afl_untracer which does a binary-only fuzzing with the 817*08b48e0bSAndroid Build Coastguard Worker modifications done in memory (intel32/64 and aarch64 support) 818*08b48e0bSAndroid Build Coastguard Worker - added examples/afl_proxy which can be easily used to fuzz and instrument 819*08b48e0bSAndroid Build Coastguard Worker non-standard things 820*08b48e0bSAndroid Build Coastguard Worker - all: 821*08b48e0bSAndroid Build Coastguard Worker - forkserver communication now also used for error reporting 822*08b48e0bSAndroid Build Coastguard Worker - fix 32 bit build options 823*08b48e0bSAndroid Build Coastguard Worker - make clean now leaves qemu-3.1.1.tar.xz and the unicornafl directory 824*08b48e0bSAndroid Build Coastguard Worker intact if in a git/svn checkout - unless "deepclean" is used 825*08b48e0bSAndroid Build Coastguard Worker 826*08b48e0bSAndroid Build Coastguard Worker 827*08b48e0bSAndroid Build Coastguard Worker### Version ++2.64c (release): 828*08b48e0bSAndroid Build Coastguard Worker - llvm_mode LTO mode: 829*08b48e0bSAndroid Build Coastguard Worker - now requires llvm11 - but compiles all targets! :) 830*08b48e0bSAndroid Build Coastguard Worker - autodictionary feature added, enable with `AFL_LLVM_LTO_AUTODICTIONARY` 831*08b48e0bSAndroid Build Coastguard Worker - variable map size usage 832*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 833*08b48e0bSAndroid Build Coastguard Worker - variable map size support added (only LTO mode can use this) 834*08b48e0bSAndroid Build Coastguard Worker - snapshot feature usage now visible in UI 835*08b48e0bSAndroid Build Coastguard Worker - Now setting `-L -1` will enable MOpt in parallel to normal mutation. 836*08b48e0bSAndroid Build Coastguard Worker Additionally, this allows to run dictionaries, radamsa and cmplog. 837*08b48e0bSAndroid Build Coastguard Worker - fix for cmplog/redqueen mode if stdin was used 838*08b48e0bSAndroid Build Coastguard Worker - fix for writing a better plot_data file 839*08b48e0bSAndroid Build Coastguard Worker - qemu_mode: fix for persistent mode (which would not terminate or get stuck) 840*08b48e0bSAndroid Build Coastguard Worker - compare-transform/AFL_LLVM_LAF_TRANSFORM_COMPARES now transforms also 841*08b48e0bSAndroid Build Coastguard Worker static global and local variable comparisons (cannot find all though) 842*08b48e0bSAndroid Build Coastguard Worker - extended forkserver: map_size and more information is communicated to 843*08b48e0bSAndroid Build Coastguard Worker afl-fuzz (and afl-fuzz acts accordingly) 844*08b48e0bSAndroid Build Coastguard Worker - new environment variable: AFL_MAP_SIZE to specify the size of the shared map 845*08b48e0bSAndroid Build Coastguard Worker - if AFL_CC/AFL_CXX is set but empty AFL compilers did fail, fixed 846*08b48e0bSAndroid Build Coastguard Worker (this bug is in vanilla AFL too) 847*08b48e0bSAndroid Build Coastguard Worker - added NO_PYTHON flag to disable python support when building afl-fuzz 848*08b48e0bSAndroid Build Coastguard Worker - more refactoring 849*08b48e0bSAndroid Build Coastguard Worker 850*08b48e0bSAndroid Build Coastguard Worker 851*08b48e0bSAndroid Build Coastguard Worker### Version ++2.63c (release): 852*08b48e0bSAndroid Build Coastguard Worker 853*08b48e0bSAndroid Build Coastguard Worker ! the repository was moved from vanhauser-thc to AFLplusplus. It is now 854*08b48e0bSAndroid Build Coastguard Worker an own organisation :) 855*08b48e0bSAndroid Build Coastguard Worker ! development and acceptance of PRs now happen only in the dev branch 856*08b48e0bSAndroid Build Coastguard Worker and only occasionally when everything is fine we PR to master 857*08b48e0bSAndroid Build Coastguard Worker - all: 858*08b48e0bSAndroid Build Coastguard Worker - big code changes to make afl-fuzz thread-safe so afl-fuzz can spawn 859*08b48e0bSAndroid Build Coastguard Worker multiple fuzzing threads in the future or even become a library 860*08b48e0bSAndroid Build Coastguard Worker - AFL basic tools now report on the environment variables picked up 861*08b48e0bSAndroid Build Coastguard Worker - more tools get environment variable usage info in the help output 862*08b48e0bSAndroid Build Coastguard Worker - force all output to stdout (some OK/SAY/WARN messages were sent to 863*08b48e0bSAndroid Build Coastguard Worker stdout, some to stderr) 864*08b48e0bSAndroid Build Coastguard Worker - uninstrumented mode uses an internal forkserver ("fauxserver") 865*08b48e0bSAndroid Build Coastguard Worker - now builds with `-D_FORTIFY_SOURCE=2` 866*08b48e0bSAndroid Build Coastguard Worker - drastically reduced number of (de)allocations during fuzzing 867*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 868*08b48e0bSAndroid Build Coastguard Worker - python mutator modules and custom mutator modules now use the same 869*08b48e0bSAndroid Build Coastguard Worker interface and hence the API changed 870*08b48e0bSAndroid Build Coastguard Worker - AFL_AUTORESUME will resume execution without the need to specify `-i -` 871*08b48e0bSAndroid Build Coastguard Worker - added experimental power schedules (-p): 872*08b48e0bSAndroid Build Coastguard Worker - mmopt: ignores runtime of queue entries, gives higher weighting to 873*08b48e0bSAndroid Build Coastguard Worker the last 5 queue entries 874*08b48e0bSAndroid Build Coastguard Worker - rare: puts focus on queue entries that hits rare branches, also ignores 875*08b48e0bSAndroid Build Coastguard Worker runtime 876*08b48e0bSAndroid Build Coastguard Worker - llvm_mode: 877*08b48e0bSAndroid Build Coastguard Worker - added SNAPSHOT feature (using https://github.com/AFLplusplus/AFL-Snapshot-LKM) 878*08b48e0bSAndroid Build Coastguard Worker - added Control Flow Integrity sanitizer (AFL_USE_CFISAN) 879*08b48e0bSAndroid Build Coastguard Worker - added AFL_LLVM_INSTRUMENT option to control the instrumentation type 880*08b48e0bSAndroid Build Coastguard Worker easier: DEFAULT, CFG (INSTRIM), LTO, CTX, NGRAM-x (x=2-16) 881*08b48e0bSAndroid Build Coastguard Worker - made USE_TRACE_PC compile obsolete 882*08b48e0bSAndroid Build Coastguard Worker - LTO collision free instrumented added in llvm_mode with afl-clang-lto - 883*08b48e0bSAndroid Build Coastguard Worker this mode is amazing but requires you to build llvm 11 yourself 884*08b48e0bSAndroid Build Coastguard Worker - Added llvm_mode NGRAM prev_loc coverage by Adrean Herrera 885*08b48e0bSAndroid Build Coastguard Worker (https://github.com/adrianherrera/afl-ngram-pass/), activate by setting 886*08b48e0bSAndroid Build Coastguard Worker AFL_LLVM_INSTRUMENT=NGRAM-<value> or AFL_LLVM_NGRAM_SIZE=<value> 887*08b48e0bSAndroid Build Coastguard Worker - Added llvm_mode context sensitive branch coverage, activated by setting 888*08b48e0bSAndroid Build Coastguard Worker AFL_LLVM_INSTRUMENT=CTX or AFL_LLVM_CTX=1 889*08b48e0bSAndroid Build Coastguard Worker - llvm_mode InsTrim mode: 890*08b48e0bSAndroid Build Coastguard Worker - removed workaround for bug where paths were not instrumented and 891*08b48e0bSAndroid Build Coastguard Worker imported fix by author 892*08b48e0bSAndroid Build Coastguard Worker - made skipping 1 block functions an option and is disabled by default, 893*08b48e0bSAndroid Build Coastguard Worker set AFL_LLVM_INSTRIM_SKIPSINGLEBLOCK=1 to re-enable this 894*08b48e0bSAndroid Build Coastguard Worker - qemu_mode: 895*08b48e0bSAndroid Build Coastguard Worker - qemu_mode now uses solely the internal capstone version to fix builds 896*08b48e0bSAndroid Build Coastguard Worker on modern Linux distributions 897*08b48e0bSAndroid Build Coastguard Worker - QEMU now logs routine arguments for CmpLog when the target is x86 898*08b48e0bSAndroid Build Coastguard Worker - afl-tmin: 899*08b48e0bSAndroid Build Coastguard Worker - now supports hang mode `-H` to minimize hangs 900*08b48e0bSAndroid Build Coastguard Worker - fixed potential afl-tmin missbehavior for targets with multiple hangs 901*08b48e0bSAndroid Build Coastguard Worker - Pressing Control-c in afl-cmin did not terminate it for some OS 902*08b48e0bSAndroid Build Coastguard Worker - the custom API was rewritten and is now the same for Python and shared 903*08b48e0bSAndroid Build Coastguard Worker libraries. 904*08b48e0bSAndroid Build Coastguard Worker 905*08b48e0bSAndroid Build Coastguard Worker 906*08b48e0bSAndroid Build Coastguard Worker### Version ++2.62c (release): 907*08b48e0bSAndroid Build Coastguard Worker 908*08b48e0bSAndroid Build Coastguard Worker - Important fix for memory allocation functions that result in afl-fuzz 909*08b48e0bSAndroid Build Coastguard Worker not identifying crashes - UPDATE! 910*08b48e0bSAndroid Build Coastguard Worker - Small fix for -E/-V to release the CPU 911*08b48e0bSAndroid Build Coastguard Worker - CmpLog does not need sancov anymore 912*08b48e0bSAndroid Build Coastguard Worker 913*08b48e0bSAndroid Build Coastguard Worker 914*08b48e0bSAndroid Build Coastguard Worker### Version ++2.61c (release): 915*08b48e0bSAndroid Build Coastguard Worker 916*08b48e0bSAndroid Build Coastguard Worker - use -march=native if available 917*08b48e0bSAndroid Build Coastguard Worker - most tools now check for mistyped environment variables 918*08b48e0bSAndroid Build Coastguard Worker - gcc 10 is now supported 919*08b48e0bSAndroid Build Coastguard Worker - the memory safety checks are now disabled for a little more speed during 920*08b48e0bSAndroid Build Coastguard Worker fuzzing (only affects creating queue entries), can be toggled in config.h 921*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 922*08b48e0bSAndroid Build Coastguard Worker - MOpt out of bounds writing crash fixed 923*08b48e0bSAndroid Build Coastguard Worker - now prints the real python version support compiled in 924*08b48e0bSAndroid Build Coastguard Worker - set stronger performance compile options and little tweaks 925*08b48e0bSAndroid Build Coastguard Worker - Android: prefer bigcores when selecting a CPU 926*08b48e0bSAndroid Build Coastguard Worker - CmpLog forkserver 927*08b48e0bSAndroid Build Coastguard Worker - Redqueen input-2-state mutator (cmp instructions only ATM) 928*08b48e0bSAndroid Build Coastguard Worker - all Python 2+3 versions supported now 929*08b48e0bSAndroid Build Coastguard Worker - changed execs_per_sec in fuzzer_stats from "current" execs per second 930*08b48e0bSAndroid Build Coastguard Worker (which is pointless) to total execs per second 931*08b48e0bSAndroid Build Coastguard Worker - bugfix for dictionary insert stage count (fix via Google repo PR) 932*08b48e0bSAndroid Build Coastguard Worker - added warning if -M is used together with custom mutators with _ONLY option 933*08b48e0bSAndroid Build Coastguard Worker - AFL_TMPDIR checks are now later and better explained if they fail 934*08b48e0bSAndroid Build Coastguard Worker - llvm_mode 935*08b48e0bSAndroid Build Coastguard Worker - InsTrim: three bug fixes: 936*08b48e0bSAndroid Build Coastguard Worker 1. (minor) no pointless instrumentation of 1 block functions 937*08b48e0bSAndroid Build Coastguard Worker 2. (medium) path bug that leads a few blocks not instrumented that 938*08b48e0bSAndroid Build Coastguard Worker should be 939*08b48e0bSAndroid Build Coastguard Worker 3. (major) incorrect prev_loc was written, fixed! 940*08b48e0bSAndroid Build Coastguard Worker - afl-clang-fast: 941*08b48e0bSAndroid Build Coastguard Worker - show in the help output for which llvm version it was compiled for 942*08b48e0bSAndroid Build Coastguard Worker - now does not need to be recompiled between trace-pc and pass 943*08b48e0bSAndroid Build Coastguard Worker instrumentation. compile normally and set AFL_LLVM_USE_TRACE_PC :) 944*08b48e0bSAndroid Build Coastguard Worker - LLVM 11 is supported 945*08b48e0bSAndroid Build Coastguard Worker - CmpLog instrumentation using SanCov (see llvm_mode/README.cmplog.md) 946*08b48e0bSAndroid Build Coastguard Worker - afl-gcc, afl-clang-fast, afl-gcc-fast: 947*08b48e0bSAndroid Build Coastguard Worker - experimental support for undefined behaviour sanitizer UBSAN 948*08b48e0bSAndroid Build Coastguard Worker (set AFL_USE_UBSAN=1) 949*08b48e0bSAndroid Build Coastguard Worker - the instrumentation summary output now also lists activated sanitizers 950*08b48e0bSAndroid Build Coastguard Worker - afl-as: added isatty(2) check back in 951*08b48e0bSAndroid Build Coastguard Worker - added AFL_DEBUG (for upcoming merge) 952*08b48e0bSAndroid Build Coastguard Worker - qemu_mode: 953*08b48e0bSAndroid Build Coastguard Worker - persistent mode is now also available for arm and aarch64 954*08b48e0bSAndroid Build Coastguard Worker - CmpLog instrumentation for QEMU (-c afl-fuzz command line option) 955*08b48e0bSAndroid Build Coastguard Worker for x86, x86_64, arm and aarch64 956*08b48e0bSAndroid Build Coastguard Worker - AFL_PERSISTENT_HOOK callback module for persistent QEMU 957*08b48e0bSAndroid Build Coastguard Worker (see examples/qemu_persistent_hook) 958*08b48e0bSAndroid Build Coastguard Worker - added qemu_mode/README.persistent.md documentation 959*08b48e0bSAndroid Build Coastguard Worker - AFL_ENTRYPOINT now has instruction granularity 960*08b48e0bSAndroid Build Coastguard Worker - afl-cmin is now a sh script (invoking awk) instead of bash for portability 961*08b48e0bSAndroid Build Coastguard Worker the original script is still present as afl-cmin.bash 962*08b48e0bSAndroid Build Coastguard Worker - afl-showmap: -i dir option now allows processing multiple inputs using the 963*08b48e0bSAndroid Build Coastguard Worker forkserver. This is for enhanced speed in afl-cmin. 964*08b48e0bSAndroid Build Coastguard Worker - added blacklist and instrument_filesing function check in all modules of llvm_mode 965*08b48e0bSAndroid Build Coastguard Worker - added fix from Debian project to compile libdislocator and libtokencap 966*08b48e0bSAndroid Build Coastguard Worker - libdislocator: AFL_ALIGNED_ALLOC to force size alignment to max_align_t 967*08b48e0bSAndroid Build Coastguard Worker 968*08b48e0bSAndroid Build Coastguard Worker 969*08b48e0bSAndroid Build Coastguard Worker### Version ++2.60c (release): 970*08b48e0bSAndroid Build Coastguard Worker 971*08b48e0bSAndroid Build Coastguard Worker - fixed a critical bug in afl-tmin that was introduced during ++2.53d 972*08b48e0bSAndroid Build Coastguard Worker - added test cases for afl-cmin and afl-tmin to test/test.sh 973*08b48e0bSAndroid Build Coastguard Worker - added ./examples/argv_fuzzing ld_preload library by Kjell Braden 974*08b48e0bSAndroid Build Coastguard Worker - added preeny's desock_dup ld_preload library as 975*08b48e0bSAndroid Build Coastguard Worker ./examples/socket_fuzzing for network fuzzing 976*08b48e0bSAndroid Build Coastguard Worker - added AFL_AS_FORCE_INSTRUMENT environment variable for afl-as - this is 977*08b48e0bSAndroid Build Coastguard Worker for the retrorewrite project 978*08b48e0bSAndroid Build Coastguard Worker - we now set QEMU_SET_ENV from AFL_PRELOAD when qemu_mode is used 979*08b48e0bSAndroid Build Coastguard Worker 980*08b48e0bSAndroid Build Coastguard Worker 981*08b48e0bSAndroid Build Coastguard Worker### Version ++2.59c (release): 982*08b48e0bSAndroid Build Coastguard Worker 983*08b48e0bSAndroid Build Coastguard Worker - qbdi_mode: fuzz android native libraries via QBDI framework 984*08b48e0bSAndroid Build Coastguard Worker - unicorn_mode: switched to the new unicornafl, thanks domenukk 985*08b48e0bSAndroid Build Coastguard Worker (see https://github.com/vanhauser-thc/unicorn) 986*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: 987*08b48e0bSAndroid Build Coastguard Worker - added radamsa as (an optional) mutator stage (-R[R]) 988*08b48e0bSAndroid Build Coastguard Worker - added -u command line option to not unlink the fuzz input file 989*08b48e0bSAndroid Build Coastguard Worker - Python3 support (autodetect) 990*08b48e0bSAndroid Build Coastguard Worker - AFL_DISABLE_TRIM env var to disable the trim stage 991*08b48e0bSAndroid Build Coastguard Worker - CPU affinity support for DragonFly 992*08b48e0bSAndroid Build Coastguard Worker - llvm_mode: 993*08b48e0bSAndroid Build Coastguard Worker - float splitting is now configured via AFL_LLVM_LAF_SPLIT_FLOATS 994*08b48e0bSAndroid Build Coastguard Worker - support for llvm 10 included now (thanks to devnexen) 995*08b48e0bSAndroid Build Coastguard Worker - libtokencap: 996*08b48e0bSAndroid Build Coastguard Worker - support for *BSD/OSX/Dragonfly added 997*08b48e0bSAndroid Build Coastguard Worker - hook common *cmp functions from widely used libraries 998*08b48e0bSAndroid Build Coastguard Worker - compcov: 999*08b48e0bSAndroid Build Coastguard Worker - hook common *cmp functions from widely used libraries 1000*08b48e0bSAndroid Build Coastguard Worker - floating point splitting support for QEMU on x86 targets 1001*08b48e0bSAndroid Build Coastguard Worker - qemu_mode: AFL_QEMU_DISABLE_CACHE env to disable QEMU TranslationBlocks caching 1002*08b48e0bSAndroid Build Coastguard Worker - afl-analyze: added AFL_SKIP_BIN_CHECK support 1003*08b48e0bSAndroid Build Coastguard Worker - better random numbers for gcc_plugin and llvm_mode (thanks to devnexen) 1004*08b48e0bSAndroid Build Coastguard Worker - Dockerfile by courtesy of devnexen 1005*08b48e0bSAndroid Build Coastguard Worker - added regex.dictionary 1006*08b48e0bSAndroid Build Coastguard Worker - qemu and unicorn download scripts now try to download until the full 1007*08b48e0bSAndroid Build Coastguard Worker download succeeded. f*ckin travis fails downloading 40% of the time! 1008*08b48e0bSAndroid Build Coastguard Worker - more support for Android (please test!) 1009*08b48e0bSAndroid Build Coastguard Worker - added the few Android stuff we didnt have already from Google AFL repository 1010*08b48e0bSAndroid Build Coastguard Worker - removed unnecessary warnings 1011*08b48e0bSAndroid Build Coastguard Worker 1012*08b48e0bSAndroid Build Coastguard Worker 1013*08b48e0bSAndroid Build Coastguard Worker### Version ++2.58c (release): 1014*08b48e0bSAndroid Build Coastguard Worker 1015*08b48e0bSAndroid Build Coastguard Worker - reverted patch to not unlink and recreate the input file, it resulted in 1016*08b48e0bSAndroid Build Coastguard Worker performance loss of ~10% 1017*08b48e0bSAndroid Build Coastguard Worker - added test/test-performance.sh script 1018*08b48e0bSAndroid Build Coastguard Worker - (re)added gcc_plugin, fast inline instrumentation is not yet finished, 1019*08b48e0bSAndroid Build Coastguard Worker however it includes the instrument_filesing and persistance feature! by hexcoder- 1020*08b48e0bSAndroid Build Coastguard Worker - gcc_plugin tests added to testing framework 1021*08b48e0bSAndroid Build Coastguard Worker 1022*08b48e0bSAndroid Build Coastguard Worker 1023*08b48e0bSAndroid Build Coastguard Worker### Version ++2.54d-2.57c (release): 1024*08b48e0bSAndroid Build Coastguard Worker 1025*08b48e0bSAndroid Build Coastguard Worker - we jump to 2.57 instead of 2.55 to catch up with Google's versioning 1026*08b48e0bSAndroid Build Coastguard Worker - persistent mode for QEMU (see qemu_mode/README.md) 1027*08b48e0bSAndroid Build Coastguard Worker - custom mutator library is now an additional mutator, to exclusivly use it 1028*08b48e0bSAndroid Build Coastguard Worker add AFL_CUSTOM_MUTATOR_ONLY (that will trigger the previous behaviour) 1029*08b48e0bSAndroid Build Coastguard Worker - new library qemu_mode/unsigaction which filters sigaction events 1030*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz: new command line option -I to execute a command on a new crash 1031*08b48e0bSAndroid Build Coastguard Worker - no more unlinking the input file, this way the input file can also be a 1032*08b48e0bSAndroid Build Coastguard Worker FIFO or disk partition 1033*08b48e0bSAndroid Build Coastguard Worker - setting LLVM_CONFIG for llvm_mode will now again switch to the selected 1034*08b48e0bSAndroid Build Coastguard Worker llvm version. If your setup is correct. 1035*08b48e0bSAndroid Build Coastguard Worker - fuzzing strategy yields for custom mutator were missing from the UI, added them :) 1036*08b48e0bSAndroid Build Coastguard Worker - added "make tests" which will perform checks to see that all functionality 1037*08b48e0bSAndroid Build Coastguard Worker is working as expected. this is currently the starting point, its not complete :) 1038*08b48e0bSAndroid Build Coastguard Worker - added mutation documentation feature ("make document"), creates afl-fuzz-document 1039*08b48e0bSAndroid Build Coastguard Worker and saves all mutations of the first run on the first file into out/queue/mutations 1040*08b48e0bSAndroid Build Coastguard Worker - libtokencap and libdislocator now compile to the afl_root directory and are 1041*08b48e0bSAndroid Build Coastguard Worker installed to the .../lib/afl directory when present during make install 1042*08b48e0bSAndroid Build Coastguard Worker - more BSD support, e.g. free CPU binding code for FreeBSD (thanks to devnexen) 1043*08b48e0bSAndroid Build Coastguard Worker - reducing duplicate code in afl-fuzz 1044*08b48e0bSAndroid Build Coastguard Worker - added "make help" 1045*08b48e0bSAndroid Build Coastguard Worker - removed compile warnings from python internal stuff 1046*08b48e0bSAndroid Build Coastguard Worker - added man page for afl-clang-fast[++] 1047*08b48e0bSAndroid Build Coastguard Worker - updated documentation 1048*08b48e0bSAndroid Build Coastguard Worker - Wine mode to run Win32 binaries with the QEMU instrumentation (-W) 1049*08b48e0bSAndroid Build Coastguard Worker - CompareCoverage for ARM target in QEMU/Unicorn 1050*08b48e0bSAndroid Build Coastguard Worker - laf-intel in llvm_mode now also handles floating point comparisons 1051*08b48e0bSAndroid Build Coastguard Worker 1052*08b48e0bSAndroid Build Coastguard Worker 1053*08b48e0bSAndroid Build Coastguard Worker### Version ++2.54c (release): 1054*08b48e0bSAndroid Build Coastguard Worker 1055*08b48e0bSAndroid Build Coastguard Worker - big code refactoring: 1056*08b48e0bSAndroid Build Coastguard Worker * all includes are now in include/ 1057*08b48e0bSAndroid Build Coastguard Worker * all AFL sources are now in src/ - see src/README.md 1058*08b48e0bSAndroid Build Coastguard Worker * afl-fuzz was split up in various individual files for including 1059*08b48e0bSAndroid Build Coastguard Worker functionality in other programs (e.g. forkserver, memory map, etc.) 1060*08b48e0bSAndroid Build Coastguard Worker for better readability. 1061*08b48e0bSAndroid Build Coastguard Worker * new code indention everywhere 1062*08b48e0bSAndroid Build Coastguard Worker - auto-generating man pages for all (main) tools 1063*08b48e0bSAndroid Build Coastguard Worker - added AFL_FORCE_UI to show the UI even if the terminal is not detected 1064*08b48e0bSAndroid Build Coastguard Worker - llvm 9 is now supported (still needs testing) 1065*08b48e0bSAndroid Build Coastguard Worker - Android is now supported (thank to JoeyJiao!) - still need to modify the Makefile though 1066*08b48e0bSAndroid Build Coastguard Worker - fix building qemu on some Ubuntus (thanks to floyd!) 1067*08b48e0bSAndroid Build Coastguard Worker - custom mutator by a loaded library is now supported (thanks to kyakdan!) 1068*08b48e0bSAndroid Build Coastguard Worker - added PR that includes peak_rss_mb and slowest_exec_ms in the fuzzer_stats report 1069*08b48e0bSAndroid Build Coastguard Worker - more support for *BSD (thanks to devnexen!) 1070*08b48e0bSAndroid Build Coastguard Worker - fix building on *BSD (thanks to tobias.kortkamp for the patch) 1071*08b48e0bSAndroid Build Coastguard Worker - fix for a few features to support different map sized than 2^16 1072*08b48e0bSAndroid Build Coastguard Worker - afl-showmap: new option -r now shows the real values in the buckets (stock 1073*08b48e0bSAndroid Build Coastguard Worker AFL never did), plus shows tuple content summary information now 1074*08b48e0bSAndroid Build Coastguard Worker - small docu updates 1075*08b48e0bSAndroid Build Coastguard Worker - NeverZero counters for QEMU 1076*08b48e0bSAndroid Build Coastguard Worker - NeverZero counters for Unicorn 1077*08b48e0bSAndroid Build Coastguard Worker - CompareCoverage Unicorn 1078*08b48e0bSAndroid Build Coastguard Worker - immediates-only instrumentation for CompareCoverage 1079*08b48e0bSAndroid Build Coastguard Worker 1080*08b48e0bSAndroid Build Coastguard Worker 1081*08b48e0bSAndroid Build Coastguard Worker### Version ++2.53c (release): 1082*08b48e0bSAndroid Build Coastguard Worker 1083*08b48e0bSAndroid Build Coastguard Worker - README is now README.md 1084*08b48e0bSAndroid Build Coastguard Worker - imported the few minor changes from the 2.53b release 1085*08b48e0bSAndroid Build Coastguard Worker - unicorn_mode got added - thanks to domenukk for the patch! 1086*08b48e0bSAndroid Build Coastguard Worker - fix llvm_mode AFL_TRACE_PC with modern llvm 1087*08b48e0bSAndroid Build Coastguard Worker - fix a crash in qemu_mode which also exists in stock afl 1088*08b48e0bSAndroid Build Coastguard Worker - added libcompcov, a laf-intel implementation for qemu! :) 1089*08b48e0bSAndroid Build Coastguard Worker see qemu_mode/libcompcov/README.libcompcov.md 1090*08b48e0bSAndroid Build Coastguard Worker - afl-fuzz now displays the selected core in the status screen (blue {#}) 1091*08b48e0bSAndroid Build Coastguard Worker - updated afl-fuzz and afl-system-config for new scaling governor location 1092*08b48e0bSAndroid Build Coastguard Worker in modern kernels 1093*08b48e0bSAndroid Build Coastguard Worker - using the old ineffective afl-gcc will now show a deprecation warning 1094*08b48e0bSAndroid Build Coastguard Worker - all queue, hang and crash files now have their discovery time in their name 1095*08b48e0bSAndroid Build Coastguard Worker - if llvm_mode was compiled, afl-clang/afl-clang++ will point to these 1096*08b48e0bSAndroid Build Coastguard Worker instead of afl-gcc 1097*08b48e0bSAndroid Build Coastguard Worker - added instrim, a much faster llvm_mode instrumentation at the cost of 1098*08b48e0bSAndroid Build Coastguard Worker path discovery. See llvm_mode/README.instrim.md (https://github.com/csienslab/instrim) 1099*08b48e0bSAndroid Build Coastguard Worker - added MOpt (github.com/puppet-meteor/MOpt-AFL) mode, see docs/README.MOpt.md 1100*08b48e0bSAndroid Build Coastguard Worker - added code to make it more portable to other platforms than Intel Linux 1101*08b48e0bSAndroid Build Coastguard Worker - added never zero counters for afl-gcc and optionally (because of an 1102*08b48e0bSAndroid Build Coastguard Worker optimization issue in llvm < 9) for llvm_mode (AFL_LLVM_NEVER_ZERO=1) 1103*08b48e0bSAndroid Build Coastguard Worker - added a new doc about binary only fuzzing: docs/binaryonly_fuzzing.txt 1104*08b48e0bSAndroid Build Coastguard Worker - more cpu power for afl-system-config 1105*08b48e0bSAndroid Build Coastguard Worker - added forkserver patch to afl-tmin, makes it much faster (originally from 1106*08b48e0bSAndroid Build Coastguard Worker github.com/nccgroup/TriforceAFL) 1107*08b48e0bSAndroid Build Coastguard Worker - added instrument_files support for llvm_mode via AFL_LLVM_WHITELIST to allow 1108*08b48e0bSAndroid Build Coastguard Worker only to instrument what is actually interesting. Gives more speed and less 1109*08b48e0bSAndroid Build Coastguard Worker map pollution (originally by choller@mozilla) 1110*08b48e0bSAndroid Build Coastguard Worker - added Python Module mutator support, python2.7-dev is autodetected. 1111*08b48e0bSAndroid Build Coastguard Worker see docs/python_mutators.txt (originally by choller@mozilla) 1112*08b48e0bSAndroid Build Coastguard Worker - added AFL_CAL_FAST for slow applications and AFL_DEBUG_CHILD_OUTPUT for 1113*08b48e0bSAndroid Build Coastguard Worker debugging 1114*08b48e0bSAndroid Build Coastguard Worker - added -V time and -E execs option to better comparison runs, runs afl-fuzz 1115*08b48e0bSAndroid Build Coastguard Worker for a specific time/executions. 1116*08b48e0bSAndroid Build Coastguard Worker - added a -s seed switch to allow AFL run with a fixed initial 1117*08b48e0bSAndroid Build Coastguard Worker seed that is not updated. This is good for performance and path discovery 1118*08b48e0bSAndroid Build Coastguard Worker tests as the random numbers are deterministic then 1119*08b48e0bSAndroid Build Coastguard Worker - llvm_mode LAF_... env variables can now be specified as AFL_LLVM_LAF_... 1120*08b48e0bSAndroid Build Coastguard Worker that is longer but in line with other llvm specific env vars 1121*08b48e0bSAndroid Build Coastguard Worker 1122*08b48e0bSAndroid Build Coastguard Worker 1123*08b48e0bSAndroid Build Coastguard Worker### Version ++2.52c (2019-06-05): 1124*08b48e0bSAndroid Build Coastguard Worker 1125*08b48e0bSAndroid Build Coastguard Worker - Applied community patches. See docs/PATCHES for the full list. 1126*08b48e0bSAndroid Build Coastguard Worker LLVM and Qemu modes are now faster. 1127*08b48e0bSAndroid Build Coastguard Worker Important changes: 1128*08b48e0bSAndroid Build Coastguard Worker afl-fuzz: -e EXTENSION commandline option 1129*08b48e0bSAndroid Build Coastguard Worker llvm_mode: LAF-intel performance (needs activation, see llvm/README.laf-intel.md) 1130*08b48e0bSAndroid Build Coastguard Worker a few new environment variables for afl-fuzz, llvm and qemu, see docs/env_variables.md 1131*08b48e0bSAndroid Build Coastguard Worker - Added the power schedules of AFLfast by Marcel Boehme, but set the default 1132*08b48e0bSAndroid Build Coastguard Worker to the AFL schedule, not to the FAST schedule. So nothing changes unless 1133*08b48e0bSAndroid Build Coastguard Worker you use the new -p option :-) - see docs/power_schedules.md 1134*08b48e0bSAndroid Build Coastguard Worker - added afl-system-config script to set all system performance options for fuzzing 1135*08b48e0bSAndroid Build Coastguard Worker - llvm_mode works with llvm 3.9 up to including 8 ! 1136*08b48e0bSAndroid Build Coastguard Worker - qemu_mode got upgraded from 2.1 to 3.1 - incorporated from 1137*08b48e0bSAndroid Build Coastguard Worker https://github.com/andreafioraldi/afl and with community patches added 1138*08b48e0bSAndroid Build Coastguard Worker 1139*08b48e0bSAndroid Build Coastguard Worker 1140*08b48e0bSAndroid Build Coastguard Worker### Version 2.52b (2017-11-04): 1141*08b48e0bSAndroid Build Coastguard Worker 1142*08b48e0bSAndroid Build Coastguard Worker - Upgraded QEMU patches from 2.3.0 to 2.10.0. Required troubleshooting 1143*08b48e0bSAndroid Build Coastguard Worker several weird issues. All the legwork done by Andrew Griffiths. 1144*08b48e0bSAndroid Build Coastguard Worker 1145*08b48e0bSAndroid Build Coastguard Worker - Added setsid to afl-showmap. See the notes for 2.51b. 1146*08b48e0bSAndroid Build Coastguard Worker 1147*08b48e0bSAndroid Build Coastguard Worker - Added target mode (deferred, persistent, qemu, etc) to fuzzer_stats. 1148*08b48e0bSAndroid Build Coastguard Worker Requested by Jakub Wilk. 1149*08b48e0bSAndroid Build Coastguard Worker 1150*08b48e0bSAndroid Build Coastguard Worker - afl-tmin should now save a partially minimized file when Ctrl-C 1151*08b48e0bSAndroid Build Coastguard Worker is pressed. Suggested by Jakub Wilk. 1152*08b48e0bSAndroid Build Coastguard Worker 1153*08b48e0bSAndroid Build Coastguard Worker - Added an option for afl-analyze to dump offsets in hex. Suggested by 1154*08b48e0bSAndroid Build Coastguard Worker Jakub Wilk. 1155*08b48e0bSAndroid Build Coastguard Worker 1156*08b48e0bSAndroid Build Coastguard Worker - Added support for parameters in triage_crashes.sh. Patch by Adam of 1157*08b48e0bSAndroid Build Coastguard Worker DC949. 1158*08b48e0bSAndroid Build Coastguard Worker 1159*08b48e0bSAndroid Build Coastguard Worker### Version 2.51b (2017-08-30): 1160*08b48e0bSAndroid Build Coastguard Worker 1161*08b48e0bSAndroid Build Coastguard Worker - Made afl-tmin call setsid to prevent glibc traceback junk from showing 1162*08b48e0bSAndroid Build Coastguard Worker up on the terminal in some distros. Suggested by Jakub Wilk. 1163*08b48e0bSAndroid Build Coastguard Worker 1164*08b48e0bSAndroid Build Coastguard Worker### Version 2.50b (2017-08-19): 1165*08b48e0bSAndroid Build Coastguard Worker 1166*08b48e0bSAndroid Build Coastguard Worker - Fixed an interesting timing corner case spotted by Jakub Wilk. 1167*08b48e0bSAndroid Build Coastguard Worker 1168*08b48e0bSAndroid Build Coastguard Worker - Addressed a libtokencap / pthreads incompatibility issue. Likewise, spotted 1169*08b48e0bSAndroid Build Coastguard Worker by Jakub Wilk. 1170*08b48e0bSAndroid Build Coastguard Worker 1171*08b48e0bSAndroid Build Coastguard Worker - Added a mention of afl-kit and Pythia. 1172*08b48e0bSAndroid Build Coastguard Worker 1173*08b48e0bSAndroid Build Coastguard Worker - Added AFL_FAST_CAL. 1174*08b48e0bSAndroid Build Coastguard Worker 1175*08b48e0bSAndroid Build Coastguard Worker - In-place resume now preserves .synced. Suggested by Jakub Wilk. 1176*08b48e0bSAndroid Build Coastguard Worker 1177*08b48e0bSAndroid Build Coastguard Worker### Version 2.49b (2017-07-18): 1178*08b48e0bSAndroid Build Coastguard Worker 1179*08b48e0bSAndroid Build Coastguard Worker - Added AFL_TMIN_EXACT to allow path constraint for crash minimization. 1180*08b48e0bSAndroid Build Coastguard Worker 1181*08b48e0bSAndroid Build Coastguard Worker - Added dates for releases (retroactively for all of 2017). 1182*08b48e0bSAndroid Build Coastguard Worker 1183*08b48e0bSAndroid Build Coastguard Worker### Version 2.48b (2017-07-17): 1184*08b48e0bSAndroid Build Coastguard Worker 1185*08b48e0bSAndroid Build Coastguard Worker - Added AFL_ALLOW_TMP to permit some scripts to run in /tmp. 1186*08b48e0bSAndroid Build Coastguard Worker 1187*08b48e0bSAndroid Build Coastguard Worker - Fixed cwd handling in afl-analyze (similar to the quirk in afl-tmin). 1188*08b48e0bSAndroid Build Coastguard Worker 1189*08b48e0bSAndroid Build Coastguard Worker - Made it possible to point -o and -f to the same file in afl-tmin. 1190*08b48e0bSAndroid Build Coastguard Worker 1191*08b48e0bSAndroid Build Coastguard Worker### Version 2.47b (2017-07-14): 1192*08b48e0bSAndroid Build Coastguard Worker 1193*08b48e0bSAndroid Build Coastguard Worker - Fixed cwd handling in afl-tmin. Spotted by Jakub Wilk. 1194*08b48e0bSAndroid Build Coastguard Worker 1195*08b48e0bSAndroid Build Coastguard Worker### Version 2.46b (2017-07-10): 1196*08b48e0bSAndroid Build Coastguard Worker 1197*08b48e0bSAndroid Build Coastguard Worker - libdislocator now supports AFL_LD_NO_CALLOC_OVER for folks who do not 1198*08b48e0bSAndroid Build Coastguard Worker want to abort on calloc() overflows. 1199*08b48e0bSAndroid Build Coastguard Worker 1200*08b48e0bSAndroid Build Coastguard Worker - Made a minor fix to libtokencap. Reported by Daniel Stender. 1201*08b48e0bSAndroid Build Coastguard Worker 1202*08b48e0bSAndroid Build Coastguard Worker - Added a small JSON dictionary, inspired on a dictionary done by Jakub Wilk. 1203*08b48e0bSAndroid Build Coastguard Worker 1204*08b48e0bSAndroid Build Coastguard Worker### Version 2.45b (2017-07-04): 1205*08b48e0bSAndroid Build Coastguard Worker 1206*08b48e0bSAndroid Build Coastguard Worker - Added strstr, strcasestr support to libtokencap. Contributed by 1207*08b48e0bSAndroid Build Coastguard Worker Daniel Hodson. 1208*08b48e0bSAndroid Build Coastguard Worker 1209*08b48e0bSAndroid Build Coastguard Worker - Fixed a resumption offset glitch spotted by Jakub Wilk. 1210*08b48e0bSAndroid Build Coastguard Worker 1211*08b48e0bSAndroid Build Coastguard Worker - There are definitely no bugs in afl-showmap -c now. 1212*08b48e0bSAndroid Build Coastguard Worker 1213*08b48e0bSAndroid Build Coastguard Worker### Version 2.44b (2017-06-28): 1214*08b48e0bSAndroid Build Coastguard Worker 1215*08b48e0bSAndroid Build Coastguard Worker - Added a visual indicator of ASAN / MSAN mode when compiling. Requested 1216*08b48e0bSAndroid Build Coastguard Worker by Jakub Wilk. 1217*08b48e0bSAndroid Build Coastguard Worker 1218*08b48e0bSAndroid Build Coastguard Worker - Added support for afl-showmap coredumps (-c). Suggested by Jakub Wilk. 1219*08b48e0bSAndroid Build Coastguard Worker 1220*08b48e0bSAndroid Build Coastguard Worker - Added LD_BIND_NOW=1 for afl-showmap by default. Although not really useful, 1221*08b48e0bSAndroid Build Coastguard Worker it reportedly helps reproduce some crashes. Suggested by Jakub Wilk. 1222*08b48e0bSAndroid Build Coastguard Worker 1223*08b48e0bSAndroid Build Coastguard Worker - Added a note about allocator_may_return_null=1 not always working with 1224*08b48e0bSAndroid Build Coastguard Worker ASAN. Spotted by Jakub Wilk. 1225*08b48e0bSAndroid Build Coastguard Worker 1226*08b48e0bSAndroid Build Coastguard Worker### Version 2.43b (2017-06-16): 1227*08b48e0bSAndroid Build Coastguard Worker 1228*08b48e0bSAndroid Build Coastguard Worker - Added AFL_NO_ARITH to aid in the fuzzing of text-based formats. 1229*08b48e0bSAndroid Build Coastguard Worker Requested by Jakub Wilk. 1230*08b48e0bSAndroid Build Coastguard Worker 1231*08b48e0bSAndroid Build Coastguard Worker### Version 2.42b (2017-06-02): 1232*08b48e0bSAndroid Build Coastguard Worker 1233*08b48e0bSAndroid Build Coastguard Worker - Renamed the R() macro to avoid a problem with llvm_mode in the latest 1234*08b48e0bSAndroid Build Coastguard Worker versions of LLVM. Fix suggested by Christian Holler. 1235*08b48e0bSAndroid Build Coastguard Worker 1236*08b48e0bSAndroid Build Coastguard Worker### Version 2.41b (2017-04-12): 1237*08b48e0bSAndroid Build Coastguard Worker 1238*08b48e0bSAndroid Build Coastguard Worker - Addressed a major user complaint related to timeout detection. Timing out 1239*08b48e0bSAndroid Build Coastguard Worker inputs are now binned as "hangs" only if they exceed a far more generous 1240*08b48e0bSAndroid Build Coastguard Worker time limit than the one used to reject slow paths. 1241*08b48e0bSAndroid Build Coastguard Worker 1242*08b48e0bSAndroid Build Coastguard Worker### Version 2.40b (2017-04-02): 1243*08b48e0bSAndroid Build Coastguard Worker 1244*08b48e0bSAndroid Build Coastguard Worker - Fixed a minor oversight in the insertion strategy for dictionary words. 1245*08b48e0bSAndroid Build Coastguard Worker Spotted by Andrzej Jackowski. 1246*08b48e0bSAndroid Build Coastguard Worker 1247*08b48e0bSAndroid Build Coastguard Worker - Made a small improvement to the havoc block insertion strategy. 1248*08b48e0bSAndroid Build Coastguard Worker 1249*08b48e0bSAndroid Build Coastguard Worker - Adjusted color rules for "is it done yet?" indicators. 1250*08b48e0bSAndroid Build Coastguard Worker 1251*08b48e0bSAndroid Build Coastguard Worker### Version 2.39b (2017-02-02): 1252*08b48e0bSAndroid Build Coastguard Worker 1253*08b48e0bSAndroid Build Coastguard Worker - Improved error reporting in afl-cmin. Suggested by floyd. 1254*08b48e0bSAndroid Build Coastguard Worker 1255*08b48e0bSAndroid Build Coastguard Worker - Made a minor tweak to trace-pc-guard support. Suggested by kcc. 1256*08b48e0bSAndroid Build Coastguard Worker 1257*08b48e0bSAndroid Build Coastguard Worker - Added a mention of afl-monitor. 1258*08b48e0bSAndroid Build Coastguard Worker 1259*08b48e0bSAndroid Build Coastguard Worker### Version 2.38b (2017-01-22): 1260*08b48e0bSAndroid Build Coastguard Worker 1261*08b48e0bSAndroid Build Coastguard Worker - Added -mllvm -sanitizer-coverage-block-threshold=0 to trace-pc-guard 1262*08b48e0bSAndroid Build Coastguard Worker mode, as suggested by Kostya Serebryany. 1263*08b48e0bSAndroid Build Coastguard Worker 1264*08b48e0bSAndroid Build Coastguard Worker### Version 2.37b (2017-01-22): 1265*08b48e0bSAndroid Build Coastguard Worker 1266*08b48e0bSAndroid Build Coastguard Worker - Fixed a typo. Spotted by Jakub Wilk. 1267*08b48e0bSAndroid Build Coastguard Worker 1268*08b48e0bSAndroid Build Coastguard Worker - Fixed support for make install when using trace-pc. Spotted by 1269*08b48e0bSAndroid Build Coastguard Worker Kurt Roeckx. 1270*08b48e0bSAndroid Build Coastguard Worker 1271*08b48e0bSAndroid Build Coastguard Worker - Switched trace-pc to trace-pc-guard, which should be considerably 1272*08b48e0bSAndroid Build Coastguard Worker faster and is less quirky. Kudos to Konstantin Serebryany (and sorry 1273*08b48e0bSAndroid Build Coastguard Worker for dragging my feet). 1274*08b48e0bSAndroid Build Coastguard Worker 1275*08b48e0bSAndroid Build Coastguard Worker Note that for some reason, this mode doesn't perform as well as 1276*08b48e0bSAndroid Build Coastguard Worker "vanilla" afl-clang-fast / afl-clang. 1277*08b48e0bSAndroid Build Coastguard Worker 1278*08b48e0bSAndroid Build Coastguard Worker### Version 2.36b (2017-01-14): 1279*08b48e0bSAndroid Build Coastguard Worker 1280*08b48e0bSAndroid Build Coastguard Worker - Fixed a cosmetic bad free() bug when aborting -S sessions. Spotted 1281*08b48e0bSAndroid Build Coastguard Worker by Johannes S. 1282*08b48e0bSAndroid Build Coastguard Worker 1283*08b48e0bSAndroid Build Coastguard Worker - Made a small change to afl-whatsup to sort fuzzers by name. 1284*08b48e0bSAndroid Build Coastguard Worker 1285*08b48e0bSAndroid Build Coastguard Worker - Fixed a minor issue with malloc(0) in libdislocator. Spotted by 1286*08b48e0bSAndroid Build Coastguard Worker Rene Freingruber. 1287*08b48e0bSAndroid Build Coastguard Worker 1288*08b48e0bSAndroid Build Coastguard Worker - Changed the clobber pattern in libdislocator to a slightly more 1289*08b48e0bSAndroid Build Coastguard Worker reliable one. Suggested by Rene Freingruber. 1290*08b48e0bSAndroid Build Coastguard Worker 1291*08b48e0bSAndroid Build Coastguard Worker - Added a note about THP performance. Suggested by Sergey Davidoff. 1292*08b48e0bSAndroid Build Coastguard Worker 1293*08b48e0bSAndroid Build Coastguard Worker - Added a somewhat unofficial support for running afl-tmin with a 1294*08b48e0bSAndroid Build Coastguard Worker baseline "mask" that causes it to minimize only for edges that 1295*08b48e0bSAndroid Build Coastguard Worker are unique to the input file, but not to the "boring" baseline. 1296*08b48e0bSAndroid Build Coastguard Worker Suggested by Sami Liedes. 1297*08b48e0bSAndroid Build Coastguard Worker 1298*08b48e0bSAndroid Build Coastguard Worker - "Fixed" a getPassName() problem with newer versions of clang. 1299*08b48e0bSAndroid Build Coastguard Worker Reported by Craig Young and several other folks. 1300*08b48e0bSAndroid Build Coastguard Worker 1301*08b48e0bSAndroid Build Coastguard Worker Yep, I know I have a backlog on several other feature requests. 1302*08b48e0bSAndroid Build Coastguard Worker Stay tuned! 1303*08b48e0bSAndroid Build Coastguard Worker 1304*08b48e0bSAndroid Build Coastguard Worker### Version 2.35b: 1305*08b48e0bSAndroid Build Coastguard Worker 1306*08b48e0bSAndroid Build Coastguard Worker - Fixed a minor cmdline reporting glitch, spotted by Leo Barnes. 1307*08b48e0bSAndroid Build Coastguard Worker 1308*08b48e0bSAndroid Build Coastguard Worker - Fixed a silly bug in libdislocator. Spotted by Johannes Schultz. 1309*08b48e0bSAndroid Build Coastguard Worker 1310*08b48e0bSAndroid Build Coastguard Worker### Version 2.34b: 1311*08b48e0bSAndroid Build Coastguard Worker 1312*08b48e0bSAndroid Build Coastguard Worker - Added a note about afl-tmin to technical_details.txt. 1313*08b48e0bSAndroid Build Coastguard Worker 1314*08b48e0bSAndroid Build Coastguard Worker - Added support for AFL_NO_UI, as suggested by Leo Barnes. 1315*08b48e0bSAndroid Build Coastguard Worker 1316*08b48e0bSAndroid Build Coastguard Worker### Version 2.33b: 1317*08b48e0bSAndroid Build Coastguard Worker 1318*08b48e0bSAndroid Build Coastguard Worker - Added code to strip -Wl,-z,defs and -Wl,--no-undefined for afl-clang-fast, 1319*08b48e0bSAndroid Build Coastguard Worker since they interfere with -shared. Spotted and diagnosed by Toby Hutton. 1320*08b48e0bSAndroid Build Coastguard Worker 1321*08b48e0bSAndroid Build Coastguard Worker - Added some fuzzing tips for Android. 1322*08b48e0bSAndroid Build Coastguard Worker 1323*08b48e0bSAndroid Build Coastguard Worker### Version 2.32b: 1324*08b48e0bSAndroid Build Coastguard Worker 1325*08b48e0bSAndroid Build Coastguard Worker - Added a check for AFL_HARDEN combined with AFL_USE_*SAN. Suggested by 1326*08b48e0bSAndroid Build Coastguard Worker Hanno Boeck. 1327*08b48e0bSAndroid Build Coastguard Worker 1328*08b48e0bSAndroid Build Coastguard Worker - Made several other cosmetic adjustments to cycle timing in the wake of the 1329*08b48e0bSAndroid Build Coastguard Worker big tweak made in 2.31b. 1330*08b48e0bSAndroid Build Coastguard Worker 1331*08b48e0bSAndroid Build Coastguard Worker### Version 2.31b: 1332*08b48e0bSAndroid Build Coastguard Worker 1333*08b48e0bSAndroid Build Coastguard Worker - Changed havoc cycle counts for a marked performance boost, especially 1334*08b48e0bSAndroid Build Coastguard Worker with -S / -d. See the discussion of FidgetyAFL in: 1335*08b48e0bSAndroid Build Coastguard Worker 1336*08b48e0bSAndroid Build Coastguard Worker https://groups.google.com/forum/#!topic/afl-users/fOPeb62FZUg 1337*08b48e0bSAndroid Build Coastguard Worker 1338*08b48e0bSAndroid Build Coastguard Worker While this does not implement the approach proposed by the authors of 1339*08b48e0bSAndroid Build Coastguard Worker the CCS paper, the solution is a result of digging into that research; 1340*08b48e0bSAndroid Build Coastguard Worker more improvements may follow as I do more experiments and get more 1341*08b48e0bSAndroid Build Coastguard Worker definitive data. 1342*08b48e0bSAndroid Build Coastguard Worker 1343*08b48e0bSAndroid Build Coastguard Worker### Version 2.30b: 1344*08b48e0bSAndroid Build Coastguard Worker 1345*08b48e0bSAndroid Build Coastguard Worker - Made minor improvements to persistent mode to avoid the remote 1346*08b48e0bSAndroid Build Coastguard Worker possibility of "no instrumentation detected" issues with very low 1347*08b48e0bSAndroid Build Coastguard Worker instrumentation densities. 1348*08b48e0bSAndroid Build Coastguard Worker 1349*08b48e0bSAndroid Build Coastguard Worker - Fixed a minor glitch with a leftover process in persistent mode. 1350*08b48e0bSAndroid Build Coastguard Worker Reported by Jakub Wilk and Daniel Stender. 1351*08b48e0bSAndroid Build Coastguard Worker 1352*08b48e0bSAndroid Build Coastguard Worker - Made persistent mode bitmaps a bit more consistent and adjusted the way 1353*08b48e0bSAndroid Build Coastguard Worker this is shown in the UI, especially in persistent mode. 1354*08b48e0bSAndroid Build Coastguard Worker 1355*08b48e0bSAndroid Build Coastguard Worker### Version 2.29b: 1356*08b48e0bSAndroid Build Coastguard Worker 1357*08b48e0bSAndroid Build Coastguard Worker - Made a minor #include fix to llvm_mode. Suggested by Jonathan Metzman. 1358*08b48e0bSAndroid Build Coastguard Worker 1359*08b48e0bSAndroid Build Coastguard Worker - Made cosmetic updates to the docs. 1360*08b48e0bSAndroid Build Coastguard Worker 1361*08b48e0bSAndroid Build Coastguard Worker### Version 2.28b: 1362*08b48e0bSAndroid Build Coastguard Worker 1363*08b48e0bSAndroid Build Coastguard Worker - Added "life pro tips" to docs/. 1364*08b48e0bSAndroid Build Coastguard Worker 1365*08b48e0bSAndroid Build Coastguard Worker - Moved testcases/_extras/ to dictionaries/ for visibility. 1366*08b48e0bSAndroid Build Coastguard Worker 1367*08b48e0bSAndroid Build Coastguard Worker - Made minor improvements to install scripts. 1368*08b48e0bSAndroid Build Coastguard Worker 1369*08b48e0bSAndroid Build Coastguard Worker - Added an important safety tip. 1370*08b48e0bSAndroid Build Coastguard Worker 1371*08b48e0bSAndroid Build Coastguard Worker### Version 2.27b: 1372*08b48e0bSAndroid Build Coastguard Worker 1373*08b48e0bSAndroid Build Coastguard Worker - Added libtokencap, a simple feature to intercept strcmp / memcmp and 1374*08b48e0bSAndroid Build Coastguard Worker generate dictionary entries that can help extend coverage. 1375*08b48e0bSAndroid Build Coastguard Worker 1376*08b48e0bSAndroid Build Coastguard Worker - Moved libdislocator to its own dir, added README.md. 1377*08b48e0bSAndroid Build Coastguard Worker 1378*08b48e0bSAndroid Build Coastguard Worker - The demo in examples/instrumented_cmp is no more. 1379*08b48e0bSAndroid Build Coastguard Worker 1380*08b48e0bSAndroid Build Coastguard Worker### Version 2.26b: 1381*08b48e0bSAndroid Build Coastguard Worker 1382*08b48e0bSAndroid Build Coastguard Worker - Made a fix for libdislocator.so to compile on MacOS X. 1383*08b48e0bSAndroid Build Coastguard Worker 1384*08b48e0bSAndroid Build Coastguard Worker - Added support for DYLD_INSERT_LIBRARIES. 1385*08b48e0bSAndroid Build Coastguard Worker 1386*08b48e0bSAndroid Build Coastguard Worker - Renamed AFL_LD_PRELOAD to AFL_PRELOAD. 1387*08b48e0bSAndroid Build Coastguard Worker 1388*08b48e0bSAndroid Build Coastguard Worker### Version 2.25b: 1389*08b48e0bSAndroid Build Coastguard Worker 1390*08b48e0bSAndroid Build Coastguard Worker - Made some cosmetic updates to libdislocator.so, renamed one env 1391*08b48e0bSAndroid Build Coastguard Worker variable. 1392*08b48e0bSAndroid Build Coastguard Worker 1393*08b48e0bSAndroid Build Coastguard Worker### Version 2.24b: 1394*08b48e0bSAndroid Build Coastguard Worker 1395*08b48e0bSAndroid Build Coastguard Worker - Added libdislocator.so, an experimental, abusive allocator. Try 1396*08b48e0bSAndroid Build Coastguard Worker it out with AFL_LD_PRELOAD=/path/to/libdislocator.so when running 1397*08b48e0bSAndroid Build Coastguard Worker afl-fuzz. 1398*08b48e0bSAndroid Build Coastguard Worker 1399*08b48e0bSAndroid Build Coastguard Worker### Version 2.23b: 1400*08b48e0bSAndroid Build Coastguard Worker 1401*08b48e0bSAndroid Build Coastguard Worker - Improved the stability metric for persistent mode binaries. Problem 1402*08b48e0bSAndroid Build Coastguard Worker spotted by Kurt Roeckx. 1403*08b48e0bSAndroid Build Coastguard Worker 1404*08b48e0bSAndroid Build Coastguard Worker - Made a related improvement that may bring the metric to 100% for those 1405*08b48e0bSAndroid Build Coastguard Worker targets. 1406*08b48e0bSAndroid Build Coastguard Worker 1407*08b48e0bSAndroid Build Coastguard Worker### Version 2.22b: 1408*08b48e0bSAndroid Build Coastguard Worker 1409*08b48e0bSAndroid Build Coastguard Worker - Mentioned the potential conflicts between MSAN / ASAN and FORTIFY_SOURCE. 1410*08b48e0bSAndroid Build Coastguard Worker There is no automated check for this, since some distros may implicitly 1411*08b48e0bSAndroid Build Coastguard Worker set FORTIFY_SOURCE outside of the compiler's argv[]. 1412*08b48e0bSAndroid Build Coastguard Worker 1413*08b48e0bSAndroid Build Coastguard Worker - Populated the support for AFL_LD_PRELOAD to all companion tools. 1414*08b48e0bSAndroid Build Coastguard Worker 1415*08b48e0bSAndroid Build Coastguard Worker - Made a change to the handling of ./afl-clang-fast -v. Spotted by 1416*08b48e0bSAndroid Build Coastguard Worker Jan Kneschke. 1417*08b48e0bSAndroid Build Coastguard Worker 1418*08b48e0bSAndroid Build Coastguard Worker### Version 2.21b: 1419*08b48e0bSAndroid Build Coastguard Worker 1420*08b48e0bSAndroid Build Coastguard Worker - Added some crash reporting notes for Solaris in docs/INSTALL, as 1421*08b48e0bSAndroid Build Coastguard Worker investigated by Martin Carpenter. 1422*08b48e0bSAndroid Build Coastguard Worker 1423*08b48e0bSAndroid Build Coastguard Worker - Fixed a minor UI mix-up with havoc strategy stats. 1424*08b48e0bSAndroid Build Coastguard Worker 1425*08b48e0bSAndroid Build Coastguard Worker### Version 2.20b: 1426*08b48e0bSAndroid Build Coastguard Worker 1427*08b48e0bSAndroid Build Coastguard Worker - Revamped the handling of variable paths, replacing path count with a 1428*08b48e0bSAndroid Build Coastguard Worker "stability" score to give users a much better signal. Based on the 1429*08b48e0bSAndroid Build Coastguard Worker feedback from Vegard Nossum. 1430*08b48e0bSAndroid Build Coastguard Worker 1431*08b48e0bSAndroid Build Coastguard Worker - Made a stability improvement to the syncing behavior with resuming 1432*08b48e0bSAndroid Build Coastguard Worker fuzzers. Based on the feedback from Vegard. 1433*08b48e0bSAndroid Build Coastguard Worker 1434*08b48e0bSAndroid Build Coastguard Worker - Changed the UI to include current input bitmap density along with 1435*08b48e0bSAndroid Build Coastguard Worker total density. Ditto. 1436*08b48e0bSAndroid Build Coastguard Worker 1437*08b48e0bSAndroid Build Coastguard Worker - Added experimental support for parallelizing -M. 1438*08b48e0bSAndroid Build Coastguard Worker 1439*08b48e0bSAndroid Build Coastguard Worker### Version 2.19b: 1440*08b48e0bSAndroid Build Coastguard Worker 1441*08b48e0bSAndroid Build Coastguard Worker - Made a fix to make sure that auto CPU binding happens at non-overlapping 1442*08b48e0bSAndroid Build Coastguard Worker times. 1443*08b48e0bSAndroid Build Coastguard Worker 1444*08b48e0bSAndroid Build Coastguard Worker### Version 2.18b: 1445*08b48e0bSAndroid Build Coastguard Worker 1446*08b48e0bSAndroid Build Coastguard Worker - Made several performance improvements to has_new_bits() and 1447*08b48e0bSAndroid Build Coastguard Worker classify_counts(). This should offer a robust performance bump with 1448*08b48e0bSAndroid Build Coastguard Worker fast targets. 1449*08b48e0bSAndroid Build Coastguard Worker 1450*08b48e0bSAndroid Build Coastguard Worker### Version 2.17b: 1451*08b48e0bSAndroid Build Coastguard Worker 1452*08b48e0bSAndroid Build Coastguard Worker - Killed the error-prone and manual -Z option. On Linux, AFL will now 1453*08b48e0bSAndroid Build Coastguard Worker automatically bind to the first free core (or complain if there are no 1454*08b48e0bSAndroid Build Coastguard Worker free cores left). 1455*08b48e0bSAndroid Build Coastguard Worker 1456*08b48e0bSAndroid Build Coastguard Worker - Made some doc updates along these lines. 1457*08b48e0bSAndroid Build Coastguard Worker 1458*08b48e0bSAndroid Build Coastguard Worker### Version 2.16b: 1459*08b48e0bSAndroid Build Coastguard Worker 1460*08b48e0bSAndroid Build Coastguard Worker - Improved support for older versions of clang (hopefully without 1461*08b48e0bSAndroid Build Coastguard Worker breaking anything). 1462*08b48e0bSAndroid Build Coastguard Worker 1463*08b48e0bSAndroid Build Coastguard Worker - Moved version data from Makefile to config.h. Suggested by 1464*08b48e0bSAndroid Build Coastguard Worker Jonathan Metzman. 1465*08b48e0bSAndroid Build Coastguard Worker 1466*08b48e0bSAndroid Build Coastguard Worker### Version 2.15b: 1467*08b48e0bSAndroid Build Coastguard Worker 1468*08b48e0bSAndroid Build Coastguard Worker - Added a README section on looking for non-crashing bugs. 1469*08b48e0bSAndroid Build Coastguard Worker 1470*08b48e0bSAndroid Build Coastguard Worker - Added license data to several boring files. Contributed by 1471*08b48e0bSAndroid Build Coastguard Worker Jonathan Metzman. 1472*08b48e0bSAndroid Build Coastguard Worker 1473*08b48e0bSAndroid Build Coastguard Worker### Version 2.14b: 1474*08b48e0bSAndroid Build Coastguard Worker 1475*08b48e0bSAndroid Build Coastguard Worker - Added FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION as a macro defined when 1476*08b48e0bSAndroid Build Coastguard Worker compiling with afl-gcc and friends. Suggested by Kostya Serebryany. 1477*08b48e0bSAndroid Build Coastguard Worker 1478*08b48e0bSAndroid Build Coastguard Worker - Refreshed some of the non-x86 docs. 1479*08b48e0bSAndroid Build Coastguard Worker 1480*08b48e0bSAndroid Build Coastguard Worker### Version 2.13b: 1481*08b48e0bSAndroid Build Coastguard Worker 1482*08b48e0bSAndroid Build Coastguard Worker - Fixed a spurious build test error with trace-pc and llvm_mode/Makefile. 1483*08b48e0bSAndroid Build Coastguard Worker Spotted by Markus Teufelberger. 1484*08b48e0bSAndroid Build Coastguard Worker 1485*08b48e0bSAndroid Build Coastguard Worker - Fixed a cosmetic issue with afl-whatsup. Spotted by Brandon Perry. 1486*08b48e0bSAndroid Build Coastguard Worker 1487*08b48e0bSAndroid Build Coastguard Worker### Version 2.12b: 1488*08b48e0bSAndroid Build Coastguard Worker 1489*08b48e0bSAndroid Build Coastguard Worker - Fixed a minor issue in afl-tmin that can make alphabet minimization less 1490*08b48e0bSAndroid Build Coastguard Worker efficient during passes > 1. Spotted by Daniel Binderman. 1491*08b48e0bSAndroid Build Coastguard Worker 1492*08b48e0bSAndroid Build Coastguard Worker### Version 2.11b: 1493*08b48e0bSAndroid Build Coastguard Worker 1494*08b48e0bSAndroid Build Coastguard Worker - Fixed a minor typo in instrumented_cmp, spotted by Hanno Eissfeldt. 1495*08b48e0bSAndroid Build Coastguard Worker 1496*08b48e0bSAndroid Build Coastguard Worker - Added a missing size check for deterministic insertion steps. 1497*08b48e0bSAndroid Build Coastguard Worker 1498*08b48e0bSAndroid Build Coastguard Worker - Made an improvement to afl-gotcpu when -Z not used. 1499*08b48e0bSAndroid Build Coastguard Worker 1500*08b48e0bSAndroid Build Coastguard Worker - Fixed a typo in post_library_png.so.c in examples/. Spotted by Kostya 1501*08b48e0bSAndroid Build Coastguard Worker Serebryany. 1502*08b48e0bSAndroid Build Coastguard Worker 1503*08b48e0bSAndroid Build Coastguard Worker### Version 2.10b: 1504*08b48e0bSAndroid Build Coastguard Worker 1505*08b48e0bSAndroid Build Coastguard Worker - Fixed a minor core counting glitch, reported by Tyler Nighswander. 1506*08b48e0bSAndroid Build Coastguard Worker 1507*08b48e0bSAndroid Build Coastguard Worker### Version 2.09b: 1508*08b48e0bSAndroid Build Coastguard Worker 1509*08b48e0bSAndroid Build Coastguard Worker - Made several documentation updates. 1510*08b48e0bSAndroid Build Coastguard Worker 1511*08b48e0bSAndroid Build Coastguard Worker - Added some visual indicators to promote and simplify the use of -Z. 1512*08b48e0bSAndroid Build Coastguard Worker 1513*08b48e0bSAndroid Build Coastguard Worker### Version 2.08b: 1514*08b48e0bSAndroid Build Coastguard Worker 1515*08b48e0bSAndroid Build Coastguard Worker - Added explicit support for -m32 and -m64 for llvm_mode. Inspired by 1516*08b48e0bSAndroid Build Coastguard Worker a request from Christian Holler. 1517*08b48e0bSAndroid Build Coastguard Worker 1518*08b48e0bSAndroid Build Coastguard Worker - Added a new benchmarking option, as requested by Kostya Serebryany. 1519*08b48e0bSAndroid Build Coastguard Worker 1520*08b48e0bSAndroid Build Coastguard Worker### Version 2.07b: 1521*08b48e0bSAndroid Build Coastguard Worker 1522*08b48e0bSAndroid Build Coastguard Worker - Added CPU affinity option (-Z) on Linux. With some caution, this can 1523*08b48e0bSAndroid Build Coastguard Worker offer a significant (10%+) performance bump and reduce jitter. 1524*08b48e0bSAndroid Build Coastguard Worker Proposed by Austin Seipp. 1525*08b48e0bSAndroid Build Coastguard Worker 1526*08b48e0bSAndroid Build Coastguard Worker - Updated afl-gotcpu to use CPU affinity where supported. 1527*08b48e0bSAndroid Build Coastguard Worker 1528*08b48e0bSAndroid Build Coastguard Worker - Fixed confusing CPU_TARGET error messages with QEMU build. Spotted by 1529*08b48e0bSAndroid Build Coastguard Worker Daniel Komaromy and others. 1530*08b48e0bSAndroid Build Coastguard Worker 1531*08b48e0bSAndroid Build Coastguard Worker### Version 2.06b: 1532*08b48e0bSAndroid Build Coastguard Worker 1533*08b48e0bSAndroid Build Coastguard Worker - Worked around LLVM persistent mode hiccups with -shared code. 1534*08b48e0bSAndroid Build Coastguard Worker Contributed by Christian Holler. 1535*08b48e0bSAndroid Build Coastguard Worker 1536*08b48e0bSAndroid Build Coastguard Worker - Added __AFL_COMPILER as a convenient way to detect that something is 1537*08b48e0bSAndroid Build Coastguard Worker built under afl-gcc / afl-clang / afl-clang-fast and enable custom 1538*08b48e0bSAndroid Build Coastguard Worker optimizations in your code. Suggested by Pedro Corte-Real. 1539*08b48e0bSAndroid Build Coastguard Worker 1540*08b48e0bSAndroid Build Coastguard Worker - Upstreamed several minor changes developed by Franjo Ivancic to 1541*08b48e0bSAndroid Build Coastguard Worker allow AFL to be built as a library. This is fairly use-specific and 1542*08b48e0bSAndroid Build Coastguard Worker may have relatively little appeal to general audiences. 1543*08b48e0bSAndroid Build Coastguard Worker 1544*08b48e0bSAndroid Build Coastguard Worker### Version 2.05b: 1545*08b48e0bSAndroid Build Coastguard Worker 1546*08b48e0bSAndroid Build Coastguard Worker - Put __sanitizer_cov_module_init & co behind #ifdef to avoid problems 1547*08b48e0bSAndroid Build Coastguard Worker with ASAN. Spotted by Christian Holler. 1548*08b48e0bSAndroid Build Coastguard Worker 1549*08b48e0bSAndroid Build Coastguard Worker### Version 2.04b: 1550*08b48e0bSAndroid Build Coastguard Worker 1551*08b48e0bSAndroid Build Coastguard Worker - Removed indirect-calls coverage from -fsanitize-coverage (since it's 1552*08b48e0bSAndroid Build Coastguard Worker redundant). Spotted by Kostya Serebryany. 1553*08b48e0bSAndroid Build Coastguard Worker 1554*08b48e0bSAndroid Build Coastguard Worker### Version 2.03b: 1555*08b48e0bSAndroid Build Coastguard Worker 1556*08b48e0bSAndroid Build Coastguard Worker - Added experimental -fsanitize-coverage=trace-pc support that goes with 1557*08b48e0bSAndroid Build Coastguard Worker some recent additions to LLVM, as implemented by Kostya Serebryany. 1558*08b48e0bSAndroid Build Coastguard Worker Right now, this is cumbersome to use with common build systems, so 1559*08b48e0bSAndroid Build Coastguard Worker the mode remains undocumented. 1560*08b48e0bSAndroid Build Coastguard Worker 1561*08b48e0bSAndroid Build Coastguard Worker - Made several substantial improvements to better support non-standard 1562*08b48e0bSAndroid Build Coastguard Worker map sizes in LLVM mode. 1563*08b48e0bSAndroid Build Coastguard Worker 1564*08b48e0bSAndroid Build Coastguard Worker - Switched LLVM mode to thread-local execution tracing, which may offer 1565*08b48e0bSAndroid Build Coastguard Worker better results in some multithreaded apps. 1566*08b48e0bSAndroid Build Coastguard Worker 1567*08b48e0bSAndroid Build Coastguard Worker - Fixed a minor typo, reported by Heiko Eissfeldt. 1568*08b48e0bSAndroid Build Coastguard Worker 1569*08b48e0bSAndroid Build Coastguard Worker - Force-disabled symbolization for ASAN, as suggested by Christian Holler. 1570*08b48e0bSAndroid Build Coastguard Worker 1571*08b48e0bSAndroid Build Coastguard Worker - AFL_NOX86 renamed to AFL_NO_X86 for consistency. 1572*08b48e0bSAndroid Build Coastguard Worker 1573*08b48e0bSAndroid Build Coastguard Worker - Added AFL_LD_PRELOAD to allow LD_PRELOAD to be set for targets without 1574*08b48e0bSAndroid Build Coastguard Worker affecting AFL itself. Suggested by Daniel Godas-Lopez. 1575*08b48e0bSAndroid Build Coastguard Worker 1576*08b48e0bSAndroid Build Coastguard Worker### Version 2.02b: 1577*08b48e0bSAndroid Build Coastguard Worker 1578*08b48e0bSAndroid Build Coastguard Worker - Fixed a "lcamtuf can't count to 16" bug in the havoc stage. Reported 1579*08b48e0bSAndroid Build Coastguard Worker by Guillaume Endignoux. 1580*08b48e0bSAndroid Build Coastguard Worker 1581*08b48e0bSAndroid Build Coastguard Worker### Version 2.01b: 1582*08b48e0bSAndroid Build Coastguard Worker 1583*08b48e0bSAndroid Build Coastguard Worker - Made an improvement to cycle counter color coding, based on feedback 1584*08b48e0bSAndroid Build Coastguard Worker from Shai Sarfaty. 1585*08b48e0bSAndroid Build Coastguard Worker 1586*08b48e0bSAndroid Build Coastguard Worker - Added a mention of aflize to sister_projects.txt. 1587*08b48e0bSAndroid Build Coastguard Worker 1588*08b48e0bSAndroid Build Coastguard Worker - Fixed an installation issue with afl-as, as spotted by ilovezfs. 1589*08b48e0bSAndroid Build Coastguard Worker 1590*08b48e0bSAndroid Build Coastguard Worker### Version 2.00b: 1591*08b48e0bSAndroid Build Coastguard Worker 1592*08b48e0bSAndroid Build Coastguard Worker - Cleaned up color handling after a minor snafu in 1.99b (affecting some 1593*08b48e0bSAndroid Build Coastguard Worker terminals). 1594*08b48e0bSAndroid Build Coastguard Worker 1595*08b48e0bSAndroid Build Coastguard Worker - Made minor updates to the documentation. 1596*08b48e0bSAndroid Build Coastguard Worker 1597*08b48e0bSAndroid Build Coastguard Worker### Version 1.99b: 1598*08b48e0bSAndroid Build Coastguard Worker 1599*08b48e0bSAndroid Build Coastguard Worker - Substantially revamped the output and the internal logic of afl-analyze. 1600*08b48e0bSAndroid Build Coastguard Worker 1601*08b48e0bSAndroid Build Coastguard Worker - Cleaned up some of the color handling code and added support for 1602*08b48e0bSAndroid Build Coastguard Worker background colors. 1603*08b48e0bSAndroid Build Coastguard Worker 1604*08b48e0bSAndroid Build Coastguard Worker - Removed some stray files (oops). 1605*08b48e0bSAndroid Build Coastguard Worker 1606*08b48e0bSAndroid Build Coastguard Worker - Updated docs to better explain afl-analyze. 1607*08b48e0bSAndroid Build Coastguard Worker 1608*08b48e0bSAndroid Build Coastguard Worker### Version 1.98b: 1609*08b48e0bSAndroid Build Coastguard Worker 1610*08b48e0bSAndroid Build Coastguard Worker - Improved to "boring string" detection in afl-analyze. 1611*08b48e0bSAndroid Build Coastguard Worker 1612*08b48e0bSAndroid Build Coastguard Worker - Added technical_details.txt for afl-analyze. 1613*08b48e0bSAndroid Build Coastguard Worker 1614*08b48e0bSAndroid Build Coastguard Worker### Version 1.97b: 1615*08b48e0bSAndroid Build Coastguard Worker 1616*08b48e0bSAndroid Build Coastguard Worker - Added afl-analyze, a nifty tool to analyze the structure of a file 1617*08b48e0bSAndroid Build Coastguard Worker based on the feedback from AFL instrumentation. This is kinda experimental, 1618*08b48e0bSAndroid Build Coastguard Worker so field reports welcome. 1619*08b48e0bSAndroid Build Coastguard Worker 1620*08b48e0bSAndroid Build Coastguard Worker - Added a mention of afl-cygwin. 1621*08b48e0bSAndroid Build Coastguard Worker 1622*08b48e0bSAndroid Build Coastguard Worker - Fixed a couple of typos, as reported by Jakub Wilk and others. 1623*08b48e0bSAndroid Build Coastguard Worker 1624*08b48e0bSAndroid Build Coastguard Worker### Version 1.96b: 1625*08b48e0bSAndroid Build Coastguard Worker 1626*08b48e0bSAndroid Build Coastguard Worker - Added -fpic to CFLAGS for the clang plugin, as suggested by Hanno Boeck. 1627*08b48e0bSAndroid Build Coastguard Worker 1628*08b48e0bSAndroid Build Coastguard Worker - Made another clang change (IRBuilder) suggested by Jeff Trull. 1629*08b48e0bSAndroid Build Coastguard Worker 1630*08b48e0bSAndroid Build Coastguard Worker - Fixed several typos, spotted by Jakub Wilk. 1631*08b48e0bSAndroid Build Coastguard Worker 1632*08b48e0bSAndroid Build Coastguard Worker - Added support for AFL_SHUFFLE_QUEUE, based on discussions with 1633*08b48e0bSAndroid Build Coastguard Worker Christian Holler. 1634*08b48e0bSAndroid Build Coastguard Worker 1635*08b48e0bSAndroid Build Coastguard Worker### Version 1.95b: 1636*08b48e0bSAndroid Build Coastguard Worker 1637*08b48e0bSAndroid Build Coastguard Worker - Fixed a harmless bug when handling -B. Spotted by Jacek Wielemborek. 1638*08b48e0bSAndroid Build Coastguard Worker 1639*08b48e0bSAndroid Build Coastguard Worker - Made the exit message a bit more accurate when AFL_EXIT_WHEN_DONE is set. 1640*08b48e0bSAndroid Build Coastguard Worker 1641*08b48e0bSAndroid Build Coastguard Worker - Added some error-checking for old-style forkserver syntax. Suggested by 1642*08b48e0bSAndroid Build Coastguard Worker Ben Nagy. 1643*08b48e0bSAndroid Build Coastguard Worker 1644*08b48e0bSAndroid Build Coastguard Worker - Switched from exit() to _exit() in injected code to avoid snafus with 1645*08b48e0bSAndroid Build Coastguard Worker destructors in C++ code. Spotted by sunblate. 1646*08b48e0bSAndroid Build Coastguard Worker 1647*08b48e0bSAndroid Build Coastguard Worker - Made a change to avoid spuriously setting __AFL_SHM_ID when 1648*08b48e0bSAndroid Build Coastguard Worker AFL_DUMB_FORKSRV is set in conjunction with -n. Spotted by Jakub Wilk. 1649*08b48e0bSAndroid Build Coastguard Worker 1650*08b48e0bSAndroid Build Coastguard Worker### Version 1.94b: 1651*08b48e0bSAndroid Build Coastguard Worker 1652*08b48e0bSAndroid Build Coastguard Worker - Changed allocator alignment to improve support for non-x86 systems (now 1653*08b48e0bSAndroid Build Coastguard Worker that llvm_mode makes this more feasible). 1654*08b48e0bSAndroid Build Coastguard Worker 1655*08b48e0bSAndroid Build Coastguard Worker - Fixed a minor typo in afl-cmin. Spotted by Jonathan Neuschafer. 1656*08b48e0bSAndroid Build Coastguard Worker 1657*08b48e0bSAndroid Build Coastguard Worker - Fixed an obscure bug that would affect people trying to use afl-gcc 1658*08b48e0bSAndroid Build Coastguard Worker with $TMP set but $TMPDIR absent. Spotted by Jeremy Barnes. 1659*08b48e0bSAndroid Build Coastguard Worker 1660*08b48e0bSAndroid Build Coastguard Worker### Version 1.93b: 1661*08b48e0bSAndroid Build Coastguard Worker 1662*08b48e0bSAndroid Build Coastguard Worker - Hopefully fixed a problem with MacOS X and persistent mode, spotted by 1663*08b48e0bSAndroid Build Coastguard Worker Leo Barnes. 1664*08b48e0bSAndroid Build Coastguard Worker 1665*08b48e0bSAndroid Build Coastguard Worker### Version 1.92b: 1666*08b48e0bSAndroid Build Coastguard Worker 1667*08b48e0bSAndroid Build Coastguard Worker - Made yet another C++ fix (namespaces). Reported by Daniel Lockyer. 1668*08b48e0bSAndroid Build Coastguard Worker 1669*08b48e0bSAndroid Build Coastguard Worker### Version 1.91b: 1670*08b48e0bSAndroid Build Coastguard Worker 1671*08b48e0bSAndroid Build Coastguard Worker - Made another fix to make 1.90b actually work properly with C++ (d'oh). 1672*08b48e0bSAndroid Build Coastguard Worker Problem spotted by Daniel Lockyer. 1673*08b48e0bSAndroid Build Coastguard Worker 1674*08b48e0bSAndroid Build Coastguard Worker### Version 1.90b: 1675*08b48e0bSAndroid Build Coastguard Worker 1676*08b48e0bSAndroid Build Coastguard Worker - Fixed a minor typo spotted by Kai Zhao; and made several other minor updates 1677*08b48e0bSAndroid Build Coastguard Worker to docs. 1678*08b48e0bSAndroid Build Coastguard Worker 1679*08b48e0bSAndroid Build Coastguard Worker - Updated the project URL for python-afl. Requested by Jakub Wilk. 1680*08b48e0bSAndroid Build Coastguard Worker 1681*08b48e0bSAndroid Build Coastguard Worker - Fixed a potential problem with deferred mode signatures getting optimized 1682*08b48e0bSAndroid Build Coastguard Worker out by the linker (with --gc-sections). 1683*08b48e0bSAndroid Build Coastguard Worker 1684*08b48e0bSAndroid Build Coastguard Worker### Version 1.89b: 1685*08b48e0bSAndroid Build Coastguard Worker 1686*08b48e0bSAndroid Build Coastguard Worker - Revamped the support for persistent and deferred forkserver modes. 1687*08b48e0bSAndroid Build Coastguard Worker Both now feature simpler syntax and do not require companion env 1688*08b48e0bSAndroid Build Coastguard Worker variables. Suggested by Jakub Wilk. 1689*08b48e0bSAndroid Build Coastguard Worker 1690*08b48e0bSAndroid Build Coastguard Worker - Added a bit more info about afl-showmap. Suggested by Jacek Wielemborek. 1691*08b48e0bSAndroid Build Coastguard Worker 1692*08b48e0bSAndroid Build Coastguard Worker### Version 1.88b: 1693*08b48e0bSAndroid Build Coastguard Worker 1694*08b48e0bSAndroid Build Coastguard Worker - Made AFL_EXIT_WHEN_DONE work in non-tty mode. Issue spotted by 1695*08b48e0bSAndroid Build Coastguard Worker Jacek Wielemborek. 1696*08b48e0bSAndroid Build Coastguard Worker 1697*08b48e0bSAndroid Build Coastguard Worker### Version 1.87b: 1698*08b48e0bSAndroid Build Coastguard Worker 1699*08b48e0bSAndroid Build Coastguard Worker - Added QuickStartGuide.txt, a one-page quick start doc. 1700*08b48e0bSAndroid Build Coastguard Worker 1701*08b48e0bSAndroid Build Coastguard Worker - Fixed several typos spotted by Dominique Pelle. 1702*08b48e0bSAndroid Build Coastguard Worker 1703*08b48e0bSAndroid Build Coastguard Worker - Revamped several parts of README. 1704*08b48e0bSAndroid Build Coastguard Worker 1705*08b48e0bSAndroid Build Coastguard Worker### Version 1.86b: 1706*08b48e0bSAndroid Build Coastguard Worker 1707*08b48e0bSAndroid Build Coastguard Worker - Added support for AFL_SKIP_CRASHES, which is a very hackish solution to 1708*08b48e0bSAndroid Build Coastguard Worker the problem of resuming sessions with intermittently crashing inputs. 1709*08b48e0bSAndroid Build Coastguard Worker 1710*08b48e0bSAndroid Build Coastguard Worker - Removed the hard-fail terminal size check, replaced with a dynamic 1711*08b48e0bSAndroid Build Coastguard Worker warning shown in place of the UI. Based on feedback from Christian Holler. 1712*08b48e0bSAndroid Build Coastguard Worker 1713*08b48e0bSAndroid Build Coastguard Worker - Fixed a minor typo in show_stats. Spotted by Dingbao Xie. 1714*08b48e0bSAndroid Build Coastguard Worker 1715*08b48e0bSAndroid Build Coastguard Worker### Version 1.85b: 1716*08b48e0bSAndroid Build Coastguard Worker 1717*08b48e0bSAndroid Build Coastguard Worker - Fixed a garbled sentence in notes on parallel fuzzing. Thanks to Jakub Wilk. 1718*08b48e0bSAndroid Build Coastguard Worker 1719*08b48e0bSAndroid Build Coastguard Worker - Fixed a minor glitch in afl-cmin. Spotted by Jonathan Foote. 1720*08b48e0bSAndroid Build Coastguard Worker 1721*08b48e0bSAndroid Build Coastguard Worker### Version 1.84b: 1722*08b48e0bSAndroid Build Coastguard Worker 1723*08b48e0bSAndroid Build Coastguard Worker - Made SIMPLE_FILES behave as expected when naming backup directories for 1724*08b48e0bSAndroid Build Coastguard Worker crashes and hangs. 1725*08b48e0bSAndroid Build Coastguard Worker 1726*08b48e0bSAndroid Build Coastguard Worker - Added the total number of favored paths to fuzzer_stats. Requested by 1727*08b48e0bSAndroid Build Coastguard Worker Ben Nagy. 1728*08b48e0bSAndroid Build Coastguard Worker 1729*08b48e0bSAndroid Build Coastguard Worker - Made afl-tmin, afl-fuzz, and afl-cmin reject negative values passed to 1730*08b48e0bSAndroid Build Coastguard Worker -t and -m, since they generally won't work as expected. 1731*08b48e0bSAndroid Build Coastguard Worker 1732*08b48e0bSAndroid Build Coastguard Worker - Made a fix for no lahf / sahf support on older versions of FreeBSD. 1733*08b48e0bSAndroid Build Coastguard Worker Patch contributed by Alex Moneger. 1734*08b48e0bSAndroid Build Coastguard Worker 1735*08b48e0bSAndroid Build Coastguard Worker### Version 1.83b: 1736*08b48e0bSAndroid Build Coastguard Worker 1737*08b48e0bSAndroid Build Coastguard Worker - Fixed a problem with xargs -d on non-Linux systems in afl-cmin. Spotted by 1738*08b48e0bSAndroid Build Coastguard Worker teor2345 and Ben Nagy. 1739*08b48e0bSAndroid Build Coastguard Worker 1740*08b48e0bSAndroid Build Coastguard Worker - Fixed an implicit declaration in LLVM mode on MacOS X. Reported by 1741*08b48e0bSAndroid Build Coastguard Worker Kai Zhao. 1742*08b48e0bSAndroid Build Coastguard Worker 1743*08b48e0bSAndroid Build Coastguard Worker### Version 1.82b: 1744*08b48e0bSAndroid Build Coastguard Worker 1745*08b48e0bSAndroid Build Coastguard Worker - Fixed a harmless but annoying race condition in persistent mode - signal 1746*08b48e0bSAndroid Build Coastguard Worker delivery is a bit more finicky than I thought. 1747*08b48e0bSAndroid Build Coastguard Worker 1748*08b48e0bSAndroid Build Coastguard Worker - Updated the documentation to explain persistent mode a bit better. 1749*08b48e0bSAndroid Build Coastguard Worker 1750*08b48e0bSAndroid Build Coastguard Worker - Tweaked AFL_PERSISTENT to force AFL_NO_VAR_CHECK. 1751*08b48e0bSAndroid Build Coastguard Worker 1752*08b48e0bSAndroid Build Coastguard Worker### Version 1.81b: 1753*08b48e0bSAndroid Build Coastguard Worker 1754*08b48e0bSAndroid Build Coastguard Worker - Added persistent mode for in-process fuzzing. See llvm_mode/README.llvm. 1755*08b48e0bSAndroid Build Coastguard Worker Inspired by Kostya Serebryany and Christian Holler. 1756*08b48e0bSAndroid Build Coastguard Worker 1757*08b48e0bSAndroid Build Coastguard Worker - Changed the in-place resume code to preserve crashes/README.txt. Suggested 1758*08b48e0bSAndroid Build Coastguard Worker by Ben Nagy. 1759*08b48e0bSAndroid Build Coastguard Worker 1760*08b48e0bSAndroid Build Coastguard Worker - Included a potential fix for LLVM mode issues on MacOS X, based on the 1761*08b48e0bSAndroid Build Coastguard Worker investigation done by teor2345. 1762*08b48e0bSAndroid Build Coastguard Worker 1763*08b48e0bSAndroid Build Coastguard Worker### Version 1.80b: 1764*08b48e0bSAndroid Build Coastguard Worker 1765*08b48e0bSAndroid Build Coastguard Worker - Made afl-cmin tolerant of whitespaces in filenames. Suggested by 1766*08b48e0bSAndroid Build Coastguard Worker Jonathan Neuschafer and Ketil Froyn. 1767*08b48e0bSAndroid Build Coastguard Worker 1768*08b48e0bSAndroid Build Coastguard Worker - Added support for AFL_EXIT_WHEN_DONE, as suggested by Michael Rash. 1769*08b48e0bSAndroid Build Coastguard Worker 1770*08b48e0bSAndroid Build Coastguard Worker### Version 1.79b: 1771*08b48e0bSAndroid Build Coastguard Worker 1772*08b48e0bSAndroid Build Coastguard Worker - Added support for dictionary levels, see testcases/README.testcases. 1773*08b48e0bSAndroid Build Coastguard Worker 1774*08b48e0bSAndroid Build Coastguard Worker - Reworked the SQL dictionary to use levels. 1775*08b48e0bSAndroid Build Coastguard Worker 1776*08b48e0bSAndroid Build Coastguard Worker - Added a note about Preeny. 1777*08b48e0bSAndroid Build Coastguard Worker 1778*08b48e0bSAndroid Build Coastguard Worker### Version 1.78b: 1779*08b48e0bSAndroid Build Coastguard Worker 1780*08b48e0bSAndroid Build Coastguard Worker - Added a dictionary for PDF, contributed by Ben Nagy. 1781*08b48e0bSAndroid Build Coastguard Worker 1782*08b48e0bSAndroid Build Coastguard Worker - Added several references to afl-cov, a new tool by Michael Rash. 1783*08b48e0bSAndroid Build Coastguard Worker 1784*08b48e0bSAndroid Build Coastguard Worker - Fixed a problem with crash reporter detection on MacOS X, as reported by 1785*08b48e0bSAndroid Build Coastguard Worker Louis Dassy. 1786*08b48e0bSAndroid Build Coastguard Worker 1787*08b48e0bSAndroid Build Coastguard Worker### Version 1.77b: 1788*08b48e0bSAndroid Build Coastguard Worker 1789*08b48e0bSAndroid Build Coastguard Worker - Extended the -x option to support single-file dictionaries. 1790*08b48e0bSAndroid Build Coastguard Worker 1791*08b48e0bSAndroid Build Coastguard Worker - Replaced factory-packaged dictionaries with file-based variants. 1792*08b48e0bSAndroid Build Coastguard Worker 1793*08b48e0bSAndroid Build Coastguard Worker - Removed newlines from HTML keywords in testcases/_extras/html/. 1794*08b48e0bSAndroid Build Coastguard Worker 1795*08b48e0bSAndroid Build Coastguard Worker### Version 1.76b: 1796*08b48e0bSAndroid Build Coastguard Worker 1797*08b48e0bSAndroid Build Coastguard Worker - Very significantly reduced the number of duplicate execs during 1798*08b48e0bSAndroid Build Coastguard Worker deterministic checks, chiefly in int16 and int32 stages. Confirmed 1799*08b48e0bSAndroid Build Coastguard Worker identical path yields. This should improve early-stage efficiency by 1800*08b48e0bSAndroid Build Coastguard Worker around 5-10%. 1801*08b48e0bSAndroid Build Coastguard Worker 1802*08b48e0bSAndroid Build Coastguard Worker - Reduced the likelihood of duplicate non-deterministic execs by 1803*08b48e0bSAndroid Build Coastguard Worker bumping up lowest stacking factor from 1 to 2. Quickly confirmed 1804*08b48e0bSAndroid Build Coastguard Worker that this doesn't seem to have significant impact on coverage with 1805*08b48e0bSAndroid Build Coastguard Worker libpng. 1806*08b48e0bSAndroid Build Coastguard Worker 1807*08b48e0bSAndroid Build Coastguard Worker - Added a note about integrating afl-fuzz with third-party tools. 1808*08b48e0bSAndroid Build Coastguard Worker 1809*08b48e0bSAndroid Build Coastguard Worker### Version 1.75b: 1810*08b48e0bSAndroid Build Coastguard Worker 1811*08b48e0bSAndroid Build Coastguard Worker - Improved argv_fuzzing to allow it to emit empty args. Spotted by Jakub 1812*08b48e0bSAndroid Build Coastguard Worker Wilk. 1813*08b48e0bSAndroid Build Coastguard Worker 1814*08b48e0bSAndroid Build Coastguard Worker - afl-clang-fast now defines __AFL_HAVE_MANUAL_INIT. Suggested by Jakub Wilk. 1815*08b48e0bSAndroid Build Coastguard Worker 1816*08b48e0bSAndroid Build Coastguard Worker - Fixed a libtool-related bug with afl-clang-fast that would make some 1817*08b48e0bSAndroid Build Coastguard Worker ./configure invocations generate incorrect output. Spotted by Jakub Wilk. 1818*08b48e0bSAndroid Build Coastguard Worker 1819*08b48e0bSAndroid Build Coastguard Worker - Removed flock() on Solaris. This means no locking on this platform, 1820*08b48e0bSAndroid Build Coastguard Worker but so be it. Problem reported by Martin Carpenter. 1821*08b48e0bSAndroid Build Coastguard Worker 1822*08b48e0bSAndroid Build Coastguard Worker - Fixed a typo. Reported by Jakub Wilk. 1823*08b48e0bSAndroid Build Coastguard Worker 1824*08b48e0bSAndroid Build Coastguard Worker### Version 1.74b: 1825*08b48e0bSAndroid Build Coastguard Worker 1826*08b48e0bSAndroid Build Coastguard Worker - Added an example argv[] fuzzing wrapper in examples/argv_fuzzing. 1827*08b48e0bSAndroid Build Coastguard Worker Reworked the bash example to be faster, too. 1828*08b48e0bSAndroid Build Coastguard Worker 1829*08b48e0bSAndroid Build Coastguard Worker - Clarified llvm_mode prerequisites for FreeBSD. 1830*08b48e0bSAndroid Build Coastguard Worker 1831*08b48e0bSAndroid Build Coastguard Worker - Improved afl-tmin to use /tmp if cwd is not writeable. 1832*08b48e0bSAndroid Build Coastguard Worker 1833*08b48e0bSAndroid Build Coastguard Worker - Removed redundant includes for sys/fcntl.h, which caused warnings with 1834*08b48e0bSAndroid Build Coastguard Worker some nitpicky versions of libc. 1835*08b48e0bSAndroid Build Coastguard Worker 1836*08b48e0bSAndroid Build Coastguard Worker - Added a corpus of basic HTML tags that parsers are likely to pay attention 1837*08b48e0bSAndroid Build Coastguard Worker to (no attributes). 1838*08b48e0bSAndroid Build Coastguard Worker 1839*08b48e0bSAndroid Build Coastguard Worker - Added EP_EnabledOnOptLevel0 to llvm_mode, so that the instrumentation is 1840*08b48e0bSAndroid Build Coastguard Worker inserted even when AFL_DONT_OPTIMIZE=1 is set. 1841*08b48e0bSAndroid Build Coastguard Worker 1842*08b48e0bSAndroid Build Coastguard Worker - Switched qemu_mode to use the newly-released QEMU 2.3.0, which contains 1843*08b48e0bSAndroid Build Coastguard Worker a couple of minor bugfixes. 1844*08b48e0bSAndroid Build Coastguard Worker 1845*08b48e0bSAndroid Build Coastguard Worker### Version 1.73b: 1846*08b48e0bSAndroid Build Coastguard Worker 1847*08b48e0bSAndroid Build Coastguard Worker - Fixed a pretty stupid bug in effector maps that could sometimes cause 1848*08b48e0bSAndroid Build Coastguard Worker AFL to fuzz slightly more than necessary; and in very rare circumstances, 1849*08b48e0bSAndroid Build Coastguard Worker could lead to SEGV if eff_map is aligned with page boundary and followed 1850*08b48e0bSAndroid Build Coastguard Worker by an unmapped page. Spotted by Jonathan Gray. 1851*08b48e0bSAndroid Build Coastguard Worker 1852*08b48e0bSAndroid Build Coastguard Worker### Version 1.72b: 1853*08b48e0bSAndroid Build Coastguard Worker 1854*08b48e0bSAndroid Build Coastguard Worker - Fixed a glitch in non-x86 install, spotted by Tobias Ospelt. 1855*08b48e0bSAndroid Build Coastguard Worker 1856*08b48e0bSAndroid Build Coastguard Worker - Added a minor safeguard to llvm_mode Makefile following a report from 1857*08b48e0bSAndroid Build Coastguard Worker Kai Zhao. 1858*08b48e0bSAndroid Build Coastguard Worker 1859*08b48e0bSAndroid Build Coastguard Worker### Version 1.71b: 1860*08b48e0bSAndroid Build Coastguard Worker 1861*08b48e0bSAndroid Build Coastguard Worker - Fixed a bug with installed copies of AFL trying to use QEMU mode. Spotted 1862*08b48e0bSAndroid Build Coastguard Worker by G.M. Lime. 1863*08b48e0bSAndroid Build Coastguard Worker 1864*08b48e0bSAndroid Build Coastguard Worker - Added last find / crash / hang times to fuzzer_stats, suggested by 1865*08b48e0bSAndroid Build Coastguard Worker Richard Hipp. 1866*08b48e0bSAndroid Build Coastguard Worker 1867*08b48e0bSAndroid Build Coastguard Worker - Fixed a typo, thanks to Jakub Wilk. 1868*08b48e0bSAndroid Build Coastguard Worker 1869*08b48e0bSAndroid Build Coastguard Worker### Version 1.70b: 1870*08b48e0bSAndroid Build Coastguard Worker 1871*08b48e0bSAndroid Build Coastguard Worker - Modified resumption code to reuse the original timeout value when resuming 1872*08b48e0bSAndroid Build Coastguard Worker a session if -t is not given. This prevents timeout creep in continuous 1873*08b48e0bSAndroid Build Coastguard Worker fuzzing. 1874*08b48e0bSAndroid Build Coastguard Worker 1875*08b48e0bSAndroid Build Coastguard Worker - Added improved error messages for failed handshake when AFL_DEFER_FORKSRV 1876*08b48e0bSAndroid Build Coastguard Worker is set. 1877*08b48e0bSAndroid Build Coastguard Worker 1878*08b48e0bSAndroid Build Coastguard Worker - Made a slight improvement to llvm_mode/Makefile based on feedback from 1879*08b48e0bSAndroid Build Coastguard Worker Jakub Wilk. 1880*08b48e0bSAndroid Build Coastguard Worker 1881*08b48e0bSAndroid Build Coastguard Worker - Refreshed several bits of documentation. 1882*08b48e0bSAndroid Build Coastguard Worker 1883*08b48e0bSAndroid Build Coastguard Worker - Added a more prominent note about the MacOS X trade-offs to Makefile. 1884*08b48e0bSAndroid Build Coastguard Worker 1885*08b48e0bSAndroid Build Coastguard Worker### Version 1.69b: 1886*08b48e0bSAndroid Build Coastguard Worker 1887*08b48e0bSAndroid Build Coastguard Worker - Added support for deferred initialization in LLVM mode. Suggested by 1888*08b48e0bSAndroid Build Coastguard Worker Richard Godbee. 1889*08b48e0bSAndroid Build Coastguard Worker 1890*08b48e0bSAndroid Build Coastguard Worker### Version 1.68b: 1891*08b48e0bSAndroid Build Coastguard Worker 1892*08b48e0bSAndroid Build Coastguard Worker - Fixed a minor PRNG glitch that would make the first seconds of a fuzzing 1893*08b48e0bSAndroid Build Coastguard Worker job deterministic. Thanks to Andreas Stieger. 1894*08b48e0bSAndroid Build Coastguard Worker 1895*08b48e0bSAndroid Build Coastguard Worker - Made tmp[] static in the LLVM runtime to keep Valgrind happy (this had 1896*08b48e0bSAndroid Build Coastguard Worker no impact on anything else). Spotted by Richard Godbee. 1897*08b48e0bSAndroid Build Coastguard Worker 1898*08b48e0bSAndroid Build Coastguard Worker - Clarified the footnote in README. 1899*08b48e0bSAndroid Build Coastguard Worker 1900*08b48e0bSAndroid Build Coastguard Worker### Version 1.67b: 1901*08b48e0bSAndroid Build Coastguard Worker 1902*08b48e0bSAndroid Build Coastguard Worker - Made one more correction to llvm_mode Makefile, spotted by Jakub Wilk. 1903*08b48e0bSAndroid Build Coastguard Worker 1904*08b48e0bSAndroid Build Coastguard Worker### Version 1.66b: 1905*08b48e0bSAndroid Build Coastguard Worker 1906*08b48e0bSAndroid Build Coastguard Worker - Added CC / CXX support to llvm_mode Makefile. Requested by Charlie Eriksen. 1907*08b48e0bSAndroid Build Coastguard Worker 1908*08b48e0bSAndroid Build Coastguard Worker - Fixed 'make clean' with gmake. Suggested by Oliver Schneider. 1909*08b48e0bSAndroid Build Coastguard Worker 1910*08b48e0bSAndroid Build Coastguard Worker - Fixed 'make -j n clean all'. Suggested by Oliver Schneider. 1911*08b48e0bSAndroid Build Coastguard Worker 1912*08b48e0bSAndroid Build Coastguard Worker - Removed build date and time from banners to give people deterministic 1913*08b48e0bSAndroid Build Coastguard Worker builds. Requested by Jakub Wilk. 1914*08b48e0bSAndroid Build Coastguard Worker 1915*08b48e0bSAndroid Build Coastguard Worker### Version 1.65b: 1916*08b48e0bSAndroid Build Coastguard Worker 1917*08b48e0bSAndroid Build Coastguard Worker - Fixed a snafu with some leftover code in afl-clang-fast. 1918*08b48e0bSAndroid Build Coastguard Worker 1919*08b48e0bSAndroid Build Coastguard Worker - Corrected even moar typos. 1920*08b48e0bSAndroid Build Coastguard Worker 1921*08b48e0bSAndroid Build Coastguard Worker### Version 1.64b: 1922*08b48e0bSAndroid Build Coastguard Worker 1923*08b48e0bSAndroid Build Coastguard Worker - Further simplified afl-clang-fast runtime by reverting .init_array to 1924*08b48e0bSAndroid Build Coastguard Worker __attribute__((constructor(0)). This should improve compatibility with 1925*08b48e0bSAndroid Build Coastguard Worker non-ELF platforms. 1926*08b48e0bSAndroid Build Coastguard Worker 1927*08b48e0bSAndroid Build Coastguard Worker - Fixed a problem with afl-clang-fast and -shared libraries. Simplified 1928*08b48e0bSAndroid Build Coastguard Worker the code by getting rid of .preinit_array and replacing it with a .comm 1929*08b48e0bSAndroid Build Coastguard Worker object. Problem reported by Charlie Eriksen. 1930*08b48e0bSAndroid Build Coastguard Worker 1931*08b48e0bSAndroid Build Coastguard Worker - Removed unnecessary instrumentation density adjustment for the LLVM mode. 1932*08b48e0bSAndroid Build Coastguard Worker Reported by Jonathan Neuschafer. 1933*08b48e0bSAndroid Build Coastguard Worker 1934*08b48e0bSAndroid Build Coastguard Worker### Version 1.63b: 1935*08b48e0bSAndroid Build Coastguard Worker 1936*08b48e0bSAndroid Build Coastguard Worker - Updated cgroups_asan/ with a new version from Sam, made a couple changes 1937*08b48e0bSAndroid Build Coastguard Worker to streamline it and keep parallel AFL instances in separate groups. 1938*08b48e0bSAndroid Build Coastguard Worker 1939*08b48e0bSAndroid Build Coastguard Worker - Fixed typos, thanks to Jakub Wilk. 1940*08b48e0bSAndroid Build Coastguard Worker 1941*08b48e0bSAndroid Build Coastguard Worker### Version 1.62b: 1942*08b48e0bSAndroid Build Coastguard Worker 1943*08b48e0bSAndroid Build Coastguard Worker - Improved the handling of -x in afl-clang-fast, 1944*08b48e0bSAndroid Build Coastguard Worker 1945*08b48e0bSAndroid Build Coastguard Worker - Improved the handling of low AFL_INST_RATIO settings for QEMU and 1946*08b48e0bSAndroid Build Coastguard Worker LLVM modes. 1947*08b48e0bSAndroid Build Coastguard Worker 1948*08b48e0bSAndroid Build Coastguard Worker - Fixed the llvm-config bug for good (thanks to Tobias Ospelt). 1949*08b48e0bSAndroid Build Coastguard Worker 1950*08b48e0bSAndroid Build Coastguard Worker### Version 1.61b: 1951*08b48e0bSAndroid Build Coastguard Worker 1952*08b48e0bSAndroid Build Coastguard Worker - Fixed an obscure bug compiling OpenSSL with afl-clang-fast. Patch by 1953*08b48e0bSAndroid Build Coastguard Worker Laszlo Szekeres. 1954*08b48e0bSAndroid Build Coastguard Worker 1955*08b48e0bSAndroid Build Coastguard Worker - Fixed a 'make install' bug on non-x86 systems, thanks to Tobias Ospelt. 1956*08b48e0bSAndroid Build Coastguard Worker 1957*08b48e0bSAndroid Build Coastguard Worker - Fixed a problem with half-broken llvm-config on Odroid, thanks to 1958*08b48e0bSAndroid Build Coastguard Worker Tobias Ospelt. (There is another odd bug there that hasn't been fully 1959*08b48e0bSAndroid Build Coastguard Worker fixed - TBD). 1960*08b48e0bSAndroid Build Coastguard Worker 1961*08b48e0bSAndroid Build Coastguard Worker### Version 1.60b: 1962*08b48e0bSAndroid Build Coastguard Worker 1963*08b48e0bSAndroid Build Coastguard Worker - Allowed examples/llvm_instrumentation/ to graduate to llvm_mode/. 1964*08b48e0bSAndroid Build Coastguard Worker 1965*08b48e0bSAndroid Build Coastguard Worker - Removed examples/arm_support/, since it's completely broken and likely 1966*08b48e0bSAndroid Build Coastguard Worker unnecessary with LLVM support in place. 1967*08b48e0bSAndroid Build Coastguard Worker 1968*08b48e0bSAndroid Build Coastguard Worker - Added ASAN cgroups script to examples/asan_cgroups/, updated existing 1969*08b48e0bSAndroid Build Coastguard Worker docs. Courtesy Sam Hakim and David A. Wheeler. 1970*08b48e0bSAndroid Build Coastguard Worker 1971*08b48e0bSAndroid Build Coastguard Worker - Refactored afl-tmin to reduce the number of execs in common use cases. 1972*08b48e0bSAndroid Build Coastguard Worker Ideas from Jonathan Neuschafer and Turo Lamminen. 1973*08b48e0bSAndroid Build Coastguard Worker 1974*08b48e0bSAndroid Build Coastguard Worker - Added a note about CLAs at the bottom of README. 1975*08b48e0bSAndroid Build Coastguard Worker 1976*08b48e0bSAndroid Build Coastguard Worker - Renamed testcases_readme.txt to README.testcases for some semblance of 1977*08b48e0bSAndroid Build Coastguard Worker consistency. 1978*08b48e0bSAndroid Build Coastguard Worker 1979*08b48e0bSAndroid Build Coastguard Worker - Made assorted updates to docs. 1980*08b48e0bSAndroid Build Coastguard Worker 1981*08b48e0bSAndroid Build Coastguard Worker - Added MEM_BARRIER() to afl-showmap and afl-tmin, just to be safe. 1982*08b48e0bSAndroid Build Coastguard Worker 1983*08b48e0bSAndroid Build Coastguard Worker### Version 1.59b: 1984*08b48e0bSAndroid Build Coastguard Worker 1985*08b48e0bSAndroid Build Coastguard Worker - Imported Laszlo Szekeres' experimental LLVM instrumentation into 1986*08b48e0bSAndroid Build Coastguard Worker examples/llvm_instrumentation. I'll work on including it in the 1987*08b48e0bSAndroid Build Coastguard Worker "mainstream" version soon. 1988*08b48e0bSAndroid Build Coastguard Worker 1989*08b48e0bSAndroid Build Coastguard Worker - Fixed another typo, thanks to Jakub Wilk. 1990*08b48e0bSAndroid Build Coastguard Worker 1991*08b48e0bSAndroid Build Coastguard Worker### Version 1.58b: 1992*08b48e0bSAndroid Build Coastguard Worker 1993*08b48e0bSAndroid Build Coastguard Worker - Added a workaround for abort() behavior in -lpthread programs in QEMU mode. 1994*08b48e0bSAndroid Build Coastguard Worker Spotted by Aidan Thornton. 1995*08b48e0bSAndroid Build Coastguard Worker 1996*08b48e0bSAndroid Build Coastguard Worker - Made several documentation updates, including links to the static 1997*08b48e0bSAndroid Build Coastguard Worker instrumentation tool (sister_projects.txt). 1998*08b48e0bSAndroid Build Coastguard Worker 1999*08b48e0bSAndroid Build Coastguard Worker### Version 1.57b: 2000*08b48e0bSAndroid Build Coastguard Worker 2001*08b48e0bSAndroid Build Coastguard Worker - Fixed a problem with exception handling on some versions of MacOS X. 2002*08b48e0bSAndroid Build Coastguard Worker Spotted by Samir Aguiar and Anders Wang Kristensen. 2003*08b48e0bSAndroid Build Coastguard Worker 2004*08b48e0bSAndroid Build Coastguard Worker - Tweaked afl-gcc to use BIN_PATH instead of a fixed string in help 2005*08b48e0bSAndroid Build Coastguard Worker messages. 2006*08b48e0bSAndroid Build Coastguard Worker 2007*08b48e0bSAndroid Build Coastguard Worker### Version 1.56b: 2008*08b48e0bSAndroid Build Coastguard Worker 2009*08b48e0bSAndroid Build Coastguard Worker - Renamed related_work.txt to historical_notes.txt. 2010*08b48e0bSAndroid Build Coastguard Worker 2011*08b48e0bSAndroid Build Coastguard Worker - Made minor edits to the ASAN doc. 2012*08b48e0bSAndroid Build Coastguard Worker 2013*08b48e0bSAndroid Build Coastguard Worker - Added docs/sister_projects.txt with a list of inspired or closely 2014*08b48e0bSAndroid Build Coastguard Worker related utilities. 2015*08b48e0bSAndroid Build Coastguard Worker 2016*08b48e0bSAndroid Build Coastguard Worker### Version 1.55b: 2017*08b48e0bSAndroid Build Coastguard Worker 2018*08b48e0bSAndroid Build Coastguard Worker - Fixed a glitch with afl-showmap opening /dev/null with O_RDONLY when 2019*08b48e0bSAndroid Build Coastguard Worker running in quiet mode. Spotted by Tyler Nighswander. 2020*08b48e0bSAndroid Build Coastguard Worker 2021*08b48e0bSAndroid Build Coastguard Worker### Version 1.54b: 2022*08b48e0bSAndroid Build Coastguard Worker 2023*08b48e0bSAndroid Build Coastguard Worker - Added another postprocessor example for PNG. 2024*08b48e0bSAndroid Build Coastguard Worker 2025*08b48e0bSAndroid Build Coastguard Worker - Made a cosmetic fix to realloc() handling in examples/post_library/, 2026*08b48e0bSAndroid Build Coastguard Worker suggested by Jakub Wilk. 2027*08b48e0bSAndroid Build Coastguard Worker 2028*08b48e0bSAndroid Build Coastguard Worker - Improved -ldl handling. Suggested by Jakub Wilk. 2029*08b48e0bSAndroid Build Coastguard Worker 2030*08b48e0bSAndroid Build Coastguard Worker### Version 1.53b: 2031*08b48e0bSAndroid Build Coastguard Worker 2032*08b48e0bSAndroid Build Coastguard Worker - Fixed an -l ordering issue that is apparently still a problem on Ubuntu. 2033*08b48e0bSAndroid Build Coastguard Worker Spotted by William Robinet. 2034*08b48e0bSAndroid Build Coastguard Worker 2035*08b48e0bSAndroid Build Coastguard Worker### Version 1.52b: 2036*08b48e0bSAndroid Build Coastguard Worker 2037*08b48e0bSAndroid Build Coastguard Worker - Added support for file format postprocessors. Requested by Ben Nagy. This 2038*08b48e0bSAndroid Build Coastguard Worker feature is intentionally buried, since it's fairly easy to misuse and 2039*08b48e0bSAndroid Build Coastguard Worker useful only in some scenarios. See examples/post_library/. 2040*08b48e0bSAndroid Build Coastguard Worker 2041*08b48e0bSAndroid Build Coastguard Worker### Version 1.51b: 2042*08b48e0bSAndroid Build Coastguard Worker 2043*08b48e0bSAndroid Build Coastguard Worker - Made it possible to properly override LD_BIND_NOW after one very unusual 2044*08b48e0bSAndroid Build Coastguard Worker report of trouble. 2045*08b48e0bSAndroid Build Coastguard Worker 2046*08b48e0bSAndroid Build Coastguard Worker - Cleaned up typos, thanks to Jakub Wilk. 2047*08b48e0bSAndroid Build Coastguard Worker 2048*08b48e0bSAndroid Build Coastguard Worker - Fixed a bug in AFL_DUMB_FORKSRV. 2049*08b48e0bSAndroid Build Coastguard Worker 2050*08b48e0bSAndroid Build Coastguard Worker### Version 1.50b: 2051*08b48e0bSAndroid Build Coastguard Worker 2052*08b48e0bSAndroid Build Coastguard Worker - Fixed a flock() bug that would prevent dir reuse errors from kicking 2053*08b48e0bSAndroid Build Coastguard Worker in every now and then. 2054*08b48e0bSAndroid Build Coastguard Worker 2055*08b48e0bSAndroid Build Coastguard Worker - Renamed references to ppvm (the project is now called recidivm). 2056*08b48e0bSAndroid Build Coastguard Worker 2057*08b48e0bSAndroid Build Coastguard Worker - Made improvements to file descriptor handling to avoid leaving some fds 2058*08b48e0bSAndroid Build Coastguard Worker unnecessarily open in the child process. 2059*08b48e0bSAndroid Build Coastguard Worker 2060*08b48e0bSAndroid Build Coastguard Worker - Fixed a typo or two. 2061*08b48e0bSAndroid Build Coastguard Worker 2062*08b48e0bSAndroid Build Coastguard Worker### Version 1.49b: 2063*08b48e0bSAndroid Build Coastguard Worker 2064*08b48e0bSAndroid Build Coastguard Worker - Added code to save original command line in fuzzer_stats and 2065*08b48e0bSAndroid Build Coastguard Worker crashes/README.txt. Also saves fuzzer version in fuzzer_stats. 2066*08b48e0bSAndroid Build Coastguard Worker Requested by Ben Nagy. 2067*08b48e0bSAndroid Build Coastguard Worker 2068*08b48e0bSAndroid Build Coastguard Worker### Version 1.48b: 2069*08b48e0bSAndroid Build Coastguard Worker 2070*08b48e0bSAndroid Build Coastguard Worker - Fixed a bug with QEMU fork server crashes when translation is attempted 2071*08b48e0bSAndroid Build Coastguard Worker after a jump to an invalid pointer in the child process (i.e., after 2072*08b48e0bSAndroid Build Coastguard Worker bumping into a particularly nasty security bug in the tested binary). 2073*08b48e0bSAndroid Build Coastguard Worker Reported by Tyler Nighswander. 2074*08b48e0bSAndroid Build Coastguard Worker 2075*08b48e0bSAndroid Build Coastguard Worker### Version 1.47b: 2076*08b48e0bSAndroid Build Coastguard Worker 2077*08b48e0bSAndroid Build Coastguard Worker - Fixed a bug with afl-cmin in -Q mode complaining about binary being not 2078*08b48e0bSAndroid Build Coastguard Worker instrumented. Thanks to Jonathan Neuschafer for the bug report. 2079*08b48e0bSAndroid Build Coastguard Worker 2080*08b48e0bSAndroid Build Coastguard Worker - Fixed another bug with argv handling for afl-fuzz in -Q mode. Reported 2081*08b48e0bSAndroid Build Coastguard Worker by Jonathan Neuschafer. 2082*08b48e0bSAndroid Build Coastguard Worker 2083*08b48e0bSAndroid Build Coastguard Worker - Improved the use of colors when showing crash counts in -C mode. 2084*08b48e0bSAndroid Build Coastguard Worker 2085*08b48e0bSAndroid Build Coastguard Worker### Version 1.46b: 2086*08b48e0bSAndroid Build Coastguard Worker 2087*08b48e0bSAndroid Build Coastguard Worker - Improved instrumentation performance on 32-bit systems by getting rid of 2088*08b48e0bSAndroid Build Coastguard Worker xor-swap (oddly enough, xor-swap is still faster on 64-bit) and tweaking 2089*08b48e0bSAndroid Build Coastguard Worker alignment. 2090*08b48e0bSAndroid Build Coastguard Worker 2091*08b48e0bSAndroid Build Coastguard Worker - Made path depth numbers more accurate with imported test cases. 2092*08b48e0bSAndroid Build Coastguard Worker 2093*08b48e0bSAndroid Build Coastguard Worker### Version 1.45b: 2094*08b48e0bSAndroid Build Coastguard Worker 2095*08b48e0bSAndroid Build Coastguard Worker - Added support for SIMPLE_FILES in config.h for folks who don't like 2096*08b48e0bSAndroid Build Coastguard Worker descriptive file names. Generates very simple names without colons, 2097*08b48e0bSAndroid Build Coastguard Worker commas, plus signs, dashes, etc. 2098*08b48e0bSAndroid Build Coastguard Worker 2099*08b48e0bSAndroid Build Coastguard Worker - Replaced zero-sized files with symlinks in the variable behavior state 2100*08b48e0bSAndroid Build Coastguard Worker dir to simplify examining the relevant test cases. 2101*08b48e0bSAndroid Build Coastguard Worker 2102*08b48e0bSAndroid Build Coastguard Worker - Changed the period of limited-range block ops from 5 to 10 minutes based 2103*08b48e0bSAndroid Build Coastguard Worker on a couple of experiments. The basic goal of this delay timer behavior 2104*08b48e0bSAndroid Build Coastguard Worker is to better support jobs that are seeded with completely invalid files, 2105*08b48e0bSAndroid Build Coastguard Worker in which case, the first few queue cycles may be completed very quickly 2106*08b48e0bSAndroid Build Coastguard Worker without discovering new paths. Should have no effect on well-seeded jobs. 2107*08b48e0bSAndroid Build Coastguard Worker 2108*08b48e0bSAndroid Build Coastguard Worker - Made several minor updates to docs. 2109*08b48e0bSAndroid Build Coastguard Worker 2110*08b48e0bSAndroid Build Coastguard Worker### Version 1.44b: 2111*08b48e0bSAndroid Build Coastguard Worker 2112*08b48e0bSAndroid Build Coastguard Worker - Corrected two bungled attempts to get the -C mode work properly 2113*08b48e0bSAndroid Build Coastguard Worker with afl-cmin (accounting for the short-lived releases tagged 1.42 and 2114*08b48e0bSAndroid Build Coastguard Worker 1.43b) - sorry. 2115*08b48e0bSAndroid Build Coastguard Worker 2116*08b48e0bSAndroid Build Coastguard Worker - Removed AFL_ALLOW_CRASHES in favor of the -C mode in said tool. 2117*08b48e0bSAndroid Build Coastguard Worker 2118*08b48e0bSAndroid Build Coastguard Worker - Said goodbye to Hello Kitty, as requested by Padraig Brady. 2119*08b48e0bSAndroid Build Coastguard Worker 2120*08b48e0bSAndroid Build Coastguard Worker### Version 1.41b: 2121*08b48e0bSAndroid Build Coastguard Worker 2122*08b48e0bSAndroid Build Coastguard Worker - Added AFL_ALLOW_CRASHES=1 to afl-cmin. Allows crashing inputs in the 2123*08b48e0bSAndroid Build Coastguard Worker output corpus. Changed the default behavior to disallow it. 2124*08b48e0bSAndroid Build Coastguard Worker 2125*08b48e0bSAndroid Build Coastguard Worker - Made the afl-cmin output dir default to 0700, not 0755, to be consistent 2126*08b48e0bSAndroid Build Coastguard Worker with afl-fuzz; documented the rationale for 0755 in afl-plot. 2127*08b48e0bSAndroid Build Coastguard Worker 2128*08b48e0bSAndroid Build Coastguard Worker - Lowered the output dir reuse time limit to 25 minutes as a dice-roll 2129*08b48e0bSAndroid Build Coastguard Worker compromise after a discussion on afl-users@. 2130*08b48e0bSAndroid Build Coastguard Worker 2131*08b48e0bSAndroid Build Coastguard Worker - Made afl-showmap accept -o /dev/null without borking out. 2132*08b48e0bSAndroid Build Coastguard Worker 2133*08b48e0bSAndroid Build Coastguard Worker - Added support for crash / hang info in exit codes of afl-showmap. 2134*08b48e0bSAndroid Build Coastguard Worker 2135*08b48e0bSAndroid Build Coastguard Worker - Tweaked block operation scaling to also factor in ballpark run time 2136*08b48e0bSAndroid Build Coastguard Worker in cases where queue passes take very little time. 2137*08b48e0bSAndroid Build Coastguard Worker 2138*08b48e0bSAndroid Build Coastguard Worker - Fixed typos and made improvements to several docs. 2139*08b48e0bSAndroid Build Coastguard Worker 2140*08b48e0bSAndroid Build Coastguard Worker### Version 1.40b: 2141*08b48e0bSAndroid Build Coastguard Worker 2142*08b48e0bSAndroid Build Coastguard Worker - Switched to smaller block op sizes during the first passes over the 2143*08b48e0bSAndroid Build Coastguard Worker queue. Helps keep test cases small. 2144*08b48e0bSAndroid Build Coastguard Worker 2145*08b48e0bSAndroid Build Coastguard Worker - Added memory barrier for run_target(), just in case compilers get 2146*08b48e0bSAndroid Build Coastguard Worker smarter than they are today. 2147*08b48e0bSAndroid Build Coastguard Worker 2148*08b48e0bSAndroid Build Coastguard Worker - Updated a bunch of docs. 2149*08b48e0bSAndroid Build Coastguard Worker 2150*08b48e0bSAndroid Build Coastguard Worker### Version 1.39b: 2151*08b48e0bSAndroid Build Coastguard Worker 2152*08b48e0bSAndroid Build Coastguard Worker - Added the ability to skip inputs by sending SIGUSR1 to the fuzzer. 2153*08b48e0bSAndroid Build Coastguard Worker 2154*08b48e0bSAndroid Build Coastguard Worker - Reworked several portions of the documentation. 2155*08b48e0bSAndroid Build Coastguard Worker 2156*08b48e0bSAndroid Build Coastguard Worker - Changed the code to reset splicing perf scores between runs to keep 2157*08b48e0bSAndroid Build Coastguard Worker them closer to intended length. 2158*08b48e0bSAndroid Build Coastguard Worker 2159*08b48e0bSAndroid Build Coastguard Worker - Reduced the minimum value of -t to 5 for afl-fuzz (~200 exec/sec) 2160*08b48e0bSAndroid Build Coastguard Worker and to 10 for auxiliary tools (due to the absence of a fork server). 2161*08b48e0bSAndroid Build Coastguard Worker 2162*08b48e0bSAndroid Build Coastguard Worker - Switched to more aggressive default timeouts (rounded up to 25 ms 2163*08b48e0bSAndroid Build Coastguard Worker versus 50 ms - ~40 execs/sec) and made several other cosmetic changes 2164*08b48e0bSAndroid Build Coastguard Worker to the timeout code. 2165*08b48e0bSAndroid Build Coastguard Worker 2166*08b48e0bSAndroid Build Coastguard Worker### Version 1.38b: 2167*08b48e0bSAndroid Build Coastguard Worker 2168*08b48e0bSAndroid Build Coastguard Worker - Fixed a bug in the QEMU build script, spotted by William Robinet. 2169*08b48e0bSAndroid Build Coastguard Worker 2170*08b48e0bSAndroid Build Coastguard Worker - Improved the reporting of skipped bitflips to keep the UI counters a bit 2171*08b48e0bSAndroid Build Coastguard Worker more accurate. 2172*08b48e0bSAndroid Build Coastguard Worker 2173*08b48e0bSAndroid Build Coastguard Worker - Cleaned up related_work.txt and added some non-goals. 2174*08b48e0bSAndroid Build Coastguard Worker 2175*08b48e0bSAndroid Build Coastguard Worker - Fixed typos, thanks to Jakub Wilk. 2176*08b48e0bSAndroid Build Coastguard Worker 2177*08b48e0bSAndroid Build Coastguard Worker### Version 1.37b: 2178*08b48e0bSAndroid Build Coastguard Worker 2179*08b48e0bSAndroid Build Coastguard Worker - Added effector maps, which detect regions that do not seem to respond 2180*08b48e0bSAndroid Build Coastguard Worker to bitflips and subsequently exclude them from more expensive steps 2181*08b48e0bSAndroid Build Coastguard Worker (arithmetics, known ints, etc). This should offer significant performance 2182*08b48e0bSAndroid Build Coastguard Worker improvements with quite a few types of text-based formats, reducing the 2183*08b48e0bSAndroid Build Coastguard Worker number of deterministic execs by a factor of 2 or so. 2184*08b48e0bSAndroid Build Coastguard Worker 2185*08b48e0bSAndroid Build Coastguard Worker - Cleaned up mem limit handling in afl-cmin. 2186*08b48e0bSAndroid Build Coastguard Worker 2187*08b48e0bSAndroid Build Coastguard Worker - Switched from uname -i to uname -m to work around Gentoo-specific 2188*08b48e0bSAndroid Build Coastguard Worker issues with coreutils when building QEMU. Reported by William Robinet. 2189*08b48e0bSAndroid Build Coastguard Worker 2190*08b48e0bSAndroid Build Coastguard Worker - Switched from PID checking to flock() to detect running sessions. 2191*08b48e0bSAndroid Build Coastguard Worker Problem, against all odds, bumped into by Jakub Wilk. 2192*08b48e0bSAndroid Build Coastguard Worker 2193*08b48e0bSAndroid Build Coastguard Worker - Added SKIP_COUNTS and changed the behavior of COVERAGE_ONLY in config.h. 2194*08b48e0bSAndroid Build Coastguard Worker Useful only for internal benchmarking. 2195*08b48e0bSAndroid Build Coastguard Worker 2196*08b48e0bSAndroid Build Coastguard Worker - Made improvements to UI refresh rates and exec/sec stats to make them 2197*08b48e0bSAndroid Build Coastguard Worker more stable. 2198*08b48e0bSAndroid Build Coastguard Worker 2199*08b48e0bSAndroid Build Coastguard Worker - Made assorted improvements to the documentation and to the QEMU build 2200*08b48e0bSAndroid Build Coastguard Worker script. 2201*08b48e0bSAndroid Build Coastguard Worker 2202*08b48e0bSAndroid Build Coastguard Worker - Switched from perror() to strerror() in error macros, thanks to Jakub 2203*08b48e0bSAndroid Build Coastguard Worker Wilk for the nag. 2204*08b48e0bSAndroid Build Coastguard Worker 2205*08b48e0bSAndroid Build Coastguard Worker - Moved afl-cmin back to bash, wasn't thinking straight. It has to stay 2206*08b48e0bSAndroid Build Coastguard Worker on bash because other shells may have restrictive limits on array sizes. 2207*08b48e0bSAndroid Build Coastguard Worker 2208*08b48e0bSAndroid Build Coastguard Worker### Version 1.36b: 2209*08b48e0bSAndroid Build Coastguard Worker 2210*08b48e0bSAndroid Build Coastguard Worker - Switched afl-cmin over to /bin/sh. Thanks to Jonathan Gray. 2211*08b48e0bSAndroid Build Coastguard Worker 2212*08b48e0bSAndroid Build Coastguard Worker - Fixed an off-by-one bug in queue limit check when resuming sessions 2213*08b48e0bSAndroid Build Coastguard Worker (could cause NULL ptr deref if you are *really* unlucky). 2214*08b48e0bSAndroid Build Coastguard Worker 2215*08b48e0bSAndroid Build Coastguard Worker - Fixed the QEMU script to tolerate i686 if returned by uname -i. Based on 2216*08b48e0bSAndroid Build Coastguard Worker a problem report from Sebastien Duquette. 2217*08b48e0bSAndroid Build Coastguard Worker 2218*08b48e0bSAndroid Build Coastguard Worker - Added multiple references to Jakub's ppvm tool. 2219*08b48e0bSAndroid Build Coastguard Worker 2220*08b48e0bSAndroid Build Coastguard Worker - Made several minor improvements to the Makefile. 2221*08b48e0bSAndroid Build Coastguard Worker 2222*08b48e0bSAndroid Build Coastguard Worker - Believe it or not, fixed some typos. Thanks to Jakub Wilk. 2223*08b48e0bSAndroid Build Coastguard Worker 2224*08b48e0bSAndroid Build Coastguard Worker### Version 1.35b: 2225*08b48e0bSAndroid Build Coastguard Worker 2226*08b48e0bSAndroid Build Coastguard Worker - Cleaned up regular expressions in some of the scripts to avoid errors 2227*08b48e0bSAndroid Build Coastguard Worker on *BSD systems. Spotted by Jonathan Gray. 2228*08b48e0bSAndroid Build Coastguard Worker 2229*08b48e0bSAndroid Build Coastguard Worker### Version 1.34b: 2230*08b48e0bSAndroid Build Coastguard Worker 2231*08b48e0bSAndroid Build Coastguard Worker - Performed a substantial documentation and program output cleanup to 2232*08b48e0bSAndroid Build Coastguard Worker better explain the QEMU feature. 2233*08b48e0bSAndroid Build Coastguard Worker 2234*08b48e0bSAndroid Build Coastguard Worker### Version 1.33b: 2235*08b48e0bSAndroid Build Coastguard Worker 2236*08b48e0bSAndroid Build Coastguard Worker - Added support for AFL_INST_RATIO and AFL_INST_LIBS in the QEMU mode. 2237*08b48e0bSAndroid Build Coastguard Worker 2238*08b48e0bSAndroid Build Coastguard Worker - Fixed a stack allocation crash in QEMU mode (bug in QEMU, fixed with 2239*08b48e0bSAndroid Build Coastguard Worker an extra patch applied to the downloaded release). 2240*08b48e0bSAndroid Build Coastguard Worker 2241*08b48e0bSAndroid Build Coastguard Worker - Added code to test the QEMU instrumentation once the afl-qemu-trace 2242*08b48e0bSAndroid Build Coastguard Worker binary is built. 2243*08b48e0bSAndroid Build Coastguard Worker 2244*08b48e0bSAndroid Build Coastguard Worker - Modified afl-tmin and afl-showmap to search $PATH for binaries and to 2245*08b48e0bSAndroid Build Coastguard Worker better handle QEMU support. 2246*08b48e0bSAndroid Build Coastguard Worker 2247*08b48e0bSAndroid Build Coastguard Worker - Added a check for instrumented binaries when passing -Q to afl-fuzz. 2248*08b48e0bSAndroid Build Coastguard Worker 2249*08b48e0bSAndroid Build Coastguard Worker### Version 1.32b: 2250*08b48e0bSAndroid Build Coastguard Worker 2251*08b48e0bSAndroid Build Coastguard Worker - Fixed 'make install' following the QEMU changes. Spotted by Hanno Boeck. 2252*08b48e0bSAndroid Build Coastguard Worker 2253*08b48e0bSAndroid Build Coastguard Worker - Fixed EXTRA_PAR handling in afl-cmin. 2254*08b48e0bSAndroid Build Coastguard Worker 2255*08b48e0bSAndroid Build Coastguard Worker### Version 1.31b: 2256*08b48e0bSAndroid Build Coastguard Worker 2257*08b48e0bSAndroid Build Coastguard Worker - Hallelujah! Thanks to Andrew Griffiths, we now support very fast, black-box 2258*08b48e0bSAndroid Build Coastguard Worker instrumentation of binary-only code. See qemu_mode/README.qemu. 2259*08b48e0bSAndroid Build Coastguard Worker 2260*08b48e0bSAndroid Build Coastguard Worker To use this feature, you need to follow the instructions in that 2261*08b48e0bSAndroid Build Coastguard Worker directory and then run afl-fuzz with -Q. 2262*08b48e0bSAndroid Build Coastguard Worker 2263*08b48e0bSAndroid Build Coastguard Worker### Version 1.30b: 2264*08b48e0bSAndroid Build Coastguard Worker 2265*08b48e0bSAndroid Build Coastguard Worker - Added -s (summary) option to afl-whatsup. Suggested by Jodie Cunningham. 2266*08b48e0bSAndroid Build Coastguard Worker 2267*08b48e0bSAndroid Build Coastguard Worker - Added a sanity check in afl-tmin to detect minimization to zero len or 2268*08b48e0bSAndroid Build Coastguard Worker excess hangs. 2269*08b48e0bSAndroid Build Coastguard Worker 2270*08b48e0bSAndroid Build Coastguard Worker - Fixed alphabet size counter in afl-tmin. 2271*08b48e0bSAndroid Build Coastguard Worker 2272*08b48e0bSAndroid Build Coastguard Worker - Slightly improved the handling of -B in afl-fuzz. 2273*08b48e0bSAndroid Build Coastguard Worker 2274*08b48e0bSAndroid Build Coastguard Worker - Fixed process crash messages with -m none. 2275*08b48e0bSAndroid Build Coastguard Worker 2276*08b48e0bSAndroid Build Coastguard Worker### Version 1.29b: 2277*08b48e0bSAndroid Build Coastguard Worker 2278*08b48e0bSAndroid Build Coastguard Worker - Improved the naming of test cases when orig: is already present in the file 2279*08b48e0bSAndroid Build Coastguard Worker name. 2280*08b48e0bSAndroid Build Coastguard Worker 2281*08b48e0bSAndroid Build Coastguard Worker - Made substantial improvements to technical_details.txt. 2282*08b48e0bSAndroid Build Coastguard Worker 2283*08b48e0bSAndroid Build Coastguard Worker### Version 1.28b: 2284*08b48e0bSAndroid Build Coastguard Worker 2285*08b48e0bSAndroid Build Coastguard Worker - Made a minor tweak to the instrumentation to preserve the directionality 2286*08b48e0bSAndroid Build Coastguard Worker of tuples (i.e., A -> B != B -> A) and to maintain the identity of tight 2287*08b48e0bSAndroid Build Coastguard Worker loops (A -> A). You need to recompile targeted binaries to leverage this. 2288*08b48e0bSAndroid Build Coastguard Worker 2289*08b48e0bSAndroid Build Coastguard Worker - Cleaned up some of the afl-whatsup stats. 2290*08b48e0bSAndroid Build Coastguard Worker 2291*08b48e0bSAndroid Build Coastguard Worker - Added several sanity checks to afl-cmin. 2292*08b48e0bSAndroid Build Coastguard Worker 2293*08b48e0bSAndroid Build Coastguard Worker### Version 1.27b: 2294*08b48e0bSAndroid Build Coastguard Worker 2295*08b48e0bSAndroid Build Coastguard Worker - Made afl-tmin recursive. Thanks to Hanno Boeck for the tip. 2296*08b48e0bSAndroid Build Coastguard Worker 2297*08b48e0bSAndroid Build Coastguard Worker - Added docs/technical_details.txt. 2298*08b48e0bSAndroid Build Coastguard Worker 2299*08b48e0bSAndroid Build Coastguard Worker - Changed afl-showmap search strategy in afl-cmap to just look into the 2300*08b48e0bSAndroid Build Coastguard Worker same place that afl-cmin is executed from. Thanks to Jakub Wilk. 2301*08b48e0bSAndroid Build Coastguard Worker 2302*08b48e0bSAndroid Build Coastguard Worker - Removed current_todo.txt and cleaned up the remaining docs. 2303*08b48e0bSAndroid Build Coastguard Worker 2304*08b48e0bSAndroid Build Coastguard Worker### Version 1.26b: 2305*08b48e0bSAndroid Build Coastguard Worker 2306*08b48e0bSAndroid Build Coastguard Worker - Added total execs/sec stat for afl-whatsup. 2307*08b48e0bSAndroid Build Coastguard Worker 2308*08b48e0bSAndroid Build Coastguard Worker - afl-cmin now auto-selects between cp or ln. Based on feedback from 2309*08b48e0bSAndroid Build Coastguard Worker Even Huus. 2310*08b48e0bSAndroid Build Coastguard Worker 2311*08b48e0bSAndroid Build Coastguard Worker - Fixed a typo. Thanks to Jakub Wilk. 2312*08b48e0bSAndroid Build Coastguard Worker 2313*08b48e0bSAndroid Build Coastguard Worker - Made afl-gotcpu a bit more accurate by using getrusage instead of 2314*08b48e0bSAndroid Build Coastguard Worker times. Thanks to Jakub Wilk. 2315*08b48e0bSAndroid Build Coastguard Worker 2316*08b48e0bSAndroid Build Coastguard Worker - Fixed a memory limit issue during the build process on NetBSD-current. 2317*08b48e0bSAndroid Build Coastguard Worker Reported by Thomas Klausner. 2318*08b48e0bSAndroid Build Coastguard Worker 2319*08b48e0bSAndroid Build Coastguard Worker### Version 1.25b: 2320*08b48e0bSAndroid Build Coastguard Worker 2321*08b48e0bSAndroid Build Coastguard Worker - Introduced afl-whatsup, a simple tool for querying the status of 2322*08b48e0bSAndroid Build Coastguard Worker local synced instances of afl-fuzz. 2323*08b48e0bSAndroid Build Coastguard Worker 2324*08b48e0bSAndroid Build Coastguard Worker - Added -x compiler to clang options on Darwin. Suggested by Filipe 2325*08b48e0bSAndroid Build Coastguard Worker Cabecinhas. 2326*08b48e0bSAndroid Build Coastguard Worker 2327*08b48e0bSAndroid Build Coastguard Worker - Improved exit codes for afl-gotcpu. 2328*08b48e0bSAndroid Build Coastguard Worker 2329*08b48e0bSAndroid Build Coastguard Worker - Improved the checks for -m and -t values in afl-cmin. Bug report 2330*08b48e0bSAndroid Build Coastguard Worker from Evan Huus. 2331*08b48e0bSAndroid Build Coastguard Worker 2332*08b48e0bSAndroid Build Coastguard Worker### Version 1.24b: 2333*08b48e0bSAndroid Build Coastguard Worker 2334*08b48e0bSAndroid Build Coastguard Worker - Introduced afl-getcpu, an experimental tool to empirically measure 2335*08b48e0bSAndroid Build Coastguard Worker CPU preemption rates. Thanks to Jakub Wilk for the idea. 2336*08b48e0bSAndroid Build Coastguard Worker 2337*08b48e0bSAndroid Build Coastguard Worker### Version 1.23b: 2338*08b48e0bSAndroid Build Coastguard Worker 2339*08b48e0bSAndroid Build Coastguard Worker - Reverted one change to afl-cmin that actually made it slower. 2340*08b48e0bSAndroid Build Coastguard Worker 2341*08b48e0bSAndroid Build Coastguard Worker### Version 1.22b: 2342*08b48e0bSAndroid Build Coastguard Worker 2343*08b48e0bSAndroid Build Coastguard Worker - Reworked afl-showmap.c to support normal options, including -o, -q, 2344*08b48e0bSAndroid Build Coastguard Worker -e. Also added support for timeouts and memory limits. 2345*08b48e0bSAndroid Build Coastguard Worker 2346*08b48e0bSAndroid Build Coastguard Worker - Made changes to afl-cmin and other scripts to accommodate the new 2347*08b48e0bSAndroid Build Coastguard Worker semantics. 2348*08b48e0bSAndroid Build Coastguard Worker 2349*08b48e0bSAndroid Build Coastguard Worker - Officially retired AFL_EDGES_ONLY. 2350*08b48e0bSAndroid Build Coastguard Worker 2351*08b48e0bSAndroid Build Coastguard Worker - Fixed another typo in afl-tmin, courtesy of Jakub Wilk. 2352*08b48e0bSAndroid Build Coastguard Worker 2353*08b48e0bSAndroid Build Coastguard Worker### Version 1.21b: 2354*08b48e0bSAndroid Build Coastguard Worker 2355*08b48e0bSAndroid Build Coastguard Worker - Graduated minimize_corpus.sh to afl-cmin. It is now a first-class 2356*08b48e0bSAndroid Build Coastguard Worker utility bundled with the fuzzer. 2357*08b48e0bSAndroid Build Coastguard Worker 2358*08b48e0bSAndroid Build Coastguard Worker - Made significant improvements to afl-cmin to make it faster, more 2359*08b48e0bSAndroid Build Coastguard Worker robust, and more versatile. 2360*08b48e0bSAndroid Build Coastguard Worker 2361*08b48e0bSAndroid Build Coastguard Worker - Refactored some of afl-tmin code to make it a bit more readable. 2362*08b48e0bSAndroid Build Coastguard Worker 2363*08b48e0bSAndroid Build Coastguard Worker - Made assorted changes to the doc to document afl-cmin and other stuff. 2364*08b48e0bSAndroid Build Coastguard Worker 2365*08b48e0bSAndroid Build Coastguard Worker### Version 1.20b: 2366*08b48e0bSAndroid Build Coastguard Worker 2367*08b48e0bSAndroid Build Coastguard Worker - Added AFL_DUMB_FORKSRV, as requested by Jakub Wilk. This works only 2368*08b48e0bSAndroid Build Coastguard Worker in -n mode and allows afl-fuzz to run with "dummy" fork servers that 2369*08b48e0bSAndroid Build Coastguard Worker don't output any instrumentation, but follow the same protocol. 2370*08b48e0bSAndroid Build Coastguard Worker 2371*08b48e0bSAndroid Build Coastguard Worker - Renamed AFL_SKIP_CHECKS to AFL_SKIP_BIN_CHECK to make it at least 2372*08b48e0bSAndroid Build Coastguard Worker somewhat descriptive. 2373*08b48e0bSAndroid Build Coastguard Worker 2374*08b48e0bSAndroid Build Coastguard Worker - Switched to using clang as the default assembler on MacOS X to work 2375*08b48e0bSAndroid Build Coastguard Worker around Xcode issues with newer builds of clang. Testing and patch by 2376*08b48e0bSAndroid Build Coastguard Worker Nico Weber. 2377*08b48e0bSAndroid Build Coastguard Worker 2378*08b48e0bSAndroid Build Coastguard Worker - Fixed a typo (via Jakub Wilk). 2379*08b48e0bSAndroid Build Coastguard Worker 2380*08b48e0bSAndroid Build Coastguard Worker### Version 1.19b: 2381*08b48e0bSAndroid Build Coastguard Worker 2382*08b48e0bSAndroid Build Coastguard Worker - Improved exec failure detection in afl-fuzz and afl-showmap. 2383*08b48e0bSAndroid Build Coastguard Worker 2384*08b48e0bSAndroid Build Coastguard Worker - Improved Ctrl-C handling in afl-showmap. 2385*08b48e0bSAndroid Build Coastguard Worker 2386*08b48e0bSAndroid Build Coastguard Worker - Added afl-tmin, a handy instrumentation-enabled minimizer. 2387*08b48e0bSAndroid Build Coastguard Worker 2388*08b48e0bSAndroid Build Coastguard Worker### Version 1.18b: 2389*08b48e0bSAndroid Build Coastguard Worker 2390*08b48e0bSAndroid Build Coastguard Worker - Fixed a serious but short-lived bug in the resumption behavior introduced 2391*08b48e0bSAndroid Build Coastguard Worker in version 1.16b. 2392*08b48e0bSAndroid Build Coastguard Worker 2393*08b48e0bSAndroid Build Coastguard Worker - Added -t nn+ mode for soft-skipping timing-out paths. 2394*08b48e0bSAndroid Build Coastguard Worker 2395*08b48e0bSAndroid Build Coastguard Worker### Version 1.17b: 2396*08b48e0bSAndroid Build Coastguard Worker 2397*08b48e0bSAndroid Build Coastguard Worker - Fixed a compiler warning introduced in 1.16b for newer versions of GCC. 2398*08b48e0bSAndroid Build Coastguard Worker Thanks to Jakub Wilk and Ilfak Guilfanov. 2399*08b48e0bSAndroid Build Coastguard Worker 2400*08b48e0bSAndroid Build Coastguard Worker - Improved the consistency of saving fuzzer_stats, bitmap info, and 2401*08b48e0bSAndroid Build Coastguard Worker auto-dictionaries when aborting fuzzing sessions. 2402*08b48e0bSAndroid Build Coastguard Worker 2403*08b48e0bSAndroid Build Coastguard Worker - Made several noticeable performance improvements to deterministic arith 2404*08b48e0bSAndroid Build Coastguard Worker and known int steps. 2405*08b48e0bSAndroid Build Coastguard Worker 2406*08b48e0bSAndroid Build Coastguard Worker### Version 1.16b: 2407*08b48e0bSAndroid Build Coastguard Worker 2408*08b48e0bSAndroid Build Coastguard Worker - Added a bit of code to make resumption pick up from the last known 2409*08b48e0bSAndroid Build Coastguard Worker offset in the queue, rather than always rewinding to the start. Suggested 2410*08b48e0bSAndroid Build Coastguard Worker by Jakub Wilk. 2411*08b48e0bSAndroid Build Coastguard Worker 2412*08b48e0bSAndroid Build Coastguard Worker - Switched to tighter timeout control for slow programs (3x rather than 2413*08b48e0bSAndroid Build Coastguard Worker 5x average exec speed at init). 2414*08b48e0bSAndroid Build Coastguard Worker 2415*08b48e0bSAndroid Build Coastguard Worker### Version 1.15b: 2416*08b48e0bSAndroid Build Coastguard Worker 2417*08b48e0bSAndroid Build Coastguard Worker - Added support for AFL_NO_VAR_CHECK to speed up resumption and inhibit 2418*08b48e0bSAndroid Build Coastguard Worker variable path warnings for some programs. 2419*08b48e0bSAndroid Build Coastguard Worker 2420*08b48e0bSAndroid Build Coastguard Worker - Made the trimmer run even for variable paths, since there is no special 2421*08b48e0bSAndroid Build Coastguard Worker harm in doing so and it can be very beneficial if the trimming still 2422*08b48e0bSAndroid Build Coastguard Worker pans out. 2423*08b48e0bSAndroid Build Coastguard Worker 2424*08b48e0bSAndroid Build Coastguard Worker - Made the UI a bit more descriptive by adding "n/a" instead of "0" in a 2425*08b48e0bSAndroid Build Coastguard Worker couple of corner cases. 2426*08b48e0bSAndroid Build Coastguard Worker 2427*08b48e0bSAndroid Build Coastguard Worker### Version 1.14b: 2428*08b48e0bSAndroid Build Coastguard Worker 2429*08b48e0bSAndroid Build Coastguard Worker - Added a (partial) dictionary for JavaScript. 2430*08b48e0bSAndroid Build Coastguard Worker 2431*08b48e0bSAndroid Build Coastguard Worker - Added AFL_NO_CPU_RED, as suggested by Jakub Wilk. 2432*08b48e0bSAndroid Build Coastguard Worker 2433*08b48e0bSAndroid Build Coastguard Worker - Tweaked the havoc scaling logic added in 1.12b. 2434*08b48e0bSAndroid Build Coastguard Worker 2435*08b48e0bSAndroid Build Coastguard Worker### Version 1.13b: 2436*08b48e0bSAndroid Build Coastguard Worker 2437*08b48e0bSAndroid Build Coastguard Worker - Improved the performance of minimize_corpus.sh by switching to a 2438*08b48e0bSAndroid Build Coastguard Worker sort-based approach. 2439*08b48e0bSAndroid Build Coastguard Worker 2440*08b48e0bSAndroid Build Coastguard Worker - Made several minor revisions to the docs. 2441*08b48e0bSAndroid Build Coastguard Worker 2442*08b48e0bSAndroid Build Coastguard Worker### Version 1.12b: 2443*08b48e0bSAndroid Build Coastguard Worker 2444*08b48e0bSAndroid Build Coastguard Worker - Made an improvement to dictionary generation to avoid runs of identical 2445*08b48e0bSAndroid Build Coastguard Worker bytes. 2446*08b48e0bSAndroid Build Coastguard Worker 2447*08b48e0bSAndroid Build Coastguard Worker - Added havoc cycle scaling to help with slow binaries in -d mode. Based on 2448*08b48e0bSAndroid Build Coastguard Worker a thread with Sami Liedes. 2449*08b48e0bSAndroid Build Coastguard Worker 2450*08b48e0bSAndroid Build Coastguard Worker - Added AFL_SYNC_FIRST for afl-fuzz. This is useful for those who obsess 2451*08b48e0bSAndroid Build Coastguard Worker over stats, no special purpose otherwise. 2452*08b48e0bSAndroid Build Coastguard Worker 2453*08b48e0bSAndroid Build Coastguard Worker - Switched to more robust box drawing codes, suggested by Jakub Wilk. 2454*08b48e0bSAndroid Build Coastguard Worker 2455*08b48e0bSAndroid Build Coastguard Worker - Created faster 64-bit variants of several critical-path bitmap functions 2456*08b48e0bSAndroid Build Coastguard Worker (sorry, no difference on 32 bits). 2457*08b48e0bSAndroid Build Coastguard Worker 2458*08b48e0bSAndroid Build Coastguard Worker - Fixed moar typos, as reported by Jakub Wilk. 2459*08b48e0bSAndroid Build Coastguard Worker 2460*08b48e0bSAndroid Build Coastguard Worker### Version 1.11b: 2461*08b48e0bSAndroid Build Coastguard Worker 2462*08b48e0bSAndroid Build Coastguard Worker - Added a bit more info about dictionary strategies to the status screen. 2463*08b48e0bSAndroid Build Coastguard Worker 2464*08b48e0bSAndroid Build Coastguard Worker### Version 1.10b: 2465*08b48e0bSAndroid Build Coastguard Worker 2466*08b48e0bSAndroid Build Coastguard Worker - Revised the dictionary behavior to use insertion and overwrite in 2467*08b48e0bSAndroid Build Coastguard Worker deterministic steps, rather than just the latter. This improves coverage 2468*08b48e0bSAndroid Build Coastguard Worker with SQL and the like. 2469*08b48e0bSAndroid Build Coastguard Worker 2470*08b48e0bSAndroid Build Coastguard Worker - Added a mention of "*" in status_screen.txt, as suggested by Jakub Wilk. 2471*08b48e0bSAndroid Build Coastguard Worker 2472*08b48e0bSAndroid Build Coastguard Worker### Version 1.09b: 2473*08b48e0bSAndroid Build Coastguard Worker 2474*08b48e0bSAndroid Build Coastguard Worker - Corrected a cosmetic problem with 'extras' stage count not always being 2475*08b48e0bSAndroid Build Coastguard Worker accurate in the stage yields view. 2476*08b48e0bSAndroid Build Coastguard Worker 2477*08b48e0bSAndroid Build Coastguard Worker - Fixed a typo reported by Jakub Wilk and made some minor documentation 2478*08b48e0bSAndroid Build Coastguard Worker improvements. 2479*08b48e0bSAndroid Build Coastguard Worker 2480*08b48e0bSAndroid Build Coastguard Worker### Version 1.08b: 2481*08b48e0bSAndroid Build Coastguard Worker 2482*08b48e0bSAndroid Build Coastguard Worker - Fixed a div-by-zero bug in the newly-added code when using a dictionary. 2483*08b48e0bSAndroid Build Coastguard Worker 2484*08b48e0bSAndroid Build Coastguard Worker### Version 1.07b: 2485*08b48e0bSAndroid Build Coastguard Worker 2486*08b48e0bSAndroid Build Coastguard Worker - Added code that automatically finds and extracts syntax tokens from the 2487*08b48e0bSAndroid Build Coastguard Worker input corpus. 2488*08b48e0bSAndroid Build Coastguard Worker 2489*08b48e0bSAndroid Build Coastguard Worker - Fixed a problem with ld dead-code removal option on MacOS X, reported 2490*08b48e0bSAndroid Build Coastguard Worker by Filipe Cabecinhas. 2491*08b48e0bSAndroid Build Coastguard Worker 2492*08b48e0bSAndroid Build Coastguard Worker - Corrected minor typos spotted by Jakub Wilk. 2493*08b48e0bSAndroid Build Coastguard Worker 2494*08b48e0bSAndroid Build Coastguard Worker - Added a couple of more exotic archive format samples. 2495*08b48e0bSAndroid Build Coastguard Worker 2496*08b48e0bSAndroid Build Coastguard Worker### Version 1.06b: 2497*08b48e0bSAndroid Build Coastguard Worker 2498*08b48e0bSAndroid Build Coastguard Worker - Switched to slightly more accurate (if still not very helpful) reporting 2499*08b48e0bSAndroid Build Coastguard Worker of short read and short write errors. These theoretically shouldn't happen 2500*08b48e0bSAndroid Build Coastguard Worker unless you kill the forkserver or run out of disk space. Suggested by 2501*08b48e0bSAndroid Build Coastguard Worker Jakub Wilk. 2502*08b48e0bSAndroid Build Coastguard Worker 2503*08b48e0bSAndroid Build Coastguard Worker - Revamped some of the allocator and debug code, adding comments and 2504*08b48e0bSAndroid Build Coastguard Worker cleaning up other mess. 2505*08b48e0bSAndroid Build Coastguard Worker 2506*08b48e0bSAndroid Build Coastguard Worker - Tweaked the odds of fuzzing non-favored test cases to make sure that 2507*08b48e0bSAndroid Build Coastguard Worker baseline coverage of all inputs is reached sooner. 2508*08b48e0bSAndroid Build Coastguard Worker 2509*08b48e0bSAndroid Build Coastguard Worker### Version 1.05b: 2510*08b48e0bSAndroid Build Coastguard Worker 2511*08b48e0bSAndroid Build Coastguard Worker - Added a dictionary for WebP. 2512*08b48e0bSAndroid Build Coastguard Worker 2513*08b48e0bSAndroid Build Coastguard Worker - Made some additional performance improvements to minimize_corpus.sh, 2514*08b48e0bSAndroid Build Coastguard Worker getting deeper into the bash woods. 2515*08b48e0bSAndroid Build Coastguard Worker 2516*08b48e0bSAndroid Build Coastguard Worker### Version 1.04b: 2517*08b48e0bSAndroid Build Coastguard Worker 2518*08b48e0bSAndroid Build Coastguard Worker - Made substantial performance improvements to minimize_corpus.sh with 2519*08b48e0bSAndroid Build Coastguard Worker large datasets, albeit at the expense of having to switch back to bash 2520*08b48e0bSAndroid Build Coastguard Worker (other shells may have limits on array sizes, etc). 2521*08b48e0bSAndroid Build Coastguard Worker 2522*08b48e0bSAndroid Build Coastguard Worker - Tweaked afl-showmap to support the format used by the new script. 2523*08b48e0bSAndroid Build Coastguard Worker 2524*08b48e0bSAndroid Build Coastguard Worker### Version 1.03b: 2525*08b48e0bSAndroid Build Coastguard Worker 2526*08b48e0bSAndroid Build Coastguard Worker - Added code to skip README.txt in the input directory to make the crash 2527*08b48e0bSAndroid Build Coastguard Worker exploration mode work better. Suggested by Jakub Wilk. 2528*08b48e0bSAndroid Build Coastguard Worker 2529*08b48e0bSAndroid Build Coastguard Worker - Added a dictionary for SQLite. 2530*08b48e0bSAndroid Build Coastguard Worker 2531*08b48e0bSAndroid Build Coastguard Worker### Version 1.02b: 2532*08b48e0bSAndroid Build Coastguard Worker 2533*08b48e0bSAndroid Build Coastguard Worker - Reverted the ./ search path in minimize_corpus.sh because people did 2534*08b48e0bSAndroid Build Coastguard Worker not like it. 2535*08b48e0bSAndroid Build Coastguard Worker 2536*08b48e0bSAndroid Build Coastguard Worker - Added very explicit warnings not to run various shell scripts that 2537*08b48e0bSAndroid Build Coastguard Worker read or write to /tmp/ (since this is generally a pretty bad idea on 2538*08b48e0bSAndroid Build Coastguard Worker multi-user systems). 2539*08b48e0bSAndroid Build Coastguard Worker 2540*08b48e0bSAndroid Build Coastguard Worker - Added a check for /tmp binaries and -f locations in afl-fuzz. 2541*08b48e0bSAndroid Build Coastguard Worker 2542*08b48e0bSAndroid Build Coastguard Worker### Version 1.01b: 2543*08b48e0bSAndroid Build Coastguard Worker 2544*08b48e0bSAndroid Build Coastguard Worker - Added dictionaries for XML and GIF. 2545*08b48e0bSAndroid Build Coastguard Worker 2546*08b48e0bSAndroid Build Coastguard Worker### Version 1.00b: 2547*08b48e0bSAndroid Build Coastguard Worker 2548*08b48e0bSAndroid Build Coastguard Worker - Slightly improved the performance of minimize_corpus.sh, especially on 2549*08b48e0bSAndroid Build Coastguard Worker Linux. 2550*08b48e0bSAndroid Build Coastguard Worker 2551*08b48e0bSAndroid Build Coastguard Worker - Made a couple of improvements to calibration timeouts for resumed scans. 2552*08b48e0bSAndroid Build Coastguard Worker 2553*08b48e0bSAndroid Build Coastguard Worker### Version 0.99b: 2554*08b48e0bSAndroid Build Coastguard Worker 2555*08b48e0bSAndroid Build Coastguard Worker - Fixed minimize_corpus.sh to work with dash, as suggested by Jakub Wilk. 2556*08b48e0bSAndroid Build Coastguard Worker 2557*08b48e0bSAndroid Build Coastguard Worker - Modified minimize_corpus.sh to try locate afl-showmap in $PATH and ./. 2558*08b48e0bSAndroid Build Coastguard Worker The first part requested by Jakub Wilk. 2559*08b48e0bSAndroid Build Coastguard Worker 2560*08b48e0bSAndroid Build Coastguard Worker - Added support for afl-as --version, as required by one funky build 2561*08b48e0bSAndroid Build Coastguard Worker script. Reported by William Robinet. 2562*08b48e0bSAndroid Build Coastguard Worker 2563*08b48e0bSAndroid Build Coastguard Worker### Version 0.98b: 2564*08b48e0bSAndroid Build Coastguard Worker 2565*08b48e0bSAndroid Build Coastguard Worker - Added a dictionary for TIFF. 2566*08b48e0bSAndroid Build Coastguard Worker 2567*08b48e0bSAndroid Build Coastguard Worker - Fixed another cosmetic snafu with stage exec counts for -x. 2568*08b48e0bSAndroid Build Coastguard Worker 2569*08b48e0bSAndroid Build Coastguard Worker - Switched afl-plot to /bin/sh, since it seems bashism-free. Also tried 2570*08b48e0bSAndroid Build Coastguard Worker to remove any obvious bashisms from other examples/ scripts, 2571*08b48e0bSAndroid Build Coastguard Worker most notably including minimize_corpus.sh and triage_crashes.sh. 2572*08b48e0bSAndroid Build Coastguard Worker Requested by Jonathan Gray. 2573*08b48e0bSAndroid Build Coastguard Worker 2574*08b48e0bSAndroid Build Coastguard Worker### Version 0.97b: 2575*08b48e0bSAndroid Build Coastguard Worker 2576*08b48e0bSAndroid Build Coastguard Worker - Fixed cosmetic issues around the naming of -x strategy files. 2577*08b48e0bSAndroid Build Coastguard Worker 2578*08b48e0bSAndroid Build Coastguard Worker - Added a dictionary for JPEG. 2579*08b48e0bSAndroid Build Coastguard Worker 2580*08b48e0bSAndroid Build Coastguard Worker - Fixed a very rare glitch when running instrumenting 64-bit code that makes 2581*08b48e0bSAndroid Build Coastguard Worker heavy use of xmm registers that are also touched by glibc. 2582*08b48e0bSAndroid Build Coastguard Worker 2583*08b48e0bSAndroid Build Coastguard Worker### Version 0.96b: 2584*08b48e0bSAndroid Build Coastguard Worker 2585*08b48e0bSAndroid Build Coastguard Worker - Added support for extra dictionaries, provided testcases/_extras/png/ 2586*08b48e0bSAndroid Build Coastguard Worker as a demo. 2587*08b48e0bSAndroid Build Coastguard Worker 2588*08b48e0bSAndroid Build Coastguard Worker - Fixed a minor bug in number formatting routines used by the UI. 2589*08b48e0bSAndroid Build Coastguard Worker 2590*08b48e0bSAndroid Build Coastguard Worker - Added several additional PNG test cases that are relatively unlikely 2591*08b48e0bSAndroid Build Coastguard Worker to be hit by chance. 2592*08b48e0bSAndroid Build Coastguard Worker 2593*08b48e0bSAndroid Build Coastguard Worker - Fixed afl-plot syntax for gnuplot 5.x. Reported by David Necas. 2594*08b48e0bSAndroid Build Coastguard Worker 2595*08b48e0bSAndroid Build Coastguard Worker### Version 0.95b: 2596*08b48e0bSAndroid Build Coastguard Worker 2597*08b48e0bSAndroid Build Coastguard Worker - Cleaned up the OSX ReportCrash code. Thanks to Tobias Ospelt for help. 2598*08b48e0bSAndroid Build Coastguard Worker 2599*08b48e0bSAndroid Build Coastguard Worker - Added some extra tips for AFL_NO_FORKSERVER on OSX. 2600*08b48e0bSAndroid Build Coastguard Worker 2601*08b48e0bSAndroid Build Coastguard Worker - Refreshed the INSTALL file. 2602*08b48e0bSAndroid Build Coastguard Worker 2603*08b48e0bSAndroid Build Coastguard Worker### Version 0.94b: 2604*08b48e0bSAndroid Build Coastguard Worker 2605*08b48e0bSAndroid Build Coastguard Worker - Added in-place resume (-i-) to address a common user complaint. 2606*08b48e0bSAndroid Build Coastguard Worker 2607*08b48e0bSAndroid Build Coastguard Worker - Added an awful workaround for ReportCrash on MacOS X. Problem 2608*08b48e0bSAndroid Build Coastguard Worker spotted by Joseph Gentle. 2609*08b48e0bSAndroid Build Coastguard Worker 2610*08b48e0bSAndroid Build Coastguard Worker### Version 0.93b: 2611*08b48e0bSAndroid Build Coastguard Worker 2612*08b48e0bSAndroid Build Coastguard Worker - Fixed the link() workaround, as reported by Jakub Wilk. 2613*08b48e0bSAndroid Build Coastguard Worker 2614*08b48e0bSAndroid Build Coastguard Worker### Version 0.92b: 2615*08b48e0bSAndroid Build Coastguard Worker 2616*08b48e0bSAndroid Build Coastguard Worker - Added support for reading test cases from another filesystem. 2617*08b48e0bSAndroid Build Coastguard Worker Requested by Jakub Wilk. 2618*08b48e0bSAndroid Build Coastguard Worker 2619*08b48e0bSAndroid Build Coastguard Worker - Added pointers to the mailing list. 2620*08b48e0bSAndroid Build Coastguard Worker 2621*08b48e0bSAndroid Build Coastguard Worker - Added a sample PDF document. 2622*08b48e0bSAndroid Build Coastguard Worker 2623*08b48e0bSAndroid Build Coastguard Worker### Version 0.91b: 2624*08b48e0bSAndroid Build Coastguard Worker 2625*08b48e0bSAndroid Build Coastguard Worker - Refactored minimize_corpus.sh to make it a bit more user-friendly and to 2626*08b48e0bSAndroid Build Coastguard Worker select for smallest files, not largest bitmaps. Offers a modest corpus 2627*08b48e0bSAndroid Build Coastguard Worker size improvement in most cases. 2628*08b48e0bSAndroid Build Coastguard Worker 2629*08b48e0bSAndroid Build Coastguard Worker - Slightly improved the performance of splicing code. 2630*08b48e0bSAndroid Build Coastguard Worker 2631*08b48e0bSAndroid Build Coastguard Worker### Version 0.90b: 2632*08b48e0bSAndroid Build Coastguard Worker 2633*08b48e0bSAndroid Build Coastguard Worker - Moved to an algorithm where paths are marked as preferred primarily based 2634*08b48e0bSAndroid Build Coastguard Worker on size and speed, rather than bitmap coverage. This should offer 2635*08b48e0bSAndroid Build Coastguard Worker noticeable performance gains in many use cases. 2636*08b48e0bSAndroid Build Coastguard Worker 2637*08b48e0bSAndroid Build Coastguard Worker - Refactored path calibration code; calibration now takes place as soon as a 2638*08b48e0bSAndroid Build Coastguard Worker test case is discovered, to facilitate better prioritization decisions later 2639*08b48e0bSAndroid Build Coastguard Worker on. 2640*08b48e0bSAndroid Build Coastguard Worker 2641*08b48e0bSAndroid Build Coastguard Worker - Changed the way of marking variable paths to avoid .state metadata 2642*08b48e0bSAndroid Build Coastguard Worker inconsistencies. 2643*08b48e0bSAndroid Build Coastguard Worker 2644*08b48e0bSAndroid Build Coastguard Worker - Made sure that calibration routines always create a new test case to avoid 2645*08b48e0bSAndroid Build Coastguard Worker hypothetical problems with utilities that modify the input file. 2646*08b48e0bSAndroid Build Coastguard Worker 2647*08b48e0bSAndroid Build Coastguard Worker - Added bitmap saturation to fuzzer stats and plot data. 2648*08b48e0bSAndroid Build Coastguard Worker 2649*08b48e0bSAndroid Build Coastguard Worker - Added a testcase for JPEG XR. 2650*08b48e0bSAndroid Build Coastguard Worker 2651*08b48e0bSAndroid Build Coastguard Worker - Added a tty check for the colors warning in Makefile, to keep distro build 2652*08b48e0bSAndroid Build Coastguard Worker logs tidy. Suggested by Jakub Wilk. 2653*08b48e0bSAndroid Build Coastguard Worker 2654*08b48e0bSAndroid Build Coastguard Worker### Version 0.89b: 2655*08b48e0bSAndroid Build Coastguard Worker 2656*08b48e0bSAndroid Build Coastguard Worker - Renamed afl-plot.sh to afl-plot, as requested by Padraig Brady. 2657*08b48e0bSAndroid Build Coastguard Worker 2658*08b48e0bSAndroid Build Coastguard Worker - Improved the compatibility of afl-plot with older versions of gnuplot. 2659*08b48e0bSAndroid Build Coastguard Worker 2660*08b48e0bSAndroid Build Coastguard Worker - Added banner information to fuzzer_stats, populated it to afl-plot. 2661*08b48e0bSAndroid Build Coastguard Worker 2662*08b48e0bSAndroid Build Coastguard Worker### Version 0.88b: 2663*08b48e0bSAndroid Build Coastguard Worker 2664*08b48e0bSAndroid Build Coastguard Worker - Added support for plotting, with design and implementation based on a 2665*08b48e0bSAndroid Build Coastguard Worker prototype design proposed by Michael Rash. Huge thanks! 2666*08b48e0bSAndroid Build Coastguard Worker 2667*08b48e0bSAndroid Build Coastguard Worker - Added afl-plot.sh, which allows you to, well, generate a nice plot using 2668*08b48e0bSAndroid Build Coastguard Worker this data. 2669*08b48e0bSAndroid Build Coastguard Worker 2670*08b48e0bSAndroid Build Coastguard Worker - Refactored the code slightly to make more frequent updates to fuzzer_stats 2671*08b48e0bSAndroid Build Coastguard Worker and to provide more detail about synchronization. 2672*08b48e0bSAndroid Build Coastguard Worker 2673*08b48e0bSAndroid Build Coastguard Worker - Added an fflush(stdout) call for non-tty operation, as requested by 2674*08b48e0bSAndroid Build Coastguard Worker Joonas Kuorilehto. 2675*08b48e0bSAndroid Build Coastguard Worker 2676*08b48e0bSAndroid Build Coastguard Worker - Added some detail to fuzzer_stats for parity with plot_file. 2677*08b48e0bSAndroid Build Coastguard Worker 2678*08b48e0bSAndroid Build Coastguard Worker### Version 0.87b: 2679*08b48e0bSAndroid Build Coastguard Worker 2680*08b48e0bSAndroid Build Coastguard Worker - Added support for MSAN, via AFL_USE_MSAN, same gotchas as for ASAN. 2681*08b48e0bSAndroid Build Coastguard Worker 2682*08b48e0bSAndroid Build Coastguard Worker### Version 0.86b: 2683*08b48e0bSAndroid Build Coastguard Worker 2684*08b48e0bSAndroid Build Coastguard Worker - Added AFL_NO_FORKSRV, allowing the forkserver to be bypassed. Suggested 2685*08b48e0bSAndroid Build Coastguard Worker by Ryan Govostes. 2686*08b48e0bSAndroid Build Coastguard Worker 2687*08b48e0bSAndroid Build Coastguard Worker - Simplified afl-showmap.c to make use of the no-forkserver mode. 2688*08b48e0bSAndroid Build Coastguard Worker 2689*08b48e0bSAndroid Build Coastguard Worker - Made minor improvements to crash_triage.sh, as suggested by Jakub Wilk. 2690*08b48e0bSAndroid Build Coastguard Worker 2691*08b48e0bSAndroid Build Coastguard Worker### Version 0.85b: 2692*08b48e0bSAndroid Build Coastguard Worker 2693*08b48e0bSAndroid Build Coastguard Worker - Fixed the CPU counting code - no sysctlbyname() on OpenBSD, d'oh. Bug 2694*08b48e0bSAndroid Build Coastguard Worker reported by Daniel Dickman. 2695*08b48e0bSAndroid Build Coastguard Worker 2696*08b48e0bSAndroid Build Coastguard Worker - Made a slight correction to error messages - the advice on testing 2697*08b48e0bSAndroid Build Coastguard Worker with ulimit was a tiny bit off by a factor of 1024. 2698*08b48e0bSAndroid Build Coastguard Worker 2699*08b48e0bSAndroid Build Coastguard Worker### Version 0.84b: 2700*08b48e0bSAndroid Build Coastguard Worker 2701*08b48e0bSAndroid Build Coastguard Worker - Added support for the CPU widget on some non-Linux platforms (I hope). 2702*08b48e0bSAndroid Build Coastguard Worker Based on feedback from Ryan Govostes. 2703*08b48e0bSAndroid Build Coastguard Worker 2704*08b48e0bSAndroid Build Coastguard Worker - Cleaned up the changelog (very meta). 2705*08b48e0bSAndroid Build Coastguard Worker 2706*08b48e0bSAndroid Build Coastguard Worker### Version 0.83b: 2707*08b48e0bSAndroid Build Coastguard Worker 2708*08b48e0bSAndroid Build Coastguard Worker - Added examples/clang_asm_normalize/ and related notes in 2709*08b48e0bSAndroid Build Coastguard Worker env_variables.txt and afl-as.c. Thanks to Ryan Govostes for the idea. 2710*08b48e0bSAndroid Build Coastguard Worker 2711*08b48e0bSAndroid Build Coastguard Worker - Added advice on hardware utilization in README. 2712*08b48e0bSAndroid Build Coastguard Worker 2713*08b48e0bSAndroid Build Coastguard Worker### Version 0.82b: 2714*08b48e0bSAndroid Build Coastguard Worker 2715*08b48e0bSAndroid Build Coastguard Worker - Made additional fixes for Xcode support, juggling -Q and -q flags. Thanks to 2716*08b48e0bSAndroid Build Coastguard Worker Ryan Govostes. 2717*08b48e0bSAndroid Build Coastguard Worker 2718*08b48e0bSAndroid Build Coastguard Worker - Added a check for __asm__ blocks and switches to .intel_syntax in assembly. 2719*08b48e0bSAndroid Build Coastguard Worker Based on feedback from Ryan Govostes. 2720*08b48e0bSAndroid Build Coastguard Worker 2721*08b48e0bSAndroid Build Coastguard Worker### Version 0.81b: 2722*08b48e0bSAndroid Build Coastguard Worker 2723*08b48e0bSAndroid Build Coastguard Worker - A workaround for Xcode 6 as -Q flag glitch. Spotted by Ryan Govostes. 2724*08b48e0bSAndroid Build Coastguard Worker 2725*08b48e0bSAndroid Build Coastguard Worker - Improved Solaris build instructions, as suggested by Martin Carpenter. 2726*08b48e0bSAndroid Build Coastguard Worker 2727*08b48e0bSAndroid Build Coastguard Worker - Fix for a slightly busted path scoring conditional. Minor practical impact. 2728*08b48e0bSAndroid Build Coastguard Worker 2729*08b48e0bSAndroid Build Coastguard Worker### Version 0.80b: 2730*08b48e0bSAndroid Build Coastguard Worker 2731*08b48e0bSAndroid Build Coastguard Worker - Added a check for $PATH-induced loops. Problem noticed by Kartik Agaram. 2732*08b48e0bSAndroid Build Coastguard Worker 2733*08b48e0bSAndroid Build Coastguard Worker - Added AFL_KEEP_ASSEMBLY for easier troubleshooting. 2734*08b48e0bSAndroid Build Coastguard Worker 2735*08b48e0bSAndroid Build Coastguard Worker - Added an override for AFL_USE_ASAN if set at AFL compile time. Requested by 2736*08b48e0bSAndroid Build Coastguard Worker Hanno Boeck. 2737*08b48e0bSAndroid Build Coastguard Worker 2738*08b48e0bSAndroid Build Coastguard Worker### Version 0.79b: 2739*08b48e0bSAndroid Build Coastguard Worker 2740*08b48e0bSAndroid Build Coastguard Worker - Made minor adjustments to path skipping logic. 2741*08b48e0bSAndroid Build Coastguard Worker 2742*08b48e0bSAndroid Build Coastguard Worker - Made several documentation updates to reflect the path selection changes 2743*08b48e0bSAndroid Build Coastguard Worker made in 0.78b. 2744*08b48e0bSAndroid Build Coastguard Worker 2745*08b48e0bSAndroid Build Coastguard Worker### Version 0.78b: 2746*08b48e0bSAndroid Build Coastguard Worker 2747*08b48e0bSAndroid Build Coastguard Worker - Added a CPU governor check. Bug report from Joe Zbiciak. 2748*08b48e0bSAndroid Build Coastguard Worker 2749*08b48e0bSAndroid Build Coastguard Worker - Favored paths are now selected strictly based on new edges, not hit 2750*08b48e0bSAndroid Build Coastguard Worker counts. This speeds up the first pass by a factor of 3-6x without 2751*08b48e0bSAndroid Build Coastguard Worker significantly impacting ultimate coverage (tested with libgif, libpng, 2752*08b48e0bSAndroid Build Coastguard Worker libjpeg). 2753*08b48e0bSAndroid Build Coastguard Worker 2754*08b48e0bSAndroid Build Coastguard Worker It also allows some performance & memory usage improvements by making 2755*08b48e0bSAndroid Build Coastguard Worker some of the in-memory bitmaps much smaller. 2756*08b48e0bSAndroid Build Coastguard Worker 2757*08b48e0bSAndroid Build Coastguard Worker - Made multiple significant performance improvements to bitmap checking 2758*08b48e0bSAndroid Build Coastguard Worker functions, plus switched to a faster hash. 2759*08b48e0bSAndroid Build Coastguard Worker 2760*08b48e0bSAndroid Build Coastguard Worker - Owing largely to these optimizations, bumped the size of the bitmap to 2761*08b48e0bSAndroid Build Coastguard Worker 64k and added a warning to detect older binaries that rely on smaller 2762*08b48e0bSAndroid Build Coastguard Worker bitmaps. 2763*08b48e0bSAndroid Build Coastguard Worker 2764*08b48e0bSAndroid Build Coastguard Worker### Version 0.77b: 2765*08b48e0bSAndroid Build Coastguard Worker 2766*08b48e0bSAndroid Build Coastguard Worker - Added AFL_SKIP_CHECKS to bypass binary checks when really warranted. 2767*08b48e0bSAndroid Build Coastguard Worker Feature requested by Jakub Wilk. 2768*08b48e0bSAndroid Build Coastguard Worker 2769*08b48e0bSAndroid Build Coastguard Worker - Fixed a couple of typos. 2770*08b48e0bSAndroid Build Coastguard Worker 2771*08b48e0bSAndroid Build Coastguard Worker - Added a warning for runs that are aborted early on. 2772*08b48e0bSAndroid Build Coastguard Worker 2773*08b48e0bSAndroid Build Coastguard Worker### Version 0.76b: 2774*08b48e0bSAndroid Build Coastguard Worker 2775*08b48e0bSAndroid Build Coastguard Worker - Incorporated another signal handling fix for Solaris. Suggestion 2776*08b48e0bSAndroid Build Coastguard Worker submitted by Martin Carpenter. 2777*08b48e0bSAndroid Build Coastguard Worker 2778*08b48e0bSAndroid Build Coastguard Worker### Version 0.75b: 2779*08b48e0bSAndroid Build Coastguard Worker 2780*08b48e0bSAndroid Build Coastguard Worker - Implemented a slightly more "elegant" kludge for the %llu glitch (see 2781*08b48e0bSAndroid Build Coastguard Worker types.h). 2782*08b48e0bSAndroid Build Coastguard Worker 2783*08b48e0bSAndroid Build Coastguard Worker - Relaxed CPU load warnings to stay in sync with reality. 2784*08b48e0bSAndroid Build Coastguard Worker 2785*08b48e0bSAndroid Build Coastguard Worker### Version 0.74b: 2786*08b48e0bSAndroid Build Coastguard Worker 2787*08b48e0bSAndroid Build Coastguard Worker - Switched to more responsive exec speed averages and better UI speed 2788*08b48e0bSAndroid Build Coastguard Worker scaling. 2789*08b48e0bSAndroid Build Coastguard Worker 2790*08b48e0bSAndroid Build Coastguard Worker - Fixed a bug with interrupted reads on Solaris. Issue spotted by Martin 2791*08b48e0bSAndroid Build Coastguard Worker Carpenter. 2792*08b48e0bSAndroid Build Coastguard Worker 2793*08b48e0bSAndroid Build Coastguard Worker### Version 0.73b: 2794*08b48e0bSAndroid Build Coastguard Worker 2795*08b48e0bSAndroid Build Coastguard Worker - Fixed a stray memcpy() instead of memmove() on overlapping buffers. 2796*08b48e0bSAndroid Build Coastguard Worker Mostly harmless but still dumb. Mistake spotted thanks to David Higgs. 2797*08b48e0bSAndroid Build Coastguard Worker 2798*08b48e0bSAndroid Build Coastguard Worker### Version 0.72b: 2799*08b48e0bSAndroid Build Coastguard Worker 2800*08b48e0bSAndroid Build Coastguard Worker - Bumped map size up to 32k. You may want to recompile instrumented 2801*08b48e0bSAndroid Build Coastguard Worker binaries (but nothing horrible will happen if you don't). 2802*08b48e0bSAndroid Build Coastguard Worker 2803*08b48e0bSAndroid Build Coastguard Worker - Made huge performance improvements for bit-counting functions. 2804*08b48e0bSAndroid Build Coastguard Worker 2805*08b48e0bSAndroid Build Coastguard Worker - Default optimizations now include -funroll-loops. This should have 2806*08b48e0bSAndroid Build Coastguard Worker interesting effects on the instrumentation. Frankly, I'm just going to 2807*08b48e0bSAndroid Build Coastguard Worker ship it and see what happens next. I have a good feeling about this. 2808*08b48e0bSAndroid Build Coastguard Worker 2809*08b48e0bSAndroid Build Coastguard Worker - Made a fix for stack alignment crash on MacOS X 10.10; looks like the 2810*08b48e0bSAndroid Build Coastguard Worker rhetorical question in the comments in afl-as.h has been answered. 2811*08b48e0bSAndroid Build Coastguard Worker Tracked down by Mudge Zatko. 2812*08b48e0bSAndroid Build Coastguard Worker 2813*08b48e0bSAndroid Build Coastguard Worker### Version 0.71b: 2814*08b48e0bSAndroid Build Coastguard Worker 2815*08b48e0bSAndroid Build Coastguard Worker - Added a fix for the nonsensical MacOS ELF check. Spotted by Mudge Zatko. 2816*08b48e0bSAndroid Build Coastguard Worker 2817*08b48e0bSAndroid Build Coastguard Worker - Made some improvements to ASAN checks. 2818*08b48e0bSAndroid Build Coastguard Worker 2819*08b48e0bSAndroid Build Coastguard Worker### Version 0.70b: 2820*08b48e0bSAndroid Build Coastguard Worker 2821*08b48e0bSAndroid Build Coastguard Worker - Added explicit detection of ASANified binaries. 2822*08b48e0bSAndroid Build Coastguard Worker 2823*08b48e0bSAndroid Build Coastguard Worker - Fixed compilation issues on Solaris. Reported by Martin Carpenter. 2824*08b48e0bSAndroid Build Coastguard Worker 2825*08b48e0bSAndroid Build Coastguard Worker### Version 0.69b: 2826*08b48e0bSAndroid Build Coastguard Worker 2827*08b48e0bSAndroid Build Coastguard Worker - Improved the detection of non-instrumented binaries. 2828*08b48e0bSAndroid Build Coastguard Worker 2829*08b48e0bSAndroid Build Coastguard Worker - Made the crash counter in -C mode accurate. 2830*08b48e0bSAndroid Build Coastguard Worker 2831*08b48e0bSAndroid Build Coastguard Worker - Fixed an obscure install bug that made afl-as non-functional with the tool 2832*08b48e0bSAndroid Build Coastguard Worker installed to /usr/bin instead of /usr/local/bin. Found by Florian Kiersch. 2833*08b48e0bSAndroid Build Coastguard Worker 2834*08b48e0bSAndroid Build Coastguard Worker - Fixed for a cosmetic SIGFPE when Ctrl-C is pressed while the fork server 2835*08b48e0bSAndroid Build Coastguard Worker is spinning up. 2836*08b48e0bSAndroid Build Coastguard Worker 2837*08b48e0bSAndroid Build Coastguard Worker### Version 0.68b: 2838*08b48e0bSAndroid Build Coastguard Worker 2839*08b48e0bSAndroid Build Coastguard Worker - Added crash exploration mode! Woot! 2840*08b48e0bSAndroid Build Coastguard Worker 2841*08b48e0bSAndroid Build Coastguard Worker### Version 0.67b: 2842*08b48e0bSAndroid Build Coastguard Worker 2843*08b48e0bSAndroid Build Coastguard Worker - Fixed several more typos, the project is now cartified 100% typo-free. 2844*08b48e0bSAndroid Build Coastguard Worker Thanks to Thomas Jarosch and Jakub Wilk. 2845*08b48e0bSAndroid Build Coastguard Worker 2846*08b48e0bSAndroid Build Coastguard Worker - Made a change to write fuzzer_stats early on. 2847*08b48e0bSAndroid Build Coastguard Worker 2848*08b48e0bSAndroid Build Coastguard Worker - Fixed a glitch when (not!) running on MacOS X as root. Spotted by Tobias 2849*08b48e0bSAndroid Build Coastguard Worker Ospelt. 2850*08b48e0bSAndroid Build Coastguard Worker 2851*08b48e0bSAndroid Build Coastguard Worker - Made it possible to override -O3 in Makefile. Suggested by Jakub Wilk. 2852*08b48e0bSAndroid Build Coastguard Worker 2853*08b48e0bSAndroid Build Coastguard Worker### Version 0.66b: 2854*08b48e0bSAndroid Build Coastguard Worker 2855*08b48e0bSAndroid Build Coastguard Worker - Fixed a very obscure issue with build systems that use gcc as an assembler 2856*08b48e0bSAndroid Build Coastguard Worker for hand-written .s files; this would confuse afl-as. Affected nss, reported 2857*08b48e0bSAndroid Build Coastguard Worker by Hanno Boeck. 2858*08b48e0bSAndroid Build Coastguard Worker 2859*08b48e0bSAndroid Build Coastguard Worker - Fixed a bug when cleaning up synchronized fuzzer output dirs. Issue reported 2860*08b48e0bSAndroid Build Coastguard Worker by Thomas Jarosch. 2861*08b48e0bSAndroid Build Coastguard Worker 2862*08b48e0bSAndroid Build Coastguard Worker### Version 0.65b: 2863*08b48e0bSAndroid Build Coastguard Worker 2864*08b48e0bSAndroid Build Coastguard Worker - Cleaned up shell printf escape codes in Makefile. Reported by Jakub Wilk. 2865*08b48e0bSAndroid Build Coastguard Worker 2866*08b48e0bSAndroid Build Coastguard Worker - Added more color to fuzzer_stats, provided short documentation of the file 2867*08b48e0bSAndroid Build Coastguard Worker format, and made several other stats-related improvements. 2868*08b48e0bSAndroid Build Coastguard Worker 2869*08b48e0bSAndroid Build Coastguard Worker### Version 0.64b: 2870*08b48e0bSAndroid Build Coastguard Worker 2871*08b48e0bSAndroid Build Coastguard Worker - Enabled GCC support on MacOS X. 2872*08b48e0bSAndroid Build Coastguard Worker 2873*08b48e0bSAndroid Build Coastguard Worker### Version 0.63b: 2874*08b48e0bSAndroid Build Coastguard Worker 2875*08b48e0bSAndroid Build Coastguard Worker - Provided a new, simplified way to pass data in files (@@). See README. 2876*08b48e0bSAndroid Build Coastguard Worker 2877*08b48e0bSAndroid Build Coastguard Worker - Made additional fixes for 64-bit MacOS X, working around a crashing bug in 2878*08b48e0bSAndroid Build Coastguard Worker their linker (umpf) and several other things. It's alive! 2879*08b48e0bSAndroid Build Coastguard Worker 2880*08b48e0bSAndroid Build Coastguard Worker - Added a minor workaround for a bug in 64-bit FreeBSD (clang -m32 -g doesn't 2881*08b48e0bSAndroid Build Coastguard Worker work on that platform, but clang -m32 does, so we no longer insert -g). 2882*08b48e0bSAndroid Build Coastguard Worker 2883*08b48e0bSAndroid Build Coastguard Worker - Added a build-time warning for inverse video terminals and better 2884*08b48e0bSAndroid Build Coastguard Worker instructions in status_screen.txt. 2885*08b48e0bSAndroid Build Coastguard Worker 2886*08b48e0bSAndroid Build Coastguard Worker### Version 0.62b: 2887*08b48e0bSAndroid Build Coastguard Worker 2888*08b48e0bSAndroid Build Coastguard Worker - Made minor improvements to the allocator, as suggested by Tobias Ospelt. 2889*08b48e0bSAndroid Build Coastguard Worker 2890*08b48e0bSAndroid Build Coastguard Worker - Added example instrumented memcmp() in examples/instrumented_cmp. 2891*08b48e0bSAndroid Build Coastguard Worker 2892*08b48e0bSAndroid Build Coastguard Worker - Added a speculative fix for MacOS X (clang detection, again). 2893*08b48e0bSAndroid Build Coastguard Worker 2894*08b48e0bSAndroid Build Coastguard Worker - Fixed typos in parallel_fuzzing.txt. Problems spotted by Thomas Jarosch. 2895*08b48e0bSAndroid Build Coastguard Worker 2896*08b48e0bSAndroid Build Coastguard Worker### Version 0.61b: 2897*08b48e0bSAndroid Build Coastguard Worker 2898*08b48e0bSAndroid Build Coastguard Worker - Fixed a minor issue with clang detection on systems with a clang cc 2899*08b48e0bSAndroid Build Coastguard Worker wrapper, so that afl-gcc doesn't confuse it with GCC. 2900*08b48e0bSAndroid Build Coastguard Worker 2901*08b48e0bSAndroid Build Coastguard Worker - Made cosmetic improvements to docs and to the CPU load indicator. 2902*08b48e0bSAndroid Build Coastguard Worker 2903*08b48e0bSAndroid Build Coastguard Worker - Fixed a glitch with crash removal (README.txt left behind, d'oh). 2904*08b48e0bSAndroid Build Coastguard Worker 2905*08b48e0bSAndroid Build Coastguard Worker### Version 0.60b: 2906*08b48e0bSAndroid Build Coastguard Worker 2907*08b48e0bSAndroid Build Coastguard Worker - Fixed problems with jump tables generated by exotic versions of GCC. This 2908*08b48e0bSAndroid Build Coastguard Worker solves an outstanding problem on OpenBSD when using afl-gcc + PIE (not 2909*08b48e0bSAndroid Build Coastguard Worker present with afl-clang). 2910*08b48e0bSAndroid Build Coastguard Worker 2911*08b48e0bSAndroid Build Coastguard Worker - Fixed permissions on one of the sample archives. 2912*08b48e0bSAndroid Build Coastguard Worker 2913*08b48e0bSAndroid Build Coastguard Worker - Added a lahf / sahf workaround for OpenBSD (their assembler doesn't know 2914*08b48e0bSAndroid Build Coastguard Worker about these opcodes). 2915*08b48e0bSAndroid Build Coastguard Worker 2916*08b48e0bSAndroid Build Coastguard Worker - Added docs/INSTALL. 2917*08b48e0bSAndroid Build Coastguard Worker 2918*08b48e0bSAndroid Build Coastguard Worker### Version 0.59b: 2919*08b48e0bSAndroid Build Coastguard Worker 2920*08b48e0bSAndroid Build Coastguard Worker - Modified 'make install' to also install test cases. 2921*08b48e0bSAndroid Build Coastguard Worker 2922*08b48e0bSAndroid Build Coastguard Worker - Provided better pointers to installed README in afl-fuzz. 2923*08b48e0bSAndroid Build Coastguard Worker 2924*08b48e0bSAndroid Build Coastguard Worker - More work on RLIMIT_AS for OpenBSD. 2925*08b48e0bSAndroid Build Coastguard Worker 2926*08b48e0bSAndroid Build Coastguard Worker### Version 0.58b: 2927*08b48e0bSAndroid Build Coastguard Worker 2928*08b48e0bSAndroid Build Coastguard Worker - Added a core count check on Linux. 2929*08b48e0bSAndroid Build Coastguard Worker 2930*08b48e0bSAndroid Build Coastguard Worker - Refined the code for the lack-of-RLIMIT_AS case on OpenBSD. 2931*08b48e0bSAndroid Build Coastguard Worker 2932*08b48e0bSAndroid Build Coastguard Worker - Added a rudimentary CPU utilization meter to help with optimal loading. 2933*08b48e0bSAndroid Build Coastguard Worker 2934*08b48e0bSAndroid Build Coastguard Worker### Version 0.57b: 2935*08b48e0bSAndroid Build Coastguard Worker 2936*08b48e0bSAndroid Build Coastguard Worker - Made fixes to support FreeBSD and OpenBSD: use_64bit is now inferred if not 2937*08b48e0bSAndroid Build Coastguard Worker explicitly specified when calling afl-as, and RLIMIT_AS is behind an #ifdef. 2938*08b48e0bSAndroid Build Coastguard Worker Thanks to Fabian Keil and Jonathan Gray for helping troubleshoot this. 2939*08b48e0bSAndroid Build Coastguard Worker 2940*08b48e0bSAndroid Build Coastguard Worker - Modified 'make install' to also install docs (in /usr/local/share/doc/afl). 2941*08b48e0bSAndroid Build Coastguard Worker 2942*08b48e0bSAndroid Build Coastguard Worker - Fixed a typo in status_screen.txt. 2943*08b48e0bSAndroid Build Coastguard Worker 2944*08b48e0bSAndroid Build Coastguard Worker - Made a couple of Makefile improvements as proposed by Jakub Wilk. 2945*08b48e0bSAndroid Build Coastguard Worker 2946*08b48e0bSAndroid Build Coastguard Worker### Version 0.56b: 2947*08b48e0bSAndroid Build Coastguard Worker 2948*08b48e0bSAndroid Build Coastguard Worker - Added probabilistic instrumentation density reduction in ASAN mode. This 2949*08b48e0bSAndroid Build Coastguard Worker compensates for ASAN-specific branches in a crude but workable way. 2950*08b48e0bSAndroid Build Coastguard Worker 2951*08b48e0bSAndroid Build Coastguard Worker - Updated notes_for_asan.txt. 2952*08b48e0bSAndroid Build Coastguard Worker 2953*08b48e0bSAndroid Build Coastguard Worker### Version 0.55b: 2954*08b48e0bSAndroid Build Coastguard Worker 2955*08b48e0bSAndroid Build Coastguard Worker - Implemented smarter out_dir behavior, automatically deleting directories 2956*08b48e0bSAndroid Build Coastguard Worker that don't contain anything of special value. Requested by several folks, 2957*08b48e0bSAndroid Build Coastguard Worker including Hanno Boeck. 2958*08b48e0bSAndroid Build Coastguard Worker 2959*08b48e0bSAndroid Build Coastguard Worker - Added more detail in fuzzer_stats (start time, run time, fuzzer PID). 2960*08b48e0bSAndroid Build Coastguard Worker 2961*08b48e0bSAndroid Build Coastguard Worker - Implemented support for configurable install prefixes in Makefile 2962*08b48e0bSAndroid Build Coastguard Worker ($PREFIX), as requested by Luca Barbato. 2963*08b48e0bSAndroid Build Coastguard Worker 2964*08b48e0bSAndroid Build Coastguard Worker - Made it possible to resume by doing -i <out_dir>, without having to specify 2965*08b48e0bSAndroid Build Coastguard Worker -i <out_dir>/queue/. 2966*08b48e0bSAndroid Build Coastguard Worker 2967*08b48e0bSAndroid Build Coastguard Worker### Version 0.54b: 2968*08b48e0bSAndroid Build Coastguard Worker 2969*08b48e0bSAndroid Build Coastguard Worker - Added a fix for -Wformat warning messages (oops, I thought this had been in 2970*08b48e0bSAndroid Build Coastguard Worker place for a while). 2971*08b48e0bSAndroid Build Coastguard Worker 2972*08b48e0bSAndroid Build Coastguard Worker### Version 0.53b: 2973*08b48e0bSAndroid Build Coastguard Worker 2974*08b48e0bSAndroid Build Coastguard Worker - Redesigned the crash & hang duplicate detection code to better deal with 2975*08b48e0bSAndroid Build Coastguard Worker fault conditions that can be reached in a multitude of ways. 2976*08b48e0bSAndroid Build Coastguard Worker 2977*08b48e0bSAndroid Build Coastguard Worker The old approach could be compared to hashing stack traces to de-dupe 2978*08b48e0bSAndroid Build Coastguard Worker crashes, a method prone to crash count inflation. The alternative I 2979*08b48e0bSAndroid Build Coastguard Worker wanted to avoid would be equivalent to just looking at crash %eip, 2980*08b48e0bSAndroid Build Coastguard Worker which can have false negatives in common functions such as memcpy(). 2981*08b48e0bSAndroid Build Coastguard Worker 2982*08b48e0bSAndroid Build Coastguard Worker The middle ground currently used in afl-fuzz can be compared to looking 2983*08b48e0bSAndroid Build Coastguard Worker at every line item in the stack trace and tagging crashes as unique if 2984*08b48e0bSAndroid Build Coastguard Worker we see any function name that we haven't seen before (or if something that 2985*08b48e0bSAndroid Build Coastguard Worker we have *always* seen there suddenly disappears). We do the comparison 2986*08b48e0bSAndroid Build Coastguard Worker without paying any attention to ordering or hit counts. This can still 2987*08b48e0bSAndroid Build Coastguard Worker cause some crash inflation early on, but the problem will quickly taper 2988*08b48e0bSAndroid Build Coastguard Worker off. So, you may get 20 dupes instead of 5,000. 2989*08b48e0bSAndroid Build Coastguard Worker 2990*08b48e0bSAndroid Build Coastguard Worker - Added a fix for harmless but absurd trim ratios shown if the first exec in 2991*08b48e0bSAndroid Build Coastguard Worker the trimmer timed out. Spotted by @EspenGx. 2992*08b48e0bSAndroid Build Coastguard Worker 2993*08b48e0bSAndroid Build Coastguard Worker### Version 0.52b: 2994*08b48e0bSAndroid Build Coastguard Worker 2995*08b48e0bSAndroid Build Coastguard Worker - Added a quick summary of the contents in examples/. 2996*08b48e0bSAndroid Build Coastguard Worker 2997*08b48e0bSAndroid Build Coastguard Worker - Made a fix to the process of writing fuzzer_stats. 2998*08b48e0bSAndroid Build Coastguard Worker 2999*08b48e0bSAndroid Build Coastguard Worker - Slightly reorganized the .state/ directory, now recording redundant paths, 3000*08b48e0bSAndroid Build Coastguard Worker too. Note that this breaks the ability to properly resume older sessions 3001*08b48e0bSAndroid Build Coastguard Worker - sorry about that. 3002*08b48e0bSAndroid Build Coastguard Worker 3003*08b48e0bSAndroid Build Coastguard Worker (To fix this, simply move <out_dir>/.state/* from an older run 3004*08b48e0bSAndroid Build Coastguard Worker to <out_dir>/.state/deterministic_done/*.) 3005*08b48e0bSAndroid Build Coastguard Worker 3006*08b48e0bSAndroid Build Coastguard Worker### Version 0.51b: 3007*08b48e0bSAndroid Build Coastguard Worker 3008*08b48e0bSAndroid Build Coastguard Worker - Changed the search order for afl-as to avoid the problem with older copies 3009*08b48e0bSAndroid Build Coastguard Worker installed system-wide; this also means that I can remove the Makefile check 3010*08b48e0bSAndroid Build Coastguard Worker for that. 3011*08b48e0bSAndroid Build Coastguard Worker 3012*08b48e0bSAndroid Build Coastguard Worker - Made it possible to set instrumentation ratio of 0%. 3013*08b48e0bSAndroid Build Coastguard Worker 3014*08b48e0bSAndroid Build Coastguard Worker - Introduced some typos, fixed others. 3015*08b48e0bSAndroid Build Coastguard Worker 3016*08b48e0bSAndroid Build Coastguard Worker - Fixed the test_prev target in Makefile, as reported by Ozzy Johnson. 3017*08b48e0bSAndroid Build Coastguard Worker 3018*08b48e0bSAndroid Build Coastguard Worker### Version 0.50b: 3019*08b48e0bSAndroid Build Coastguard Worker 3020*08b48e0bSAndroid Build Coastguard Worker - Improved the 'make install' logic, as suggested by Padraig Brady. 3021*08b48e0bSAndroid Build Coastguard Worker 3022*08b48e0bSAndroid Build Coastguard Worker - Revamped various bits of the documentation, especially around perf_tips.txt; 3023*08b48e0bSAndroid Build Coastguard Worker based on the feedback from Alexander Cherepanov. 3024*08b48e0bSAndroid Build Coastguard Worker 3025*08b48e0bSAndroid Build Coastguard Worker - Added AFL_INST_RATIO to afl-as. The only case where this comes handy is 3026*08b48e0bSAndroid Build Coastguard Worker ffmpeg, at least as far as I can tell. (Trivia: the current version of 3027*08b48e0bSAndroid Build Coastguard Worker ffmpeg ./configure also ignores CC and --cc, probably unintentionally). 3028*08b48e0bSAndroid Build Coastguard Worker 3029*08b48e0bSAndroid Build Coastguard Worker - Added documentation for all environmental variables (env_variables.txt). 3030*08b48e0bSAndroid Build Coastguard Worker 3031*08b48e0bSAndroid Build Coastguard Worker - Implemented a visual warning for excessive or insufficient bitmap density. 3032*08b48e0bSAndroid Build Coastguard Worker 3033*08b48e0bSAndroid Build Coastguard Worker - Changed afl-gcc to add -O3 by default; use AFL_DONT_OPTIMIZE if you don't 3034*08b48e0bSAndroid Build Coastguard Worker like that. Big speed gain for ffmpeg, so seems like a good idea. 3035*08b48e0bSAndroid Build Coastguard Worker 3036*08b48e0bSAndroid Build Coastguard Worker - Made a regression fix to afl-as to ignore .LBB labels in gcc mode. 3037*08b48e0bSAndroid Build Coastguard Worker 3038*08b48e0bSAndroid Build Coastguard Worker### Version 0.49b: 3039*08b48e0bSAndroid Build Coastguard Worker 3040*08b48e0bSAndroid Build Coastguard Worker - Fixed more typos, as found by Jakub Wilk. 3041*08b48e0bSAndroid Build Coastguard Worker 3042*08b48e0bSAndroid Build Coastguard Worker - Added support for clang! 3043*08b48e0bSAndroid Build Coastguard Worker 3044*08b48e0bSAndroid Build Coastguard Worker - Changed AFL_HARDEN to *not* include ASAN by default. Use AFL_USE_ASAN if 3045*08b48e0bSAndroid Build Coastguard Worker needed. The reasons for this are in notes_for_asan.txt. 3046*08b48e0bSAndroid Build Coastguard Worker 3047*08b48e0bSAndroid Build Coastguard Worker - Switched from configure auto-detection to isatty() to keep afl-as and 3048*08b48e0bSAndroid Build Coastguard Worker afl-gcc quiet. 3049*08b48e0bSAndroid Build Coastguard Worker 3050*08b48e0bSAndroid Build Coastguard Worker - Improved installation process to properly create symlinks, rather than 3051*08b48e0bSAndroid Build Coastguard Worker copies of binaries. 3052*08b48e0bSAndroid Build Coastguard Worker 3053*08b48e0bSAndroid Build Coastguard Worker### Version 0.48b: 3054*08b48e0bSAndroid Build Coastguard Worker 3055*08b48e0bSAndroid Build Coastguard Worker - Improved afl-fuzz to force-set ASAN_OPTIONS=abort_on_error=1. Otherwise, 3056*08b48e0bSAndroid Build Coastguard Worker ASAN crashes wouldn't be caught at all. Reported by Hanno Boeck. 3057*08b48e0bSAndroid Build Coastguard Worker 3058*08b48e0bSAndroid Build Coastguard Worker - Improved Makefile mkdir logic, as suggested by Hanno Boeck. 3059*08b48e0bSAndroid Build Coastguard Worker 3060*08b48e0bSAndroid Build Coastguard Worker - Improved the 64-bit instrumentation to properly save r8-r11 registers in 3061*08b48e0bSAndroid Build Coastguard Worker the x86 setup code. The old behavior could cause rare problems running 3062*08b48e0bSAndroid Build Coastguard Worker *without* instrumentation when the first function called in a particular 3063*08b48e0bSAndroid Build Coastguard Worker .o file has 5+ parameters. No impact on code running under afl-fuzz or 3064*08b48e0bSAndroid Build Coastguard Worker afl-showmap. Issue spotted by Padraig Brady. 3065*08b48e0bSAndroid Build Coastguard Worker 3066*08b48e0bSAndroid Build Coastguard Worker### Version 0.47b: 3067*08b48e0bSAndroid Build Coastguard Worker 3068*08b48e0bSAndroid Build Coastguard Worker - Fixed another Makefile bug for parallel builds of afl. Problem identified 3069*08b48e0bSAndroid Build Coastguard Worker by Richard W. M. Jones. 3070*08b48e0bSAndroid Build Coastguard Worker 3071*08b48e0bSAndroid Build Coastguard Worker - Added support for suffixes for -m. 3072*08b48e0bSAndroid Build Coastguard Worker 3073*08b48e0bSAndroid Build Coastguard Worker - Updated the documentation and added notes_for_asan.txt. Based on feedback 3074*08b48e0bSAndroid Build Coastguard Worker from Hanno Boeck, Ben Laurie, and others. 3075*08b48e0bSAndroid Build Coastguard Worker 3076*08b48e0bSAndroid Build Coastguard Worker - Moved the project to https://lcamtuf.coredump.cx/afl/. 3077*08b48e0bSAndroid Build Coastguard Worker 3078*08b48e0bSAndroid Build Coastguard Worker### Version 0.46b: 3079*08b48e0bSAndroid Build Coastguard Worker 3080*08b48e0bSAndroid Build Coastguard Worker - Cleaned up Makefile dependencies for parallel builds. Requested by 3081*08b48e0bSAndroid Build Coastguard Worker Richard W. M. Jones. 3082*08b48e0bSAndroid Build Coastguard Worker 3083*08b48e0bSAndroid Build Coastguard Worker - Added support for DESTDIR in Makefile. Once again suggested by 3084*08b48e0bSAndroid Build Coastguard Worker Richard W. M. Jones :-) 3085*08b48e0bSAndroid Build Coastguard Worker 3086*08b48e0bSAndroid Build Coastguard Worker - Removed all the USE_64BIT stuff; we now just auto-detect compilation mode. 3087*08b48e0bSAndroid Build Coastguard Worker As requested by many callers to the show. 3088*08b48e0bSAndroid Build Coastguard Worker 3089*08b48e0bSAndroid Build Coastguard Worker - Fixed rare problems with programs that use snippets of assembly and 3090*08b48e0bSAndroid Build Coastguard Worker switch between .code32 and .code64. Addresses a glitch spotted by 3091*08b48e0bSAndroid Build Coastguard Worker Hanno Boeck with compiling ToT gdb. 3092*08b48e0bSAndroid Build Coastguard Worker 3093*08b48e0bSAndroid Build Coastguard Worker### Version 0.45b: 3094*08b48e0bSAndroid Build Coastguard Worker 3095*08b48e0bSAndroid Build Coastguard Worker - Implemented a test case trimmer. Results in 20-30% size reduction for many 3096*08b48e0bSAndroid Build Coastguard Worker types of work loads, with very pronounced improvements in path discovery 3097*08b48e0bSAndroid Build Coastguard Worker speeds. 3098*08b48e0bSAndroid Build Coastguard Worker 3099*08b48e0bSAndroid Build Coastguard Worker - Added better warnings for various problems with input directories. 3100*08b48e0bSAndroid Build Coastguard Worker 3101*08b48e0bSAndroid Build Coastguard Worker - Added a Makefile warning for older copies, based on counterintuitive 3102*08b48e0bSAndroid Build Coastguard Worker behavior observed by Hovik Manucharyan. 3103*08b48e0bSAndroid Build Coastguard Worker 3104*08b48e0bSAndroid Build Coastguard Worker - Added fuzzer_stats file for status monitoring. Suggested by @dronesec. 3105*08b48e0bSAndroid Build Coastguard Worker 3106*08b48e0bSAndroid Build Coastguard Worker - Fixed moar typos, thanks to Alexander Cherepanov. 3107*08b48e0bSAndroid Build Coastguard Worker 3108*08b48e0bSAndroid Build Coastguard Worker - Implemented better warnings for ASAN memory requirements, based on calls 3109*08b48e0bSAndroid Build Coastguard Worker from several angry listeners. 3110*08b48e0bSAndroid Build Coastguard Worker 3111*08b48e0bSAndroid Build Coastguard Worker - Switched to saner behavior with non-tty stdout (less output generated, 3112*08b48e0bSAndroid Build Coastguard Worker no ANSI art). 3113*08b48e0bSAndroid Build Coastguard Worker 3114*08b48e0bSAndroid Build Coastguard Worker### Version 0.44b: 3115*08b48e0bSAndroid Build Coastguard Worker 3116*08b48e0bSAndroid Build Coastguard Worker - Added support for AFL_CC and AFL_CXX, based on a patch from Ben Laurie. 3117*08b48e0bSAndroid Build Coastguard Worker 3118*08b48e0bSAndroid Build Coastguard Worker - Replaced afl-fuzz -S -D with -M for simplicity. 3119*08b48e0bSAndroid Build Coastguard Worker 3120*08b48e0bSAndroid Build Coastguard Worker - Added a check for .section .text; lack of this prevented main() from 3121*08b48e0bSAndroid Build Coastguard Worker getting instrumented for some users. Reported by Tom Ritter. 3122*08b48e0bSAndroid Build Coastguard Worker 3123*08b48e0bSAndroid Build Coastguard Worker - Reorganized the testcases/ directory. 3124*08b48e0bSAndroid Build Coastguard Worker 3125*08b48e0bSAndroid Build Coastguard Worker - Added an extra check to confirm that the build is operational. 3126*08b48e0bSAndroid Build Coastguard Worker 3127*08b48e0bSAndroid Build Coastguard Worker - Made more consistent use of color reset codes, as suggested by Oliver 3128*08b48e0bSAndroid Build Coastguard Worker Kunz. 3129*08b48e0bSAndroid Build Coastguard Worker 3130*08b48e0bSAndroid Build Coastguard Worker### Version 0.43b: 3131*08b48e0bSAndroid Build Coastguard Worker 3132*08b48e0bSAndroid Build Coastguard Worker - Fixed a bug with 64-bit gcc -shared relocs. 3133*08b48e0bSAndroid Build Coastguard Worker 3134*08b48e0bSAndroid Build Coastguard Worker - Removed echo -e from Makefile for compatibility with dash. Suggested 3135*08b48e0bSAndroid Build Coastguard Worker by Jakub Wilk. 3136*08b48e0bSAndroid Build Coastguard Worker 3137*08b48e0bSAndroid Build Coastguard Worker - Added status_screen.txt. 3138*08b48e0bSAndroid Build Coastguard Worker 3139*08b48e0bSAndroid Build Coastguard Worker - Added examples/canvas_harness. 3140*08b48e0bSAndroid Build Coastguard Worker 3141*08b48e0bSAndroid Build Coastguard Worker - Made a minor change to the Makefile GCC check. Suggested by Hanno Boeck. 3142*08b48e0bSAndroid Build Coastguard Worker 3143*08b48e0bSAndroid Build Coastguard Worker### Version 0.42b: 3144*08b48e0bSAndroid Build Coastguard Worker 3145*08b48e0bSAndroid Build Coastguard Worker - Fixed a bug with red zone handling for 64-bit (oops!). Problem reported by 3146*08b48e0bSAndroid Build Coastguard Worker Felix Groebert. 3147*08b48e0bSAndroid Build Coastguard Worker 3148*08b48e0bSAndroid Build Coastguard Worker - Implemented horribly experimental ARM support in examples/arm_support. 3149*08b48e0bSAndroid Build Coastguard Worker 3150*08b48e0bSAndroid Build Coastguard Worker - Made several improvements to error messages. 3151*08b48e0bSAndroid Build Coastguard Worker 3152*08b48e0bSAndroid Build Coastguard Worker - Added AFL_QUIET to silence afl-gcc and afl-as when using wonky build 3153*08b48e0bSAndroid Build Coastguard Worker systems. Reported by Hanno Boeck. 3154*08b48e0bSAndroid Build Coastguard Worker 3155*08b48e0bSAndroid Build Coastguard Worker - Improved check for 64-bit compilation, plus several sanity checks 3156*08b48e0bSAndroid Build Coastguard Worker in Makefile. 3157*08b48e0bSAndroid Build Coastguard Worker 3158*08b48e0bSAndroid Build Coastguard Worker### Version 0.41b: 3159*08b48e0bSAndroid Build Coastguard Worker 3160*08b48e0bSAndroid Build Coastguard Worker - Fixed a fork served bug for processes that call execve(). 3161*08b48e0bSAndroid Build Coastguard Worker 3162*08b48e0bSAndroid Build Coastguard Worker - Made minor compatibility fixes to Makefile, afl-gcc; suggested by Jakub 3163*08b48e0bSAndroid Build Coastguard Worker Wilk. 3164*08b48e0bSAndroid Build Coastguard Worker 3165*08b48e0bSAndroid Build Coastguard Worker - Fixed triage_crashes.sh to work with the new layout of output directories. 3166*08b48e0bSAndroid Build Coastguard Worker Suggested by Jakub Wilk. 3167*08b48e0bSAndroid Build Coastguard Worker 3168*08b48e0bSAndroid Build Coastguard Worker - Made multiple performance-related improvements to the injected 3169*08b48e0bSAndroid Build Coastguard Worker instrumentation. 3170*08b48e0bSAndroid Build Coastguard Worker 3171*08b48e0bSAndroid Build Coastguard Worker - Added visual indication of the number of imported paths. 3172*08b48e0bSAndroid Build Coastguard Worker 3173*08b48e0bSAndroid Build Coastguard Worker - Fixed afl-showmap to make it work well with new instrumentation. 3174*08b48e0bSAndroid Build Coastguard Worker 3175*08b48e0bSAndroid Build Coastguard Worker - Added much better error messages for crashes when importing test cases 3176*08b48e0bSAndroid Build Coastguard Worker or otherwise calibrating the binary. 3177*08b48e0bSAndroid Build Coastguard Worker 3178*08b48e0bSAndroid Build Coastguard Worker### Version 0.40b: 3179*08b48e0bSAndroid Build Coastguard Worker 3180*08b48e0bSAndroid Build Coastguard Worker - Added support for parallelized fuzzing. Inspired by earlier patch 3181*08b48e0bSAndroid Build Coastguard Worker from Sebastian Roschke. 3182*08b48e0bSAndroid Build Coastguard Worker 3183*08b48e0bSAndroid Build Coastguard Worker - Added an example in examples/distributed_fuzzing/. 3184*08b48e0bSAndroid Build Coastguard Worker 3185*08b48e0bSAndroid Build Coastguard Worker### Version 0.39b: 3186*08b48e0bSAndroid Build Coastguard Worker 3187*08b48e0bSAndroid Build Coastguard Worker - Redesigned status screen, now 90% more spiffy. 3188*08b48e0bSAndroid Build Coastguard Worker 3189*08b48e0bSAndroid Build Coastguard Worker - Added more verbose and user-friendly messages for some common problems. 3190*08b48e0bSAndroid Build Coastguard Worker 3191*08b48e0bSAndroid Build Coastguard Worker - Modified the resumption code to reconstruct path depth. 3192*08b48e0bSAndroid Build Coastguard Worker 3193*08b48e0bSAndroid Build Coastguard Worker - Changed the code to inhibit core dumps and improve the ability to detect 3194*08b48e0bSAndroid Build Coastguard Worker SEGVs. 3195*08b48e0bSAndroid Build Coastguard Worker 3196*08b48e0bSAndroid Build Coastguard Worker - Added a check for redirection of core dumps to programs. 3197*08b48e0bSAndroid Build Coastguard Worker 3198*08b48e0bSAndroid Build Coastguard Worker - Made a minor improvement to the handling of variable paths. 3199*08b48e0bSAndroid Build Coastguard Worker 3200*08b48e0bSAndroid Build Coastguard Worker - Made additional performance tweaks to afl-fuzz, chiefly around mem limits. 3201*08b48e0bSAndroid Build Coastguard Worker 3202*08b48e0bSAndroid Build Coastguard Worker - Added performance_tips.txt. 3203*08b48e0bSAndroid Build Coastguard Worker 3204*08b48e0bSAndroid Build Coastguard Worker### Version 0.38b: 3205*08b48e0bSAndroid Build Coastguard Worker 3206*08b48e0bSAndroid Build Coastguard Worker - Fixed an fd leak and +cov tracking bug resulting from changes in 0.37b. 3207*08b48e0bSAndroid Build Coastguard Worker 3208*08b48e0bSAndroid Build Coastguard Worker - Implemented auto-scaling for screen update speed. 3209*08b48e0bSAndroid Build Coastguard Worker 3210*08b48e0bSAndroid Build Coastguard Worker - Added a visual indication when running in non-instrumented mode. 3211*08b48e0bSAndroid Build Coastguard Worker 3212*08b48e0bSAndroid Build Coastguard Worker### Version 0.37b: 3213*08b48e0bSAndroid Build Coastguard Worker 3214*08b48e0bSAndroid Build Coastguard Worker - Added fuzz state tracking for more seamless resumption of aborted 3215*08b48e0bSAndroid Build Coastguard Worker fuzzing sessions. 3216*08b48e0bSAndroid Build Coastguard Worker 3217*08b48e0bSAndroid Build Coastguard Worker - Removed the -D option, as it's no longer necessary. 3218*08b48e0bSAndroid Build Coastguard Worker 3219*08b48e0bSAndroid Build Coastguard Worker - Refactored calibration code and improved startup reporting. 3220*08b48e0bSAndroid Build Coastguard Worker 3221*08b48e0bSAndroid Build Coastguard Worker - Implemented dynamically scaled timeouts, so that you don't need to 3222*08b48e0bSAndroid Build Coastguard Worker play with -t except in some very rare cases. 3223*08b48e0bSAndroid Build Coastguard Worker 3224*08b48e0bSAndroid Build Coastguard Worker - Added visual notification for slow binaries. 3225*08b48e0bSAndroid Build Coastguard Worker 3226*08b48e0bSAndroid Build Coastguard Worker - Improved instrumentation to explicitly cover the other leg of every 3227*08b48e0bSAndroid Build Coastguard Worker branch. 3228*08b48e0bSAndroid Build Coastguard Worker 3229*08b48e0bSAndroid Build Coastguard Worker### Version 0.36b: 3230*08b48e0bSAndroid Build Coastguard Worker 3231*08b48e0bSAndroid Build Coastguard Worker - Implemented fork server support to avoid the overhead of execve(). A 3232*08b48e0bSAndroid Build Coastguard Worker nearly-verbatim design from Jann Horn; still pending part 2 that would 3233*08b48e0bSAndroid Build Coastguard Worker also skip initial setup steps (thinking about reliable heuristics now). 3234*08b48e0bSAndroid Build Coastguard Worker 3235*08b48e0bSAndroid Build Coastguard Worker - Added a check for shell scripts used as fuzz targets. 3236*08b48e0bSAndroid Build Coastguard Worker 3237*08b48e0bSAndroid Build Coastguard Worker - Added a check for fuzz jobs that don't seem to be finding anything. 3238*08b48e0bSAndroid Build Coastguard Worker 3239*08b48e0bSAndroid Build Coastguard Worker - Fixed the way IGNORE_FINDS works (was a bit broken after adding splicing 3240*08b48e0bSAndroid Build Coastguard Worker and path skip heuristics). 3241*08b48e0bSAndroid Build Coastguard Worker 3242*08b48e0bSAndroid Build Coastguard Worker### Version 0.35b: 3243*08b48e0bSAndroid Build Coastguard Worker 3244*08b48e0bSAndroid Build Coastguard Worker - Properly integrated 64-bit instrumentation into afl-as. 3245*08b48e0bSAndroid Build Coastguard Worker 3246*08b48e0bSAndroid Build Coastguard Worker### Version 0.34b: 3247*08b48e0bSAndroid Build Coastguard Worker 3248*08b48e0bSAndroid Build Coastguard Worker - Added a new exec count classifier (the working theory is that it gets 3249*08b48e0bSAndroid Build Coastguard Worker meaningful coverage with fewer test cases spewed out). 3250*08b48e0bSAndroid Build Coastguard Worker 3251*08b48e0bSAndroid Build Coastguard Worker### Version 0.33b: 3252*08b48e0bSAndroid Build Coastguard Worker 3253*08b48e0bSAndroid Build Coastguard Worker - Switched to new, somewhat experimental instrumentation that tries to 3254*08b48e0bSAndroid Build Coastguard Worker target only arcs, rather than every line. May be fragile, but is a lot 3255*08b48e0bSAndroid Build Coastguard Worker faster (2x+). 3256*08b48e0bSAndroid Build Coastguard Worker 3257*08b48e0bSAndroid Build Coastguard Worker - Made several other cosmetic fixes and typo corrections, thanks to 3258*08b48e0bSAndroid Build Coastguard Worker Jakub Wilk. 3259*08b48e0bSAndroid Build Coastguard Worker 3260*08b48e0bSAndroid Build Coastguard Worker### Version 0.32b: 3261*08b48e0bSAndroid Build Coastguard Worker 3262*08b48e0bSAndroid Build Coastguard Worker - Another take at fixing the C++ exception thing. Reported by Jakub Wilk. 3263*08b48e0bSAndroid Build Coastguard Worker 3264*08b48e0bSAndroid Build Coastguard Worker### Version 0.31b: 3265*08b48e0bSAndroid Build Coastguard Worker 3266*08b48e0bSAndroid Build Coastguard Worker - Made another fix to afl-as to address a potential problem with newer 3267*08b48e0bSAndroid Build Coastguard Worker versions of GCC (introduced in 0.28b). Thanks to Jann Horn. 3268*08b48e0bSAndroid Build Coastguard Worker 3269*08b48e0bSAndroid Build Coastguard Worker### Version 0.30b: 3270*08b48e0bSAndroid Build Coastguard Worker 3271*08b48e0bSAndroid Build Coastguard Worker - Added more detail about the underlying operations in file names. 3272*08b48e0bSAndroid Build Coastguard Worker 3273*08b48e0bSAndroid Build Coastguard Worker### Version 0.29b: 3274*08b48e0bSAndroid Build Coastguard Worker 3275*08b48e0bSAndroid Build Coastguard Worker - Made some general improvements to chunk operations. 3276*08b48e0bSAndroid Build Coastguard Worker 3277*08b48e0bSAndroid Build Coastguard Worker### Version 0.28b: 3278*08b48e0bSAndroid Build Coastguard Worker 3279*08b48e0bSAndroid Build Coastguard Worker - Fixed C++ exception handling in newer versions of GCC. Problem diagnosed 3280*08b48e0bSAndroid Build Coastguard Worker by Eberhard Mattes. 3281*08b48e0bSAndroid Build Coastguard Worker 3282*08b48e0bSAndroid Build Coastguard Worker - Fixed the handling of the overflow flag. Once again, thanks to 3283*08b48e0bSAndroid Build Coastguard Worker Eberhard Mattes. 3284*08b48e0bSAndroid Build Coastguard Worker 3285*08b48e0bSAndroid Build Coastguard Worker### Version 0.27b: 3286*08b48e0bSAndroid Build Coastguard Worker 3287*08b48e0bSAndroid Build Coastguard Worker - Added prioritization of new paths over the already-fuzzed ones. 3288*08b48e0bSAndroid Build Coastguard Worker 3289*08b48e0bSAndroid Build Coastguard Worker - Included spliced test case ID in the output file name. 3290*08b48e0bSAndroid Build Coastguard Worker 3291*08b48e0bSAndroid Build Coastguard Worker - Fixed a rare, cosmetic null ptr deref after Ctrl-C. 3292*08b48e0bSAndroid Build Coastguard Worker 3293*08b48e0bSAndroid Build Coastguard Worker - Refactored the code to make copies of test cases in the output directory. 3294*08b48e0bSAndroid Build Coastguard Worker 3295*08b48e0bSAndroid Build Coastguard Worker - Switched to better output file names, keeping track of stage and splicing 3296*08b48e0bSAndroid Build Coastguard Worker sources. 3297*08b48e0bSAndroid Build Coastguard Worker 3298*08b48e0bSAndroid Build Coastguard Worker### Version 0.26b: 3299*08b48e0bSAndroid Build Coastguard Worker 3300*08b48e0bSAndroid Build Coastguard Worker - Revamped storage of testcases, -u option removed, 3301*08b48e0bSAndroid Build Coastguard Worker 3302*08b48e0bSAndroid Build Coastguard Worker - Added a built-in effort minimizer to get rid of potentially redundant 3303*08b48e0bSAndroid Build Coastguard Worker inputs, 3304*08b48e0bSAndroid Build Coastguard Worker 3305*08b48e0bSAndroid Build Coastguard Worker - Provided a testcase count minimization script in examples/, 3306*08b48e0bSAndroid Build Coastguard Worker 3307*08b48e0bSAndroid Build Coastguard Worker - Made miscellaneous improvements to directory and file handling. 3308*08b48e0bSAndroid Build Coastguard Worker 3309*08b48e0bSAndroid Build Coastguard Worker - Fixed a bug in timeout detection. 3310*08b48e0bSAndroid Build Coastguard Worker 3311*08b48e0bSAndroid Build Coastguard Worker### Version 0.25b: 3312*08b48e0bSAndroid Build Coastguard Worker 3313*08b48e0bSAndroid Build Coastguard Worker - Improved count-based instrumentation. 3314*08b48e0bSAndroid Build Coastguard Worker 3315*08b48e0bSAndroid Build Coastguard Worker - Improved the hang deduplication logic. 3316*08b48e0bSAndroid Build Coastguard Worker 3317*08b48e0bSAndroid Build Coastguard Worker - Added -cov prefixes for test cases. 3318*08b48e0bSAndroid Build Coastguard Worker 3319*08b48e0bSAndroid Build Coastguard Worker - Switched from readdir() to scandir() + alphasort() to preserve ordering of 3320*08b48e0bSAndroid Build Coastguard Worker test cases. 3321*08b48e0bSAndroid Build Coastguard Worker 3322*08b48e0bSAndroid Build Coastguard Worker - Added a splicing strategy. 3323*08b48e0bSAndroid Build Coastguard Worker 3324*08b48e0bSAndroid Build Coastguard Worker - Made various minor UI improvements and several other bugfixes. 3325*08b48e0bSAndroid Build Coastguard Worker 3326*08b48e0bSAndroid Build Coastguard Worker### Version 0.24b: 3327*08b48e0bSAndroid Build Coastguard Worker 3328*08b48e0bSAndroid Build Coastguard Worker - Added program name to the status screen, plus the -T parameter to go with 3329*08b48e0bSAndroid Build Coastguard Worker it. 3330*08b48e0bSAndroid Build Coastguard Worker 3331*08b48e0bSAndroid Build Coastguard Worker### Version 0.23b: 3332*08b48e0bSAndroid Build Coastguard Worker 3333*08b48e0bSAndroid Build Coastguard Worker - Improved the detection of variable behaviors. 3334*08b48e0bSAndroid Build Coastguard Worker 3335*08b48e0bSAndroid Build Coastguard Worker - Added path depth tracking, 3336*08b48e0bSAndroid Build Coastguard Worker 3337*08b48e0bSAndroid Build Coastguard Worker - Improved the UI a bit, 3338*08b48e0bSAndroid Build Coastguard Worker 3339*08b48e0bSAndroid Build Coastguard Worker - Switched to simplified (XOR-based) tuple instrumentation. 3340*08b48e0bSAndroid Build Coastguard Worker 3341*08b48e0bSAndroid Build Coastguard Worker### Version 0.22b: 3342*08b48e0bSAndroid Build Coastguard Worker 3343*08b48e0bSAndroid Build Coastguard Worker - Refactored the handling of long bitflips and some swaps. 3344*08b48e0bSAndroid Build Coastguard Worker 3345*08b48e0bSAndroid Build Coastguard Worker - Fixed the handling of gcc -pipe, thanks to anonymous reporter. 3346*08b48e0bSAndroid Build Coastguard Worker 3347*08b48e0bSAndroid Build Coastguard Worker### Version 0.21b (2013-11-12): 3348*08b48e0bSAndroid Build Coastguard Worker 3349*08b48e0bSAndroid Build Coastguard Worker - Initial public release. 3350*08b48e0bSAndroid Build Coastguard Worker 3351*08b48e0bSAndroid Build Coastguard Worker - Added support for use of multiple custom mutators which can be specified using 3352*08b48e0bSAndroid Build Coastguard Worker the environment variable AFL_CUSTOM_MUTATOR_LIBRARY. 3353