aboutsummaryrefslogtreecommitdiff
path: root/fuzz/README.md
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2017-02-20 11:37:43 +0100
committerMarc André Tanner <mat@brain-dump.org>2017-02-20 12:20:39 +0100
commit6911290dbb577fb295e556da6fd7e4f5f7c81a8a (patch)
tree96c2f8d5581a7987c8b1f2b95392900a709c0e83 /fuzz/README.md
parentf2548fc882ec951d48193ca488c41061cf887971 (diff)
downloadvis-6911290dbb577fb295e556da6fd7e4f5f7c81a8a.tar.gz
vis-6911290dbb577fb295e556da6fd7e4f5f7c81a8a.tar.xz
test/fuzz: add fuzzing infrastructure
For now we use the american fuzzy lop in the future we might also add libFuzzer support.
Diffstat (limited to 'fuzz/README.md')
-rw-r--r--fuzz/README.md30
1 files changed, 30 insertions, 0 deletions
diff --git a/fuzz/README.md b/fuzz/README.md
new file mode 100644
index 0000000..3eabb7a
--- /dev/null
+++ b/fuzz/README.md
@@ -0,0 +1,30 @@
+Fuzzing infrastructure for low level code used by vis
+-----------------------------------------------------
+
+This directory contains some simple command line applications
+which expose core library interfaces through the standard I/O
+streams. They are intended to be used as test drivers for
+fuzzers like [AFL](http://lcamtuf.coredump.cx/afl/).
+
+Run one of the `make afl-fuzz-*` targets to start fuzzing a
+specific instrumented binary using `afl-fuzz(1)`. By default
+it will try to resume a previous fuzzing session, before
+starting a new one if that fails.
+
+The following files are used:
+
+ * `$APP-fuzzer.c` application exposing a simple text interface
+ * `fuzzer.h` common code used among different fuzzing drivers
+ * `./input/$APP/` intial test input, one file per test
+ * `./dictionaries/$APP.dict` a dictionary with valid syntax tokens
+ * `./results/$APP/` the fuzzing results are stored here
+
+See the AFL documentation for further information.
+
+In the future we might also use [libFuzzer](http://llvm.org/docs/LibFuzzer.html)
+for further fuzzing.
+
+Quick start example:
+
+ $ make afl-fuzz-text
+