ziggy
ziggy
is a fuzzer manager for Rust projects which is built to:
Features will also include:
First, install ziggy
and its dependencies by running:
cargo install ziggy afl honggfuzz grcov
Here is the output of the tool's help:
``` $ cargo ziggy A multi-fuzzer management utility for all of your Rust fuzzing needs π§βπ€
Usage: cargo ziggy
Commands: init Create a new fuzzing target build Build the fuzzer and the runner binaries fuzz Fuzz targets using different fuzzers in parallel run Run a specific input or a directory of inputs to analyze backtrace minimize Minimize the input corpus using the given fuzzing target cover Generate code coverage information using the existing corpus plot Plot AFL++ data using afl-plot help Print this message or the help of the given subcommand(s)
Options: -h, --help Print help information -V, --version Print version information ```
For an example fuzz project, see the url example.
The cargo cover
command will assume two things if you run it without any arguments:
- you are working somewhere within your $HOME
directory
- your $CARGO_HOME
is also somewhere within your $HOME
directory
If one of these assumptions is incorrect, you can use the following workaround:
CARGO_HOME=$PROJECT_DIR/.cargo cargo ziggy cover --source $PROJECT_DIR
where $PROJECT_DIR
encapsulates all of the code that you want the fuzzer to cover.