The AFL++ fuzzing framework

AFL++ Overview

AFLplusplus is the daughter of the American Fuzzy Lop fuzzer by Michal “lcamtuf” Zalewski and was created initially to incorporate all the best features developed in the years for the fuzzers in the AFL family and not merged in AFL cause it is not updated since November 2017.

screen1

The AFL++ fuzzing framework includes the following:

  • A fuzzer with many mutators and configurations: afl-fuzz.
  • Different source code instrumentation modules: LLVM mode, afl-as, GCC plugin.
  • Different binary code instrumentation modules: QEMU mode, Unicorn mode, QBDI mode.
  • Utilities for testcase/corpus minimization: afl-tmin, afl-cmin.
  • Helper libraries: libtokencap, libdislocator, libcompcov.

It includes a lot of changes, optimizations and new features respect to AFL like the AFLfast power schedules, QEMU 3.1 upgrade with CompareCoverage, MOpt mutators, InsTrim instrumentation and a lot more.

See the Features page.

If you are a student or enthusiast developer and want to contribute, we have an idea list what would be cool to have! :-)

If you want to acknoledge our work and the derived works by the academic community in your paper, see the Papers page.

It is maintained by Marc “van Hauser” Heuse mh@mh-sec.de, Heiko “hexcoder-” EiƟfeldt heiko.eissfeldt@hexco.de, Andrea Fioraldi andreafioraldi@gmail.com and Dominik Maier mail@dmnk.co.

Check out the GitHub repository here.

Trophies

Sponsoring

We always need servers with many cores for testing various changes for the efficiency. If you want to sponsor a server with more than 20 cores - contact us! :-)

Current sponsors:

  • Fuzzing IO is sponsoring a 24 core server for one year, thank you! screen1