aboutsummaryrefslogtreecommitdiff
path: root/docs/binaryonly_fuzzing.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/binaryonly_fuzzing.md')
-rw-r--r--docs/binaryonly_fuzzing.md19
1 files changed, 19 insertions, 0 deletions
diff --git a/docs/binaryonly_fuzzing.md b/docs/binaryonly_fuzzing.md
index 7c9be418..a3d3330f 100644
--- a/docs/binaryonly_fuzzing.md
+++ b/docs/binaryonly_fuzzing.md
@@ -8,12 +8,17 @@
The following is a description of how these binaries can be fuzzed with afl++
+
## TL;DR:
qemu_mode in persistent mode is the fastest - if the stability is
high enough. Otherwise try retrowrite, afl-dyninst and if these
fail too then standard qemu_mode with AFL_ENTRYPOINT to where you need it.
+ If your target is a library use examples/afl_frida/.
+
+ If your target is non-linux then use unicorn_mode/.
+
## QEMU
@@ -57,6 +62,20 @@
As it is included in afl++ this needs no URL.
+## AFL FRIDA
+
+ If you want to fuzz a binary-only shared library then you can fuzz it with
+ frida-gum via examples/afl_frida/, you will have to write a harness to
+ call the target function in the library, use afl-frida.c as a template.
+
+
+## AFL UNTRACER
+
+ If you want to fuzz a binary-only shared library then you can fuzz it with
+ examples/afl_untracer/, use afl-untracer.c as a template.
+ It is slower than AFL FRIDA (see above).
+
+
## DYNINST
Dyninst is a binary instrumentation framework similar to Pintool and