## Fuzzing with AFL++ (https://aflplus.plus/) 1. In the top directory rebuild passt with AFL instrumentation, Clang and ASAN: ``` make clean AFL_USE_ASAN=1 make CC=/usr/bin/afl-clang-lto passt ``` 2. In the fuzzing/ subdirectory, build the fuzzing wrapper *without* instrumentation: ``` make fuzz-wrapper ``` 3. Run AFL++ Create `fuzzing/sync_dir` and run multiple copies of afl-fuzz. Usually you should run 1 master (-M) and as many slaves (-S) as you can. Master: ``` mkdir -p sync_dir afl-fuzz -i testcase_dir -o sync_dir -M fuzz01 ./fuzz-wrapper @@ ``` Slaves: ``` # replace fuzzNN with fuzz02, fuzz03, etc. afl-fuzz -i testcase_dir -o sync_dir -S fuzzNN ./fuzz-wrapper @@ ```