-
Notifications
You must be signed in to change notification settings - Fork 37
Getting Started
Git, Python and Pip are required. Python 2 is used in this example (Python 3 support is coming)
Setup working directories
CODE=~/code/
mkdir $CODE
mkdir $CODE/browsers
cd $CODE
FFPuppet is used for Firefox support.
git clone https://github.com/MozillaSecurity/ffpuppet.git
python -m pip install -e ffpuppet --user
fuzzfetch is used to collect Firefox build for fuzzing. (Optional)
git clone https://github.com/MozillaSecurity/fuzzfetch.git
python -m pip install -e fuzzfetch --user
Lithium is required by the test case reducer (Optional)
git clone https://github.com/MozillaSecurity/lithium.git
python -m pip install -e lithium --user
Download a prefs.js file from fuzzdata
wget -O $CODE/browsers/prefs.js https://raw.githubusercontent.com/MozillaSecurity/fuzzdata/master/settings/firefox/prefs-default-e10s.js
Download and setup Grizzly
git clone https://github.com/MozillaSecurity/grizzly.git
python -m pip install -e grizzly --user
Download a ASan fuzzing build via fuzzfetch (recommended)
python -m fuzzfetch -a -n firefox --fuzzing -o $CODE/browsers/
Or Download manually from Taskcluster and unpack to $CODE/browsers/firefox
.
Building Firefox is also an option.
cd grizzly
python -m grizzly $CODE/browsers/firefox/firefox no-op -p $CODE/browsers/prefs.js
If everything is working correctly Firefox should launch with a single tab (the fuzzing harness) and a second tab should open and close rapidly. The 'no-op' adapter is meant to be an example and does not really do much. Hit Ctrl+C
to stop Grizzly at any time.
The next step is creating an adapter