van Hauser 0c054f520e
push to stable (#1960)
* Output afl-clang-fast stuffs only if necessary (#1912)

* afl-cc header

* afl-cc common declarations

 - Add afl-cc-state.c
 - Strip includes, find_object, debug/be_quiet/have_*/callname setting from afl-cc.c
 - Use debugf_args in main
 - Modify execvp stuffs to fit new aflcc struct

* afl-cc show usage

* afl-cc mode selecting

1. compiler_mode by callname in argv[0]
2. compiler_mode by env "AFL_CC_COMPILER"
3. compiler_mode/instrument_mode by command line options "--afl-..."
4. instrument_mode/compiler_mode by various env vars including "AFL_LLVM_INSTRUMENT"
5. final checking steps
6. print "... - mode: %s-%s\n"
7. determine real argv[0] according to compiler_mode

* afl-cc macro defs

* afl-cc linking behaviors

* afl-cc fsanitize behaviors

* afl-cc misc

* afl-cc body update

* afl-cc all-in-one

formated with custom-format.py

* nits

---------

Co-authored-by: vanhauser-thc <vh@thc.org>

* changelog

* update grammar mutator

* lto llvm 12+

* docs(custom_mutators): fix missing ':' (#1953)

* Fix broken LTO mode and response file support (#1948)

* Strip `-Wl,-no-undefined` during compilation (#1952)

Make the compiler wrapper stripping `-Wl,-no-undefined` in addition to `-Wl,--no-undefined`.
Both versions of the flag are accepted by clang and, therefore, used by building systems in the wild (e.g., samba will not build without this fix).

* Remove dead code in write_to_testcase (#1955)

The custom_mutators_count check in if case is duplicate with if condition.
The else case is custom_mutators_count == 0, neither custom_mutator_list iteration nor sent check needed.

Signed-off-by: Xeonacid <h.dwwwwww@gmail.com>

* update qemuafl

* WIP: Add ability to generate drcov trace using QEMU backend (#1956)

* Document new drcov QEMU plugin

* Add link to lightkeeper for QEMU drcov file loading

---------

Co-authored-by: Jean-Romain Garnier <jean-romain.garnier@airbus.com>

* code format

* changelog

* sleep on uid != 0 afl-system-config

* fix segv about skip_next, warn on unsupported cases of linking options (#1958)

* todos

* ensure afl-cc only allows available compiler modes

* update grammar mutator

* disable aslr on apple

* fix for arm64

---------

Signed-off-by: Xeonacid <h.dwwwwww@gmail.com>
Co-authored-by: Sonic <50692172+SonicStark@users.noreply.github.com>
Co-authored-by: Xeonacid <h.dwwwwww@gmail.com>
Co-authored-by: Nils Bars <nils.bars@rub.de>
Co-authored-by: Jean-Romain Garnier <7504819+JRomainG@users.noreply.github.com>
Co-authored-by: Jean-Romain Garnier <jean-romain.garnier@airbus.com>
2024-01-18 15:17:48 +00:00
..
2022-01-14 15:17:25 +01:00
2023-12-12 09:34:04 +01:00
2023-05-01 08:55:37 +02:00
2024-01-18 15:17:48 +00:00
2019-05-28 16:40:24 +02:00
2024-01-18 15:17:48 +00:00
2023-12-27 13:58:25 +01:00
2023-08-13 11:44:37 +02:00
2023-02-28 11:03:09 +01:00
2022-01-20 20:33:23 +01:00
2023-12-05 17:38:32 +01:00
2021-12-13 18:03:02 +01:00
2021-12-09 13:22:10 +01:00
2023-04-15 12:28:39 +02:00
2023-12-12 09:34:04 +01:00

AFL++ documentation

This is the overview of the AFL++ docs content.

For general information on AFL++, see the README.md of the repository.

Also take a look at our FAQ.md and best_practices.md.

Fuzzing targets with the source code available

You can find a quickstart for fuzzing targets with the source code available in the README.md of the repository.

For in-depth information on the steps of the fuzzing process, see fuzzing_in_depth.md or click on the following image and select a step.

Fuzzing process overview

For further information on instrumentation, see the READMEs in the instrumentation/ folder.

Instrumenting the target

For more information, click on the following image and select a step.

Instrumenting the target

Preparing the fuzzing campaign

For more information, click on the following image and select a step.

Preparing the fuzzing campaign

Fuzzing the target

For more information, click on the following image and select a step.

Fuzzing the target

Managing the fuzzing campaign

For more information, click on the following image and select a step.

Managing the fuzzing campaign

Fuzzing other targets

To learn about fuzzing other targets, see:

Additional information