Summary

1. Introduction to Fuzzing

  • What’s fuzzing?

  • Different type of fuzzing


2. Coverage-guided Fuzzing

  • Libfuzzer / cargo-fuzz

  • AFL / afl.rs

  • Honggfuzz / honggfuzz-rs

  • Exercises


3. Fuzzing workflow

  • Corpus/Input collection

  • Code coverage

  • Corpus minimization


4. Crashes Triaging

  • Bucketing

  • Crashes minimization

  • Root cause analysis

  • Debugging


5. Generation-based Fuzzing

  • Structure-aware Fuzzing

  • Grammar-based Fuzzing

  • Exercises


6. Other testing techniques

  • Property-based testing

  • Symbolic Execution

  • Formal verification


7. Advanced Fuzzing techniques

  • Differential Fuzzing

  • Exercises

  • Writing custom fuzzers


8. Exercises

  • Interesting targets

  • Fuzzing Real-world targets