fuzzing/README.md
Fuzz testing for Binwalk is done through AFL++.
At the moment code coverage is not 100% complete, but exercises the file parsing code, which is the most problematic and error-prone.
You must have a C compiler and make installed, as well as the cargo-afl crate:
sudo apt install build-essentials
cargo install cargo-afl
cargo afl build --release
You must provide an input directory containing sample files for the fuzzer to mutate.
You must provide an output directory for the fuzzer to save crash results to.
cargo afl fuzz -i input_directory -o output_directory ./target/release/fuzz