aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2022-08-03 11:08:10 +0200
committerGitHub <noreply@github.com>2022-08-03 11:08:10 +0200
commita2f3c3ee519c19935039d1fe1e8b77cdc32fa375 (patch)
tree3a0007a3e8a07b58c4bef927d9c52e0043aa8466 /docs
parentc57988e672634ee98048eba6432cc1f4e377e07c (diff)
parent6056d4b140f0665c6a701cada9166379be3435ac (diff)
downloadafl++-a2f3c3ee519c19935039d1fe1e8b77cdc32fa375.tar.gz
Merge pull request #1478 from AFLplusplus/dev
Push to stable
Diffstat (limited to 'docs')
-rw-r--r--docs/Changelog.md6
-rw-r--r--docs/INSTALL.md10
-rw-r--r--docs/custom_mutators.md9
3 files changed, 22 insertions, 3 deletions
diff --git a/docs/Changelog.md b/docs/Changelog.md
index ff3907f0..05bbe827 100644
--- a/docs/Changelog.md
+++ b/docs/Changelog.md
@@ -9,6 +9,12 @@ Want to stay in the loop on major new features? Join our mailing list by
sending a mail to <afl-users+subscribe@googlegroups.com>.
### Version ++4.02a (dev)
+ - afl-fuzz:
+ - change post_process hook to allow returning NULL and 0 length to
+ tell afl-fuzz to skip this mutated input
+ - afl-cc:
+ - important fix for the default pcguard mode when LLVM IR vector
+ selects are produced, thanks to @juppytt for reporting!
- gcc_plugin:
- Adacore submitted CMPLOG support to the gcc_plugin! :-)
- llvm_mode:
diff --git a/docs/INSTALL.md b/docs/INSTALL.md
index 312b41e9..4f2b7174 100644
--- a/docs/INSTALL.md
+++ b/docs/INSTALL.md
@@ -79,19 +79,23 @@ make STATIC=1
These build options exist:
* STATIC - compile AFL++ static
-* ASAN_BUILD - compiles with memory sanitizer for debug purposes
+* ASAN_BUILD - compiles AFL++ with memory sanitizer for debug purposes
+* UBSAN_BUILD - compiles AFL++ tools with undefined behaviour sanitizer for
+ debug purposes
* DEBUG - no optimization, -ggdb3, all warnings and -Werror
-* PROFILING - compile with profiling information (gprof)
+* PROFILING - compile afl-fuzz with profiling information
* INTROSPECTION - compile afl-fuzz with mutation introspection
* NO_PYTHON - disable python support
* NO_SPLICING - disables splicing mutation in afl-fuzz, not recommended for
normal fuzzing
* NO_NYX - disable building nyx mode dependencies
+* NO_CORESIGHT - disable building coresight (arm64 only)
+* NO_UNICORN_ARM64 - disable building unicorn on arm64
* AFL_NO_X86 - if compiling on non-intel/amd platforms
* LLVM_CONFIG - if your distro doesn't use the standard name for llvm-config
(e.g., Debian)
-e.g.: `make ASAN_BUILD=1`
+e.g.: `make LLVM_CONFIG=llvm-config-14`
## MacOS X on x86 and arm64 (M1)
diff --git a/docs/custom_mutators.md b/docs/custom_mutators.md
index 7b4e0516..6f3353ec 100644
--- a/docs/custom_mutators.md
+++ b/docs/custom_mutators.md
@@ -38,6 +38,11 @@ performed with the custom mutator.
## 2) APIs
+**IMPORTANT NOTE**: If you use our C/C++ API and you want to increase the size
+of an **out_buf buffer, you have to use `afl_realloc()` for this, so include
+`include/alloc-inl.h` - otherwise afl-fuzz will crash when trying to free
+your buffers.
+
C/C++:
```c
@@ -159,6 +164,10 @@ def deinit(): # optional for Python
This can return any python object that implements the buffer protocol and
supports PyBUF_SIMPLE. These include bytes, bytearray, etc.
+ You can decide in the post_process mutator to not send the mutated data
+ to the target, e.g. if it is too short, too corrupted, etc. If so,
+ return a NULL buffer and zero length (or a 0 length string in Python).
+
- `queue_new_entry` (optional):
This methods is called after adding a new test case to the queue. If the