A fuzzing introspection tool
This is a environment for measuring and observing the behaviors of fuzzers from inside the fuzzer itself.
This allows for comparing fuzzers without having to worry about them having different definitions of performance and coverage.
This tool provides real-time visualizations of coverage as it happens, so you can not only see what was hit, but what is being hit frequently!
It's important to note, while this tool currently mainly does visualizations, we'll likely start working on analyizing results statistically rather than eyeballing images!
To use this, simply run
cargo runin
prog_gento create a random program. This random program expects a filename as the argument once compiled which is then used as the fuzz input for the randomly generated program.
This program then reports status via shared memory to a file which can be observed and monitored in a web browser by using
coverage_server. Run
cargo runin coverage server and it will monitor the shared memory for changes on an interval, and when new changes are observed the information will be pushed over a websocket to a website which will visualize the coverage in realtime via graphviz SVG.
Run
cargo runin
prog_gento generate a random program.
Run
cargo runin
coverage_serverto monitor coverage events.
Run
python3 -m http.serverin
coverage_serverto host the coverage viewer website, and navigate to the locally hosted website.