xref: /aosp_15_r20/external/AFLplusplus/docs/Changelog.md (revision 08b48e0b10e97b33e7b60c5b6e2243bd915777f2)
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