Skip to content

Getting Started

Tyson Smith edited this page Jul 3, 2019 · 15 revisions

Prerequisites

Git, Python and Pip are required. Python 2 is used in this example (Python 3 support is coming)

Install & Setup

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 Firefox build to run.

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.

Running 'no-op' example adapter

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

Clone this wiki locally