122 Commits

Author SHA1 Message Date
WorksButNotTested
6883605d13
Support writing Stalker stats (#945)
* Support writing Stalker stats

* Fixed string handling in print functions

Co-authored-by: Your Name <you@example.com>
2021-05-29 00:43:14 +02:00
WorksButNotTested
f677be5e86
Support for AFL_FRIDA_PERSISTENT_RET (#941)
Co-authored-by: Your Name <you@example.com>
2021-05-27 22:33:44 +02:00
vanhauser-thc
87b16c4460 add AFL_TRY_AFFINITY 2021-05-25 10:45:24 +02:00
Dominik Maier
cdae3d3d03 cleaned up AFL_PRINT_FILENAMES env 2021-05-19 22:21:46 +02:00
WorksButNotTested
e40c0c2da1
FASAN Support (#918)
* FASAN Support

* Fix handling of Address Sanitizer DSO

* Changes to identification of Address Sanitizer DSO

Co-authored-by: Your Name <you@example.com>
2021-05-17 20:02:45 +02:00
Roman M. Iudichev
069e61dfc6
Exit on time (#904)
* Variable AFL_EXIT_ON_TIME description has been added.
Variables AFL_EXIT_ON_TIME and afl_exit_on_time has been added.
afl->exit_on_time variable initialization has been added.
The asignment of a value to the afl->afl_env.afl_exit_on_time variable from
environment variables has been added.
Code to exit on timeout if new path not found has been added.

* Type of afl_exit_on_time variable has been changed.
Variable exit_on_time has been added to the afl_state_t structure.

* Command `export AFL_EXIT_WHEN_DONE=1` has been added.

* Millisecond to second conversion has been added.
Call get_cur_time() has been added.

* Revert to using the saved current time value.

* Useless check has been removed.
2021-05-07 17:32:17 +02:00
WorksButNotTested
39ad3b8946
Frida persistent (#880)
* Added x64 support for persistent mode (function call only), in-memory teest cases and complog

* Review changes, fix NeverZero and code to parse the .text section of the main executable. Excluded ranges TBC

* Various minor fixes and finished support for AFL_INST_LIBS

* Review changes

Co-authored-by: Your Name <you@example.com>
2021-04-28 10:25:26 +02:00
vanhauser-thc
be880f2476 add AFL_EXIT_ON_SEED_ISSUES 2021-04-13 13:01:50 +02:00
vanhauser-thc
2e6e1e566b add missing env 2021-04-06 22:16:56 +02:00
van Hauser
c23183f1dc
Merge pull request #855 from MegaManSec/leak-sanitizer
Add support for standalone leak-sanitizer
2021-04-04 15:28:42 +02:00
Joshua Rogers
920e9402a4 Add support for standalone leak-sanitizer, introducting the environment
variable AFL_USE_LSAN.

AFL_USE_LSAN introduces the macro __AFL_CHECK_LEAK() which will check
for a memory leak when the macro is run. This is especially helpful
when using __AFL_LOOP().

If __AFL_LEAK_CHECK() is not used when AFL_USE_LSAN=1 is set,
the leak checker will run when the program exits.
2021-04-02 22:23:11 +00:00
van Hauser
00a53a870d
Merge pull request #833 from WorksButNotTested/frida
Frida
2021-03-25 19:42:27 +01:00
Your Name
e1384b5086 Add support for FRIDA mode 2021-03-24 18:17:10 +00:00
van Hauser
6e2a0ef233
Merge branch 'replay' into tmp 2021-03-24 18:19:13 +01:00
van Hauser
090128b3f8
Merge branch 'dev' into dev 2021-03-19 23:54:36 +01:00
fuzzah
d7e121e2c9 add AFL_TARGET_ENV to afl-fuzz 2021-03-20 01:32:28 +03:00
vanhauser-thc
e73c7c59c1 refactor finding binaries 2021-03-19 14:55:25 +01:00
vanhauser-thc
862cb3217f fix cmplog rtn 2021-03-16 14:38:13 +01:00
realmadsci
d4fb7f8b40 Add AFL_QEMU_CUSTOM_BIN environment flag
In QEMU mode (-Q), setting AFL_QEMU_CUSTOM_BIN cause afl-fuzz to skip
prepending afl-qemu-trace to your command line. Use this if you wish to use a
custom afl-qemu-trace or if you need to modify the afl-qemu-trace arguments.
2021-03-15 12:57:06 -07:00
vanhauser-thc
791c5c171d fix ctx-1 2021-03-09 18:44:42 +01:00
vanhauser-thc
47f2650a32 add AFL_NOOPT 2021-03-09 16:53:56 +01:00
vanhauser-thc
7f062524c9 fixes 2021-03-06 23:01:13 +01:00
Andrea Fioraldi
be5274d4a9 fix kctx compilation hang 2021-03-04 15:12:08 +01:00
realmadsci
8bdb40b763 cpu-exec: Add AFL_QEMU_EXCLUDE_RANGES
This environment variable allows rejection of
specific regions from instrumentation.

It takes priority over AFL_INST_LIBS and AFL_QEMU_INST_RANGES,
so it can be used to poke a "hole" in previously included sections.
2021-03-02 12:55:44 -08:00
vanhauser-thc
938512a6b9 minor fixes 2021-02-17 09:48:04 +01:00
Michael Rodler
6caec2169c Revert "llvm bug workaround for lto extint"
This reverts commit e3a5c31307f323452dc4b5288e0d19a02b596a33.
2021-02-15 19:14:28 +01:00
vanhauser-thc
e3a5c31307 llvm bug workaround for lto extint 2021-02-15 13:25:15 +01:00
vanhauser-thc
9bd1e19d7f added AFL_IGNORE_UNKNOWN_ENVS 2021-02-13 22:43:56 +01:00
vanhauser-thc
84f0b4f187 persistent replay env setup 2021-02-07 08:27:35 +01:00
van Hauser
9d08f0d098 added AFL_CMPLOG_ONLY_NEW feature 2021-01-30 15:39:47 +01:00
Andrea Fioraldi
28e1aaa0f1 qasan support in aflpp 2021-01-29 15:47:25 +01:00
van Hauser
2044c7e2b5 fix include 2021-01-27 08:41:45 +01:00
van Hauser
f571f074a8 update envs 2021-01-27 08:21:22 +01:00
buherator
9cdf5c4150
User defined kill signal value (#678)
* Adding AFL_KILL_SIGNAL environment variable

Controlling the kill signal used to end forked processes.

* Checking validity of AFL_KILL_SIGNAL env variable

This commit also sets a valid value in the environment to avoid
duplicating code in at_exit(). Changing data type of
fsrv->kill_signal to u8 to match last_kill_signal.

* Adding afl_kill_signal to AFL (environment) state

This commit simply introduces a struct member for future use. The
env variable is not used from the afl struct but from fsrv, where
its validity is checked, resulting in a FATAL in case of errors.
2021-01-07 22:35:34 +01:00
van Hauser
98ee17bc47 fix endless loop in afl-cc allow/blocklists starting a line with a comment 2020-12-20 14:30:06 +01:00
hexcoder-
12ebb351dc apply nocolor changes 2020-12-18 21:10:39 +01:00
Thomas Rooijakkers
d59d1fcd9f
Add missing env var used in bec7edf41d/accel/tcg/cpu-exec.c (L389) and ./qemu_mode/README.persistent.md 2020-12-04 17:15:25 +01:00
Dominik Maier
a2e2fae840 AFL_CRASH_EXITCODE env var added, u8->bool 2020-12-03 14:43:06 +01:00
van Hauser
8584f9d2b5 added AFL_NO_AUTODICT 2020-12-01 13:13:11 +01:00
Dominik Maier
f80f62f14b renamed env var to AFL_DEBUG_CHILD 2020-11-18 03:02:13 +01:00
van Hauser
0e748ccda7 set max testcache entries automated if not specified by the user 2020-10-23 14:05:34 +02:00
van Hauser
56ac3fcdc5
configurable testcache with malloc (#581)
* cache item number to cache memory size

* reload testcase if trimming changed the size

* fix splicing selection

* slim splicing

* import sync fix

* write testcache stats to fuzzer_stats

* fix new seed selection algo

* malloc+read instead of mmap

* fix

* testcache is configurable now and no reference counts

* fixes compilation, test script

* fixes

* switch TEST_CC to afl-cc in makefile

* code format

* fix

* fix crash

* fix crash

* fix env help output

* remove unnecessary pointer resets

* fix endless loop bug

* actually use the cache if set

* one more fix

* increase default cache entries, add default cache size value to config.h

Co-authored-by: hexcoder- <heiko@hexco.de>
2020-10-14 15:30:30 +02:00
Edznux
0220a8ff66
Add env var toggle for StatsD 2020-10-08 20:48:46 +02:00
Edznux
3d7bdc9f0b
[WIP: segfault on non dogstatsd] Adding MACROS for format 2020-10-06 23:00:11 +02:00
Edznux
1e0bc2e5c3
Merge remote-tracking branch 'origin/dev' into statsd_implem 2020-10-04 16:03:15 +02:00
Edznux
a55e0d1189
WIP envs 2020-09-25 23:28:15 +02:00
Alexandre Oliva
9544b3dbf2 rewrite gcc plugin
When we started using AFL, it did not have an integrated GCC plugin.
There was one proposed by Austin Seipp, but for various reasons we
ended up using some of its infrastructure (runtime and wrapper), but
writing the GCC plugin proper from scratch.

With AFL++'s renewed interest in a GCC plugin, we rebased ours, with
some features that are or were missing in the one that was integrated:

* efficient, fully-functional inline and out-of-line instrumentation

Inline instrumentation was work in progress in the original plugin.
Controlled by AFL_GCC_OUT_OF_LINE.

* reproducible instrumentation

Obey -frandom-seed for pseudorandom number generation.

* licensing clarity and strict compliance

GPLv3+ for the plugin, that uses GCC internals; add a copy of the
license, as required.

* allow/deny list support

Copied and adjusted from the LLVM plugin implementation.

* neverZero support

Not as compact as the asm-wrapper version, but likely more efficient.
Both are quite thread-unsafe, with different caveats.
Controlled with AFL_GCC_SKIP_NEVERZERO.
2020-09-08 14:55:19 +02:00
vanhauser-thc
e30b2c6af6 final changes for pre-3.0 2020-09-05 13:18:28 +02:00
Andrea Fioraldi
75c38d6243 Merge branch 'dev' of github.com:vanhauser-thc/AFLplusplus into dev 2020-09-01 12:36:13 +02:00
Andrea Fioraldi
6f75100602 qemuafl envs 2020-09-01 12:36:04 +02:00