Fuzzing tutorial with easy to learn labs.
| Lesson | keyword | Lab |
|---|---|---|
| Lesson 00 - Fuzzing with AFL++ | afl-cc, afl-clang-lto, fuzzing | โ |
| Lesson 01 - Use sanitizer to catch silent bugs | AddressSanitizer(ASAN) | โ |
| Lesson 02 - Improve code coverage using dictionary | dictionary, branch constraint, split-comparison | โ |
| Lesson 03 - Parallel fuzzing: combine the advantages of each fuzzer | parallel fuzzing, seed pool syncing | โ |
| Lesson 04 - Increase fuzzing performance by persistent mode | fuzzing harness, persistent mode | โ |
| Lesson 05 - Write a LLVM Pass to do binary instrumentation | LLVM 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 KLEE | symbolic execution, KLEE | โ |
./setup.sh
make| Name | Version |
|---|---|
| Ubuntu | 20.04, 22.04 |
| LLVM (clang, lld) | 14.0.6 |
| AFL++ | 4.01c |
| KLEE | v2.3 |