aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvanhauser-thc <vh@thc.org>2021-03-07 08:43:01 +0100
committervanhauser-thc <vh@thc.org>2021-03-07 08:43:01 +0100
commitd3f69ab4c6d4f1e2eb3349eec3f1cb9313081151 (patch)
tree0900b7c7984187bbf8bcd5a76147822a476d606f
parent517db1b8dc1b310b82a73e3878285ca03249f3e4 (diff)
downloadafl++-d3f69ab4c6d4f1e2eb3349eec3f1cb9313081151.tar.gz
documentation for AFL_PERSISTENT_RECORD
-rw-r--r--docs/env_variables.md9
-rw-r--r--src/afl-fuzz.c1
2 files changed, 10 insertions, 0 deletions
diff --git a/docs/env_variables.md b/docs/env_variables.md
index 4c3b1cfb..41733f1b 100644
--- a/docs/env_variables.md
+++ b/docs/env_variables.md
@@ -400,6 +400,15 @@ checks or alter some of the more exotic semantics of the tool:
- Setting `AFL_FORCE_UI` will force painting the UI on the screen even if
no valid terminal was detected (for virtual consoles)
+ - If you are using persistent mode (you should, see [instrumentation/README.persistent_mode.md](instrumentation/README.persistent_mode.md))
+ some targets keep inherent state due which a detected crash testcase does
+ not crash the target again when the testcase is given. To be able to still
+ re-trigger these crashes you can use the `AFL_PERSISTENT_RECORD` variable
+ with a value of how many previous fuzz cases to keep prio a crash.
+ if set to e.g. 10, then the 9 previous inputs are written to
+ out/default/crashes as RECORD:000000,cnt:000000 to RECORD:000000,cnt:000008
+ and RECORD:000000,cnt:000009 being the crash case.
+
- If you are Jakub, you may need `AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES`.
Others need not apply.
diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c
index 267ab075..b2c81580 100644
--- a/src/afl-fuzz.c
+++ b/src/afl-fuzz.c
@@ -218,6 +218,7 @@ static void usage(u8 *argv0, int more_help) {
"AFL_PATH: path to AFL support binaries\n"
"AFL_PYTHON_MODULE: mutate and trim inputs with the specified Python module\n"
"AFL_QUIET: suppress forkserver status messages\n"
+ "AFL_PERSISTENT_RECORD: record the last X inputs to every crash in out/crashes\n"
"AFL_PRELOAD: LD_PRELOAD / DYLD_INSERT_LIBRARIES settings for target\n"
"AFL_SHUFFLE_QUEUE: reorder the input queue randomly on startup\n"
"AFL_SKIP_BIN_CHECK: skip the check, if the target is an executable\n"