about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndrea Fioraldi <andreafioraldi@gmail.com>2021-01-29 18:48:46 +0100
committerAndrea Fioraldi <andreafioraldi@gmail.com>2021-01-29 18:48:46 +0100
commitaf24d872206d50c41469321db3c7f77f265ff357 (patch)
tree3cea754801cf9a4b1dc39bf369f8509e026e7ad0
parent2e3bc3b61319cd5c153ca66af7d475de7ac962e0 (diff)
downloadafl++-af24d872206d50c41469321db3c7f77f265ff357.tar.gz
qasan readme
-rw-r--r--qemu_mode/libqasan/README.md15
1 files changed, 15 insertions, 0 deletions
diff --git a/qemu_mode/libqasan/README.md b/qemu_mode/libqasan/README.md
index 399ebeee..b5c77044 100644
--- a/qemu_mode/libqasan/README.md
+++ b/qemu_mode/libqasan/README.md
@@ -2,3 +2,18 @@
 
 This library is the injected runtime used by QEMU AddressSanitizer (QASan).
 
+The original repository is [here](https://github.com/andreafioraldi/qasan).
+
+The version embedded in qemuafl is an updated version of just the usermode part and this runtime in injected via LD_PRELOAD (so works just for dynamically linked binaries).
+
+The usage is super simple, just set the env var `AFL_USE_QASAN=1` when fuzzing in qemu mode (-Q). afl-fuzz will automatically set AFL_PRELOAD to load this library and enable the QASan instrumentation in afl-qemu-trace.
+
+For debugging purposes, we still suggest to run the original QASan as the stacktrace support for ARM (just a debug feature, it does not affect the bug finding capabilities during fuzzing) is WIP.
+
+### When I should use QASan?
+
+If your target binary is PIC x86_64, you should before give a try to [retrowrite](https://github.com/HexHive/retrowrite) for static rewriting.
+
+If it fails, or if your binary is for another architecture, or you want to use persistent and snapshot mdoe, AFL++ QASan mode is what you want/have to use.
+
+Note that the overhead of libdislocator when combined with QEMU mode is much lower but it can catch less bugs. This is a short blanket, take your choice.