diff --git a/docs/advanced-topics/ideal_integration.md b/docs/advanced-topics/ideal_integration.md index 7e1865307..b6d29e4be 100644 --- a/docs/advanced-topics/ideal_integration.md +++ b/docs/advanced-topics/ideal_integration.md @@ -112,9 +112,9 @@ Examples: For some input types, a simple dictionary of tokens used by the input language can have a dramatic impact on fuzzing efficiency. For example, when fuzzing an -XML parser, a dictionary of XML tokens is helpful. AFL has a -[collection](https://github.com/google/AFL/tree/master/dictionaries) of -dictionaries for popular data formats. Ideally, a dictionary should be +XML parser, a dictionary of XML tokens is helpful. AFL++ has a +[collection](https://github.com/AFLplusplus/AFLplusplus/tree/master/dictionaries) +of dictionaries for popular data formats. Ideally, a dictionary should be maintained alongside the fuzz target, and it must use [correct syntax](http://libfuzzer.info/#dictionaries). diff --git a/docs/faq.md b/docs/faq.md index 2ba263183..fa0826c48 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -172,11 +172,16 @@ new location [here]({{ site.baseurl }}/advanced-topics/corpora/#viewing-the-corp ## Does OSS-Fuzz support AFL or honggfuzz? -OSS-Fuzz *uses* both [AFL](https://lcamtuf.coredump.cx/afl/) and -[honggfuzz](https://github.com/google/honggfuzz) -[fuzzing engines]({{ site.baseurl }}/reference/glossary/#fuzzing-engine). -Follow the [ideal integration guide] and OSS-Fuzz will use all its fuzzing -engines on your code. +OSS-Fuzz *uses* the following +[fuzzing engines]({{ site.baseurl }}/reference/glossary/#fuzzing-engine): + +1. [libFuzzer](https://llvm.org/docs/LibFuzzer.html). +1. [AFL++](https://github.com/AFLplusplus/AFLplusplus), an improved and + well-maintained version of [AFL](https://lcamtuf.coredump.cx/afl/). +1. [Honggfuzz](https://github.com/google/honggfuzz). + +Follow the [new project guide] and OSS-Fuzz will use all its fuzzing engines +on your code. ## What are the specs on your machines? @@ -193,4 +198,5 @@ corpora generated by OSS-Fuzz. OSS-Fuzz infrastructure is fully open source have no intent to restrict the use of the artifacts produced by OSS-Fuzz. [ClusterFuzz]: https://github.com/google/clusterfuzz -[ideal integration guide]: {{ site.baseurl }}/advanced-topics/ideal-integration/ +[new project guide]: {{ site.baseurl }}/getting-started/new-project-guide/ +[ideal integration guide]: {{ site.baseurl }}/getting-started/new-project-guide/ diff --git a/docs/getting-started/new_project_guide.md b/docs/getting-started/new_project_guide.md index 3d113c9c4..d93430e3c 100644 --- a/docs/getting-started/new_project_guide.md +++ b/docs/getting-started/new_project_guide.md @@ -240,7 +240,7 @@ If your project is written in Go, check out the [Integrating a Go project]({{ si **Note:** -1. Don't assume the fuzzing engine is libFuzzer by default, because we generate builds for libFuzzer, AFL and Honggfuzz fuzzing engine configurations. Instead, link the fuzzing engine using $LIB_FUZZING_ENGINE. +1. Don't assume the fuzzing engine is libFuzzer by default, because we generate builds for libFuzzer, AFL++ and Honggfuzz fuzzing engine configurations. Instead, link the fuzzing engine using $LIB_FUZZING_ENGINE. 2. Make sure that the binary names for your [fuzz targets]({{ site.baseurl }}/reference/glossary/#fuzz-target) contain only alphanumeric characters, underscore(_) or dash(-). Otherwise, they won't run on our infrastructure. 3. Don't remove source code files. They are needed for code coverage. diff --git a/docs/index.md b/docs/index.md index fc2f9c7a9..74f1961b8 100644 --- a/docs/index.md +++ b/docs/index.md @@ -28,12 +28,12 @@ combining modern fuzzing techniques with scalable, distributed execution. [Core Infrastructure Initiative]: https://www.coreinfrastructure.org/ [OpenSSF]: https://www.openssf.org/ -We support the [libFuzzer], [AFL], and [Honggfuzz] fuzzing engines in +We support the [libFuzzer], [AFL++], and [Honggfuzz] fuzzing engines in combination with [Sanitizers], as well as [ClusterFuzz], a distributed fuzzer execution environment and reporting tool. [libFuzzer]: https://llvm.org/docs/LibFuzzer.html -[AFL]: https://lcamtuf.coredump.cx/afl/ +[AFL++]: https://github.com/AFLplusplus/AFLplusplus [Honggfuzz]: https://github.com/google/honggfuzz [Sanitizers]: https://github.com/google/sanitizers [ClusterFuzz]: https://github.com/google/clusterfuzz diff --git a/infra/base-images/base-builder/compile_afl b/infra/base-images/base-builder/compile_afl index 945aa1cae..feba5a0fc 100755 --- a/infra/base-images/base-builder/compile_afl +++ b/infra/base-images/base-builder/compile_afl @@ -15,7 +15,7 @@ # ################################################################################ -echo -n "Compiling afl to $LIB_FUZZING_ENGINE ..." +echo "Compiling afl driver to $LIB_FUZZING_ENGINE" # afl needs its special coverage flags export COVERAGE_FLAGS="-fsanitize-coverage=trace-pc-guard" @@ -29,6 +29,8 @@ ar r $LIB_FUZZING_ENGINE $WORK/afl/*.o popd > /dev/null rm -rf $WORK/afl +echo "Compiling afl++" + # Build and copy afl++ tools necessary for fuzzing. pushd $SRC/aflplusplus > /dev/null