• Home
Name Date Size #Lines LOC

..--

README.mdD06-Sep-20241.8 KiB4229

aff.dictD06-Sep-2024893 7471

ass.dictD06-Sep-20241 KiB113112

atom.dictD06-Sep-2024470 3431

av1_dc.dictD06-Sep-2024101 64

bash.dictD06-Sep-20241.8 KiB153151

bdf.dictD06-Sep-2024406 3128

bmp.dictD06-Sep-2024152 1110

bz2.dictD06-Sep-202490 43

creole.dictD06-Sep-2024227 1513

css.dictD06-Sep-20245 KiB355347

csv.dictD06-Sep-202436 76

dds.dictD06-Sep-2024578 3632

djvu.dictD06-Sep-2024238 3534

docommand.dictD06-Sep-202413.3 KiB689688

exif.dictD06-Sep-20242.4 KiB223222

fbs.dictD06-Sep-2024680 4340

ftp.dictD06-Sep-20241,020 125101

gif.dictD06-Sep-2024277 1915

graphviz.dictD06-Sep-20243.9 KiB374360

heif.dictD06-Sep-2024613 7775

hoextdown.dictD06-Sep-2024931 5049

html_tags.dictD06-Sep-20243.1 KiB161159

http.dictD06-Sep-20241.7 KiB120115

icc.dictD06-Sep-20244.3 KiB592569

iccprofile.dictD06-Sep-2024203 2624

icns.dictD06-Sep-2024344 4442

initfile.dictD06-Sep-202413.3 KiB689688

jbig2.dictD06-Sep-20244.4 KiB9992

jpeg.dictD06-Sep-2024437 2320

jpeg2000.dictD06-Sep-2024340 2322

js.dictD06-Sep-20242.2 KiB108103

json.dictD06-Sep-2024471 6252

jsonnet.dictD06-Sep-2024639 6157

markdown.dictD06-Sep-2024463 2924

math.dictD06-Sep-202495 2120

mathml.dictD06-Sep-20243.4 KiB280275

mp4.dictD06-Sep-20242.5 KiB8381

mysqld.dictD06-Sep-202412 21

ogg.dictD06-Sep-2024486 3733

openexr.dictD06-Sep-20241.2 KiB5856

otf.dictD06-Sep-20246.6 KiB964956

pbm.dictD06-Sep-2024541 3028

pcap.dictD06-Sep-2024165 117

pdf.dictD06-Sep-202416.2 KiB1,4671,465

perl.dictD06-Sep-2024214 1714

png.dictD06-Sep-2024747 3936

proj4.dictD06-Sep-20243.5 KiB250241

protobuf.dictD06-Sep-2024706 4139

ps.dictD06-Sep-20244.6 KiB434402

psd.dictD06-Sep-20241.3 KiB181171

regexp.dictD06-Sep-20243 KiB245244

riff.dictD06-Sep-2024182 1815

rss.dictD06-Sep-2024429 3230

rst.dictD06-Sep-2024385 2220

rtf.dictD06-Sep-20244.4 KiB409392

sas.dictD06-Sep-2024274 3837

spss.dictD06-Sep-2024376 4746

sql.dictD06-Sep-20248.1 KiB283276

stata.dictD06-Sep-2024179 2322

svg.dictD06-Sep-20242.1 KiB171165

tex.dictD06-Sep-20241.4 KiB123118

theme-load-fuzz.dictD06-Sep-202466 109

tiff.dictD06-Sep-20241 KiB5249

tokener_parse_ex.dictD06-Sep-202486 1918

toml.dictD06-Sep-2024388 2321

type42.dictD06-Sep-2024450 2624

url.dictD06-Sep-2024502 6359

utf8.dictD06-Sep-20241.5 KiB7452

vcf.dictD06-Sep-20241.6 KiB120116

vhd.dictD06-Sep-2024329 119

vpx_dec.dictD06-Sep-2024145 96

wav.dictD06-Sep-2024420 2623

webm.dictD06-Sep-20244.1 KiB153151

webp.dictD06-Sep-2024339 2118

wkt.dictD06-Sep-2024474 3633

x86.dictD06-Sep-202419.2 KiB1,8861,881

xml.dictD06-Sep-20241.6 KiB7368

xml_UTF_16.dictD06-Sep-20245 KiB104103

xml_UTF_16BE.dictD06-Sep-20244.2 KiB104103

xml_UTF_16LE.dictD06-Sep-20244.2 KiB104103

xpath.dictD06-Sep-2024933 6762

xslt.dictD06-Sep-20241.5 KiB119108

yaml.dictD06-Sep-20241.3 KiB8078

yara.dictD06-Sep-20242.7 KiB197183

zip.dictD06-Sep-202481 43

README.md

1# AFL++ dictionaries
2
3For the general instruction manual, see [docs/README.md](../docs/README.md).
4
5This subdirectory contains a set of dictionaries that can be used in conjunction
6with the -x option to allow the fuzzer to effortlessly explore the grammar of
7some of the more verbose data formats or languages.
8
9These sets were done by Michal Zalewski, various contributors, and imported from
10oss-fuzz, go-fuzz and libfuzzer.
11
12Custom dictionaries can be added at will. They should consist of a
13reasonably-sized set of rudimentary syntax units that the fuzzer will then try
14to clobber together in various ways. Snippets between 2 and 16 bytes are usually
15the sweet spot.
16
17Custom dictionaries can be created in two ways:
18
19  - By creating a new directory and placing each token in a separate file, in
20    which case, there is no need to escape or otherwise format the data.
21
22  - By creating a flat text file where tokens are listed one per line in the
23    format of name="value". The alphanumeric name is ignored and can be omitted,
24    although it is a convenient way to document the meaning of a particular
25    token. The value must appear in quotes, with hex escaping (\xNN) applied to
26    all non-printable, high-bit, or otherwise problematic characters (\\ and \"
27    shorthands are recognized, too).
28
29The fuzzer auto-selects the appropriate mode depending on whether the -x
30parameter is a file or a directory.
31
32In the file mode, every name field can be optionally followed by @<num>, e.g.:
33
34  `keyword_foo@1 = "foo"`
35
36Such entries will be loaded only if the requested dictionary level is equal or
37higher than this number. The default level is zero; a higher value can be set by
38appending @<num> to the dictionary file name, like so:
39
40  `-x path/to/dictionary.dct@2`
41
42Good examples of dictionaries can be found in xml.dict and png.dict.