Deep Dive
5 articles in Deep Dive.
When to Reach for Structure-Aware Fuzzing
Random-byte fuzzing stalls on highly-structured inputs like PDF, X.509, and ELF. When grammar-based and protocol-aware fuzzing win — and when they do not.
AFL++ Persistent Mode — Patterns That Actually Speed Up Your Fuzzing
Persistent mode is the difference between 100 execs/sec and 100,000. Anti-patterns, the LLVM mode requirements, state-reset tricks, and when fork mode wins.
AFL++ vs Honggfuzz — When to Pick Each
AFL++ and Honggfuzz are both production-grade fuzzers. They optimise for different things. Architecture, mutators, persistent mode, and how to choose.
Reading ASan, UBSan, and MSan Crash Reports — A Field Guide
How to decode AddressSanitizer, UndefinedBehaviorSanitizer, and MemorySanitizer crash reports from a fuzzer. Stack traces, shadow memory, false positives.
libFuzzer vs AFL++: Choosing the Right Fuzzer for Your Project
libFuzzer vs AFL++: how the two leading coverage-guided fuzzers differ in architecture, speed, ease of use, and which to pick for your target.