You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AFLplusplus/src/AFLplusplus-stable/dictionaries
1LuB dbc698415f
v1.0
1 year ago
..
README.md v1.0 1 year ago
aff.dict v1.0 1 year ago
ass.dict v1.0 1 year ago
atom.dict v1.0 1 year ago
av1_dc.dict v1.0 1 year ago
bash.dict v1.0 1 year ago
bdf.dict v1.0 1 year ago
bmp.dict v1.0 1 year ago
bz2.dict v1.0 1 year ago
creole.dict v1.0 1 year ago
css.dict v1.0 1 year ago
csv.dict v1.0 1 year ago
dds.dict v1.0 1 year ago
djvu.dict v1.0 1 year ago
docommand.dict v1.0 1 year ago
exif.dict v1.0 1 year ago
fbs.dict v1.0 1 year ago
ftp.dict v1.0 1 year ago
gif.dict v1.0 1 year ago
graphviz.dict v1.0 1 year ago
heif.dict v1.0 1 year ago
hoextdown.dict v1.0 1 year ago
html_tags.dict v1.0 1 year ago
http.dict v1.0 1 year ago
icc.dict v1.0 1 year ago
iccprofile.dict v1.0 1 year ago
icns.dict v1.0 1 year ago
initfile.dict v1.0 1 year ago
jbig2.dict v1.0 1 year ago
jpeg.dict v1.0 1 year ago
jpeg2000.dict v1.0 1 year ago
js.dict v1.0 1 year ago
json.dict v1.0 1 year ago
jsonnet.dict v1.0 1 year ago
markdown.dict v1.0 1 year ago
math.dict v1.0 1 year ago
mathml.dict v1.0 1 year ago
mp4.dict v1.0 1 year ago
mysqld.dict v1.0 1 year ago
ogg.dict v1.0 1 year ago
openexr.dict v1.0 1 year ago
otf.dict v1.0 1 year ago
pbm.dict v1.0 1 year ago
pcap.dict v1.0 1 year ago
pdf.dict v1.0 1 year ago
perl.dict v1.0 1 year ago
png.dict v1.0 1 year ago
proj4.dict v1.0 1 year ago
protobuf.dict v1.0 1 year ago
ps.dict v1.0 1 year ago
psd.dict v1.0 1 year ago
regexp.dict v1.0 1 year ago
riff.dict v1.0 1 year ago
rss.dict v1.0 1 year ago
rst.dict v1.0 1 year ago
rtf.dict v1.0 1 year ago
ruby.dict v1.0 1 year ago
sas.dict v1.0 1 year ago
spss.dict v1.0 1 year ago
sql.dict v1.0 1 year ago
stata.dict v1.0 1 year ago
svg.dict v1.0 1 year ago
tex.dict v1.0 1 year ago
theme-load-fuzz.dict v1.0 1 year ago
tiff.dict v1.0 1 year ago
tokener_parse_ex.dict v1.0 1 year ago
toml.dict v1.0 1 year ago
type42.dict v1.0 1 year ago
url.dict v1.0 1 year ago
utf8.dict v1.0 1 year ago
vcf.dict v1.0 1 year ago
vhd.dict v1.0 1 year ago
vpx_dec.dict v1.0 1 year ago
wav.dict v1.0 1 year ago
webm.dict v1.0 1 year ago
webp.dict v1.0 1 year ago
wkt.dict v1.0 1 year ago
x86.dict v1.0 1 year ago
xml.dict v1.0 1 year ago
xml_UTF_16.dict v1.0 1 year ago
xml_UTF_16BE.dict v1.0 1 year ago
xml_UTF_16LE.dict v1.0 1 year ago
xpath.dict v1.0 1 year ago
xslt.dict v1.0 1 year ago
yaml.dict v1.0 1 year ago
yara.dict v1.0 1 year ago
zip.dict v1.0 1 year ago

README.md

AFL++ dictionaries

For the general instruction manual, see docs/README.md.

This subdirectory contains a set of dictionaries that can be used in conjunction with the -x option to allow the fuzzer to effortlessly explore the grammar of some of the more verbose data formats or languages.

These sets were done by Michal Zalewski, various contributors, and imported from oss-fuzz, go-fuzz and libfuzzer.

Custom dictionaries can be added at will. They should consist of a reasonably-sized set of rudimentary syntax units that the fuzzer will then try to clobber together in various ways. Snippets between 2 and 16 bytes are usually the sweet spot.

Custom dictionaries can be created in two ways:

  • By creating a new directory and placing each token in a separate file, in which case, there is no need to escape or otherwise format the data.

  • By creating a flat text file where tokens are listed one per line in the format of name="value". The alphanumeric name is ignored and can be omitted, although it is a convenient way to document the meaning of a particular token. The value must appear in quotes, with hex escaping (\xNN) applied to all non-printable, high-bit, or otherwise problematic characters (\ and " shorthands are recognized, too).

The fuzzer auto-selects the appropriate mode depending on whether the -x parameter is a file or a directory.

In the file mode, every name field can be optionally followed by @, e.g.:

keyword_foo@1 = "foo"

Such entries will be loaded only if the requested dictionary level is equal or higher than this number. The default level is zero; a higher value can be set by appending @ to the dictionary file name, like so:

-x path/to/dictionary.dct@2

Good examples of dictionaries can be found in xml.dict and png.dict.