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 month ago
..
README.md v1.0 1 month ago
aff.dict v1.0 1 month ago
ass.dict v1.0 1 month ago
atom.dict v1.0 1 month ago
av1_dc.dict v1.0 1 month ago
bash.dict v1.0 1 month ago
bdf.dict v1.0 1 month ago
bmp.dict v1.0 1 month ago
bz2.dict v1.0 1 month ago
creole.dict v1.0 1 month ago
css.dict v1.0 1 month ago
csv.dict v1.0 1 month ago
dds.dict v1.0 1 month ago
djvu.dict v1.0 1 month ago
docommand.dict v1.0 1 month ago
exif.dict v1.0 1 month ago
fbs.dict v1.0 1 month ago
ftp.dict v1.0 1 month ago
gif.dict v1.0 1 month ago
graphviz.dict v1.0 1 month ago
heif.dict v1.0 1 month ago
hoextdown.dict v1.0 1 month ago
html_tags.dict v1.0 1 month ago
http.dict v1.0 1 month ago
icc.dict v1.0 1 month ago
iccprofile.dict v1.0 1 month ago
icns.dict v1.0 1 month ago
initfile.dict v1.0 1 month ago
jbig2.dict v1.0 1 month ago
jpeg.dict v1.0 1 month ago
jpeg2000.dict v1.0 1 month ago
js.dict v1.0 1 month ago
json.dict v1.0 1 month ago
jsonnet.dict v1.0 1 month ago
markdown.dict v1.0 1 month ago
math.dict v1.0 1 month ago
mathml.dict v1.0 1 month ago
mp4.dict v1.0 1 month ago
mysqld.dict v1.0 1 month ago
ogg.dict v1.0 1 month ago
openexr.dict v1.0 1 month ago
otf.dict v1.0 1 month ago
pbm.dict v1.0 1 month ago
pcap.dict v1.0 1 month ago
pdf.dict v1.0 1 month ago
perl.dict v1.0 1 month ago
png.dict v1.0 1 month ago
proj4.dict v1.0 1 month ago
protobuf.dict v1.0 1 month ago
ps.dict v1.0 1 month ago
psd.dict v1.0 1 month ago
regexp.dict v1.0 1 month ago
riff.dict v1.0 1 month ago
rss.dict v1.0 1 month ago
rst.dict v1.0 1 month ago
rtf.dict v1.0 1 month ago
ruby.dict v1.0 1 month ago
sas.dict v1.0 1 month ago
spss.dict v1.0 1 month ago
sql.dict v1.0 1 month ago
stata.dict v1.0 1 month ago
svg.dict v1.0 1 month ago
tex.dict v1.0 1 month ago
theme-load-fuzz.dict v1.0 1 month ago
tiff.dict v1.0 1 month ago
tokener_parse_ex.dict v1.0 1 month ago
toml.dict v1.0 1 month ago
type42.dict v1.0 1 month ago
url.dict v1.0 1 month ago
utf8.dict v1.0 1 month ago
vcf.dict v1.0 1 month ago
vhd.dict v1.0 1 month ago
vpx_dec.dict v1.0 1 month ago
wav.dict v1.0 1 month ago
webm.dict v1.0 1 month ago
webp.dict v1.0 1 month ago
wkt.dict v1.0 1 month ago
x86.dict v1.0 1 month ago
xml.dict v1.0 1 month ago
xml_UTF_16.dict v1.0 1 month ago
xml_UTF_16BE.dict v1.0 1 month ago
xml_UTF_16LE.dict v1.0 1 month ago
xpath.dict v1.0 1 month ago
xslt.dict v1.0 1 month ago
yaml.dict v1.0 1 month ago
yara.dict v1.0 1 month ago
zip.dict v1.0 1 month 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.