mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-20 21:25:43 +00:00
push to stable (#1734)
* afl++ -> AFL++ * update readme * more debug * slightly different weighting algo (#1719) * better seed selection * slightly different weighting calculation * remove unnecessary memset * Add "Hangs saved" to afl-whatsup (#1717) The hangs could show long or infinite loops. This is important. Co-authored-by: van Hauser <vh@thc.org> * nits * afl-showmap: Start a only a single fork server (#1718) A forkserver is started by afl_fsrv_get_mapsize() when dynamically finding the map size. When an input directory option is specified a second fork server was also started. This commit re-arranges the inits for several forkserver struct members so that we can re-use the server started by the get_mapsize() call when not in coresight/qemu/unicorn modes and just start the server otherwise. * Source Code Coverage support for Nyx (Part 1) (#1720) * Additional source code reformatting in afl-compiler-rt * Add source code coverage support to afl-compiler-rt (for use with Nyx) * doc, code format * llvm 17 changes * more llvm 17 * add frida mode tutorial * fix effector map * docs * Should memset EFF_ALEN(len) of eff_map (#1722) * fix reallocs * fix afl-system-config for macos * afl-fuzz.c: Document -i - in --help (#1725) afl-fuzz.c: Document `-i -` in `--help`, to write that `-i` can be passed '-' to resume the prior fuzzing job. Also reference AFL_AUTORESUME so users know they can set that parameter to sidestep the issue entirely. * tritondse custom mutator attempt * tritondse fixes * update libnyx (#1727) * GNUmakefile: Update LLVM instructions (#1728) Update LLVM instructions, because versions higher than 14 are supported and to be explicit that LLD is also required * disable macos in the ci, works fine for me * fix makefile * better tritondse support * next steps for tritondse * qemuafl: Persistent mode for PPC32 targets * update qemu_mode * afl-clang-lto incomptable with -flto=thin * add @responsefile support for afl-cc --------- Co-authored-by: fxlb <devel.fx.lebail@orange.fr> Co-authored-by: Nick Potenski <nick.potenski@garmin.com> Co-authored-by: Christian Holler (:decoder) <choller@mozilla.com> Co-authored-by: lazymio <mio@lazym.io> Co-authored-by: Moshe Kaplan <me@moshekaplan.com> Co-authored-by: Sergej Schumilo <sergej@schumilo.de> Co-authored-by: Dominik Maier <domenukk@gmail.com>
This commit is contained in:
@ -280,3 +280,27 @@ Please note that the default counter implementations are not thread safe!
|
||||
|
||||
Support for thread safe counters in mode LLVM CLASSIC can be activated with
|
||||
setting `AFL_LLVM_THREADSAFE_INST=1`.
|
||||
|
||||
## 8) Source code coverage through instrumentation
|
||||
|
||||
Measuring source code coverage is a common task in fuzzing, but it is very
|
||||
difficut to do in some situations (e.g. when using snapshot fuzzing).
|
||||
|
||||
When using the `AFL_LLVM_INSTRUMENT=llvm-codecov` option, afl-cc will use
|
||||
native trace-pc-guard instrumentation but additionally select options that
|
||||
are required to utilize the instrumentation for source code coverage.
|
||||
|
||||
In particular, it will switch the instrumentation to be per basic block
|
||||
instead of instrumenting edges, disable all guard pruning and enable the
|
||||
experimental pc-table support that allows the runtime to gather 100% of
|
||||
instrumented basic blocks at start, including their locations.
|
||||
|
||||
Note: You must compile AFL with the `CODE_COVERAGE=1` option to enable the
|
||||
respective parts in the AFL compiler runtime. Support is currently only
|
||||
implemented for Nyx, but can in theory also work without Nyx.
|
||||
|
||||
Note: You might have to adjust `MAP_SIZE_POW2` in include/config.h to ensure
|
||||
that your coverage map is large enough to hold all basic blocks of your
|
||||
target program without any collisions.
|
||||
|
||||
More documentation on how to utilize this with Nyx will follow.
|
||||
|
Reference in New Issue
Block a user