commit | b659be15494011184694a35ce02927f743fe0518 | [log] [tgz] |
---|---|---|
author | vanhauser-thc <vh@thc.org> | Tue Nov 16 13:54:31 2021 +0100 |
committer | vanhauser-thc <vh@thc.org> | Tue Nov 16 13:54:31 2021 +0100 |
tree | 18bac55c395c3463c5da2fe1b03d9456bc27695f | |
parent | 1a8d3f82f289d248aa70ce6877b66c7387f77fc9 [diff] |
add coresight to docs
Release version: 3.14c
GitHub version: 3.15a
Repository: https://github.com/AFLplusplus/AFLplusplus
AFL++ is maintained by:
Originally developed by Michał “lcamtuf” Zalewski.
AFL++ is a superior fork to Google's AFL - more speed, more and better mutations, more and better instrumentation, custom module support, etc.
You are free to copy, modify, and distribute AFL++ with attribution under the terms of the Apache-2.0 License. See the LICENSE for details.
Here is some information to get you started:
aflplusplus
setup, or use afl-clang-fast
with AFL_LLVM_CMPLOG=1
. You can find the aflplusplus
default configuration on Google's fuzzbench.To have AFL++ easily available with everything compiled, pull the image directly from the Docker Hub:
docker pull aflplusplus/aflplusplus docker run -ti -v /location/of/your/target:/src aflplusplus/aflplusplus
This image is automatically generated when a push to the stable repo happens (see docs/branches.md). You will find your target source code in /src
in the container.
To build AFL++ yourself, continue at docs/INSTALL.md.
NOTE: Before you start, please read about the common sense risks of fuzzing.
This is a quick start for fuzzing targets with the source code available. To read about the process in detail, see docs/fuzzing_expert.md.
To learn about fuzzing other targets, see:
Step-by-step quick start:
Compile the program or library to be fuzzed using afl-cc
. A common way to do this would be:
CC=/path/to/afl-cc CXX=/path/to/afl-c++ ./configure --disable-shared make clean all
Get a small but valid input file that makes sense to the program. When fuzzing verbose syntax (SQL, HTTP, etc), create a dictionary as described in dictionaries/README.md, too.
If the program reads from stdin, run afl-fuzz
like so:
./afl-fuzz -i seeds_dir -o output_dir -- \ /path/to/tested/program [...program's cmdline...]
To add a dictionary, add -x /path/to/dictionary.txt
to afl-fuzz.
If the program takes input from a file, you can put @@
in the program's command line; AFL will put an auto-generated file name in there for you.
Investigate anything shown in red in the fuzzer UI by promptly consulting docs/status_screen.md.
You will find found crashes and hangs in the subdirectories crashes/
and hangs/
in the -o output_dir
directory. You can replay the crashes by feeding them to the target, e.g.: cat output_dir/crashes/id:000000,* | /path/to/tested/program [...program's cmdline...]
You can generate cores or use gdb directly to follow up the crashes.
Questions? Concerns? Bug reports?
We have several ideas we would like to see in AFL++ to make it even better. However, we already work on so many things that we do not have the time for all the big ideas.
This can be your way to support and contribute to AFL++ - extend it to do something cool.
For everyone who wants to contribute (and send pull requests), please read our contributing guidelines before your submit.
Many of the improvements to the original AFL and AFL++ wouldn't be possible without feedback, bug reports, or patches from our contributors.
Thank you! (For people sending pull requests - please add yourself to this list :-)
Jann Horn Hanno Boeck Felix Groebert Jakub Wilk Richard W. M. Jones Alexander Cherepanov Tom Ritter Hovik Manucharyan Sebastian Roschke Eberhard Mattes Padraig Brady Ben Laurie @dronesec Luca Barbato Tobias Ospelt Thomas Jarosch Martin Carpenter Mudge Zatko Joe Zbiciak Ryan Govostes Michael Rash William Robinet Jonathan Gray Filipe Cabecinhas Nico Weber Jodie Cunningham Andrew Griffiths Parker Thompson Jonathan Neuschaefer Tyler Nighswander Ben Nagy Samir Aguiar Aidan Thornton Aleksandar Nikolich Sam Hakim Laszlo Szekeres David A. Wheeler Turo Lamminen Andreas Stieger Richard Godbee Louis Dassy teor2345 Alex Moneger Dmitry Vyukov Keegan McAllister Kostya Serebryany Richo Healey Martijn Bogaard rc0r Jonathan Foote Christian Holler Dominique Pelle Jacek Wielemborek Leo Barnes Jeremy Barnes Jeff Trull Guillaume Endignoux ilovezfs Daniel Godas-Lopez Franjo Ivancic Austin Seipp Daniel Komaromy Daniel Binderman Jonathan Metzman Vegard Nossum Jan Kneschke Kurt Roeckx Marcel Boehme Van-Thuan Pham Abhik Roychoudhury Joshua J. Drake Toby Hutton Rene Freingruber Sergey Davidoff Sami Liedes Craig Young Andrzej Jackowski Daniel Hodson Nathan Voss Dominik Maier Andrea Biondo Vincent Le Garrec Khaled Yakdan Kuang-che Wu Josephine Calliotte Konrad Welc Thomas Rooijakkers David Carlier Ruben ten Hove Joey Jiao fuzzah
If you use AFL++ in scientific work, consider citing our paper presented at WOOT'20:
Andrea Fioraldi, Dominik Maier, Heiko Eißfeldt, and Marc Heuse. “AFL++: Combining incremental steps of fuzzing research”. In 14th USENIX Workshop on Offensive Technologies (WOOT 20). USENIX Association, Aug. 2020.
@inproceedings {AFLplusplus-Woot20, author = {Andrea Fioraldi and Dominik Maier and Heiko Ei{\ss}feldt and Marc Heuse}, title = {{AFL++}: Combining Incremental Steps of Fuzzing Research}, booktitle = {14th {USENIX} Workshop on Offensive Technologies ({WOOT} 20)}, year = {2020}, publisher = {{USENIX} Association}, month = aug, }