aboutsummaryrefslogtreecommitdiff
path: root/docs/binaryonly_fuzzing.md
diff options
context:
space:
mode:
authorhexcoder <hexcoder-@users.noreply.github.com>2021-05-31 19:18:24 +0200
committerGitHub <noreply@github.com>2021-05-31 19:18:24 +0200
commit97a1f89881878db9bd6b4cd666b3447a63818dcf (patch)
tree46e844356f7cf88c08f9f9907caa11656a24f416 /docs/binaryonly_fuzzing.md
parentb246de789105750558f3d6f884ba61e54cb98441 (diff)
parent1a2da67ed0505c9ac0aa1048ba3d607f3c1aa639 (diff)
downloadafl++-97a1f89881878db9bd6b4cd666b3447a63818dcf.tar.gz
Merge branch 'dev' into going_atomic
Diffstat (limited to 'docs/binaryonly_fuzzing.md')
-rw-r--r--docs/binaryonly_fuzzing.md50
1 files changed, 29 insertions, 21 deletions
diff --git a/docs/binaryonly_fuzzing.md b/docs/binaryonly_fuzzing.md
index 787d970d..11e1dbeb 100644
--- a/docs/binaryonly_fuzzing.md
+++ b/docs/binaryonly_fuzzing.md
@@ -41,6 +41,33 @@
As it is included in afl++ this needs no URL.
+ If you like to code a customized fuzzer without much work, we highly
+ recommend to check out our sister project libafl which will support QEMU
+ too:
+ [https://github.com/AFLplusplus/LibAFL](https://github.com/AFLplusplus/LibAFL)
+
+
+## AFL FRIDA
+
+ In frida_mode you can fuzz binary-only targets easily like with QEMU,
+ with the advantage that frida_mode also works on MacOS (both intel and M1).
+
+ If you want to fuzz a binary-only library then you can fuzz it with
+ frida-gum via utils/afl_frida/, you will have to write a harness to
+ call the target function in the library, use afl-frida.c as a template.
+
+ Both come with afl++ so this needs no URL.
+
+ You can also perform remote fuzzing with frida, e.g. if you want to fuzz
+ on iPhone or Android devices, for this you can use
+ [https://github.com/ttdennis/fpicker/](https://github.com/ttdennis/fpicker/)
+ as an intermediate that uses afl++ for fuzzing.
+
+ If you like to code a customized fuzzer without much work, we highly
+ recommend to check out our sister project libafl which supports Frida too:
+ [https://github.com/AFLplusplus/LibAFL](https://github.com/AFLplusplus/LibAFL)
+ Working examples already exist :-)
+
## WINE+QEMU
@@ -62,13 +89,6 @@
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 utils/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
@@ -157,19 +177,6 @@
If anyone finds any coresight implementation for afl please ping me: vh@thc.org
-## FRIDA
-
- Frida is a dynamic instrumentation engine like Pintool, Dyninst and Dynamorio.
- What is special is that it is written Python, and scripted with Javascript.
- It is mostly used to reverse binaries on mobile phones however can be used
- everywhere.
-
- There is a WIP fuzzer available at [https://github.com/andreafioraldi/frida-fuzzer](https://github.com/andreafioraldi/frida-fuzzer)
-
- There is also an early implementation in an AFL++ test branch:
- [https://github.com/AFLplusplus/AFLplusplus/tree/frida](https://github.com/AFLplusplus/AFLplusplus/tree/frida)
-
-
## PIN & DYNAMORIO
Pintool and Dynamorio are dynamic instrumentation engines, and they can be
@@ -205,7 +212,8 @@
* QSYM: [https://github.com/sslab-gatech/qsym](https://github.com/sslab-gatech/qsym)
* Manticore: [https://github.com/trailofbits/manticore](https://github.com/trailofbits/manticore)
* S2E: [https://github.com/S2E](https://github.com/S2E)
- * Tinyinst [https://github.com/googleprojectzero/TinyInst](https://github.com/googleprojectzero/TinyInst) (Mac/Windows only)
+ * Tinyinst: [https://github.com/googleprojectzero/TinyInst](https://github.com/googleprojectzero/TinyInst) (Mac/Windows only)
+ * Jackalope: [https://github.com/googleprojectzero/Jackalope](https://github.com/googleprojectzero/Jackalope)
* ... please send me any missing that are good