Skip to content

Repository files navigation

Fuzzing

Fuzzing tutorial with easy to learn labs.

Lessons

LessonkeywordLab
Lesson 00 - Fuzzing with AFL++afl-cc, afl-clang-lto, fuzzing
Lesson 01 - Use sanitizer to catch silent bugsAddressSanitizer(ASAN)
Lesson 02 - Improve code coverage using dictionarydictionary, branch constraint, split-comparison
Lesson 03 - Parallel fuzzing: combine the advantages of each fuzzerparallel fuzzing, seed pool syncing
Lesson 04 - Increase fuzzing performance by persistent modefuzzing harness, persistent mode
Lesson 05 - Write a LLVM Pass to do binary instrumentationLLVM Pass, binary instrumentation
Lesson 06 - Integrate custom LLVM Pass into AFL++custom LLVM Pass in AFL++, integration example
Lesson 07 - Playing symbolic execution on a maze with KLEEsymbolic execution, KLEE

Setup

./setup.sh
make

Environment

NameVersion
Ubuntu20.04, 22.04
LLVM (clang, lld)14.0.6
AFL++4.01c
KLEEv2.3