This example demonstrates how to fuzz the popular jq JSON processor using Hopper.
- Clone hopper:
git clone https://github.com/Cybergenik/hopper.git && cd hopper- Build base Hopper image:
docker build -t hopper-node .- Build instrumented jq fuzzing image:
cd examples/jq
docker build -t hopper-jq .-
Prepare a corpus directory with JSON seeds (already included under
examples/jq/corpus). -
Run Hopper master, pointing to corpus, with havoc level 2 (example):
./master_docker.sh- In a seperate shell, run one or more (ex: 10) Hopper fuzz nodes with the jq binary:
./node_docker.sh 1 10Uses --stdin to feed seeds through jq's stdin.
To see how the nodes and master are being run, look in the scripts
master_docker.sh and node_docker.sh. Try changing the havoc level on the
master, see how that affects fuzzing.
-
Monitor the TUI from the Hopper master.
-
Review crashes saved by Hopper under the
HOPPER_OUTdirectory.