mirror of https://github.com/google/oss-fuzz.git
1.2 KiB
1.2 KiB
Building and Running Fuzzers
This page documents building and running fuzzers as part of an OSS project.
Prerequisites
Install Docker. The toolchain setup necessary to build coverage-guided fuzzers is complicated. Docker is used to simplify distribution of the toolchain and to produce repeatable results for distributed execution.
Building Fuzzers
Building fuzzer is a two-step process:
- Building a container ready to compile fuzzers:
# in project directory; replace/define PROJECT_NAME
docker build -t ossfuzz/$PROJECT_NAME .
- Running a container:
# in project directory; replace/define PROJECT_NAME
docker run -ti -v $PWD:/src/$PROJECT_NAME -v /tmp/out:/out ossfuzz/$PROJECT_NAME
/tmp/out
will contain fuzzers.
Running Fuzzers
Fuzzers are statically linked executables and could be executed normally in Unbuntu-like environment. When Ubuntu environment is not aviable (or restricted environemnt is desirable), the fuzzer can easly be run inside docker container:
docker run -ti -v /tmp/out:/out -t ossfuzz/libfuzzer-runner /out/some_fuzzer_name --runs=100