• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1---
2layout: default
3title: Corpora
4parent: Advanced topics
5nav_order: 3
6permalink: /advanced-topics/corpora/
7---
8
9# Accessing Corpora
10{: .no_toc}
11
12If you want to access the corpora that we are using for your fuzz targets
13(synthesized by the fuzzing engines), follow these steps.
14
15- TOC
16{:toc}
17---
18
19## Obtain access
20
21To get access to a project's corpora, you must be listed as the
22primary contact or as an auto cc in the project's `project.yaml` file, as described
23in the [New Project Guide]({{ site.baseurl }}/getting-started/new-project-guide/#projectyaml).
24If you don't do this, most of the links below won't work.
25
26## Install Google Cloud SDK
27
28The corpora for fuzz targets are stored on [Google Cloud
29Storage](https://cloud.google.com/storage/). To access them, you need to
30[install the gsutil
31tool](https://cloud.google.com/storage/docs/gsutil_install), which is part of
32the Google Cloud SDK. Follow the instructions on the installation page to
33login with the Google account listed in your project's `project.yaml` file.
34
35## Viewing the corpus for a fuzz target
36
37The fuzzer statistics page for your project on
38[ClusterFuzz]({{ site.baseurl }}/further-reading/clusterfuzz)
39contains a link to the Google Cloud console for your corpus under the
40**corpus_size** column. Click the link to browse and download individual test inputs in the
41corpus.
42
43![viewing_corpus](https://raw.githubusercontent.com/google/oss-fuzz/master/docs/images/viewing_corpus.png)
44
45## Downloading the corpus
46
47If you want to download the entire corpus, click the link in the **corpus_size** column, then
48copy the **Buckets** path at the top of the page:
49
50![corpus_path](https://raw.githubusercontent.com/google/oss-fuzz/master/docs/images/corpus_path.png)
51
52Copy the corpus to a directory on your
53machine by running the following command:
54
55```bash
56$ gsutil -m cp -r gs://<bucket_path> <local_directory>
57```
58Using the expat example above, this would be:
59
60```bash
61$ gsutil -m cp -r \
62    gs://expat-corpus.clusterfuzz-external.appspot.com/libFuzzer/expat_parse_fuzzer \
63    <local_directory>
64```
65
66## Corpus backups
67
68We keep daily zipped backups of your corpora. These can be accessed from the
69**corpus_backup** column of the fuzzer statistics page. Downloading these can
70be significantly faster than running `gsutil -m cp -r` on the corpus bucket.
71