-
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)
CODE=~/code/
mkdir $CODE
mkdir $CODE/browsers
cd $CODE
FFPuppet is used for Firefox support. This is optional because FFPuppet is automatically installed by pip. If you do not plan to modify FFPuppet this step can be skipped.
git clone https://github.com/MozillaSecurity/ffpuppet.git
python -m pip install -e ffpuppet --user
Lithium is required by the test case reducer. If you do not plan to use the reducer functionality this step can be skipped.
git clone https://github.com/MozillaSecurity/lithium.git
python -m pip install -e lithium --user
git clone https://github.com/MozillaSecurity/grizzly.git
python -m pip install -e grizzly --user
Download an ASan fuzzing build via fuzzfetch - recommended.
git clone https://github.com/MozillaSecurity/fuzzfetch.git
python -m pip install -e fuzzfetch --user
python -m fuzzfetch -a -n firefox --fuzzing -o $CODE/browsers/
- or -
Download a build from Taskcluster and unpack to $CODE/browsers/firefox
.
- or -
Building Firefox is also an option.
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
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.