912 Commits

Author SHA1 Message Date
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
Andrea Fioraldi
10f775be07 conflicts 2020-09-08 11:19:17 +02:00
van Hauser
2508922288 cmp dict for LTO 2020-09-05 15:49:10 +02:00
vanhauser-thc
e30b2c6af6 final changes for pre-3.0 2020-09-05 13:18:28 +02:00
vanhauser-thc
4b3ad5f037 add cull queue, -i subdir traversal 2020-09-05 12:32:10 +02:00
van Hauser
fac108476c v2.68c 2020-09-04 22:50:45 +02:00
hexcoder-
0625eb0a05 avoid signed ints for amounts (which are positive) 2020-09-04 22:26:39 +02:00
van Hauser
6c715f1a69 more changes to fuzzer_setup 2020-09-04 17:04:42 +02:00
Thomas Rooijakkers
50f61b64b1
Make open_file() inline 2020-09-04 16:22:22 +02:00
Thomas Rooijakkers
809a7cffe2
Write set environment variables in an env file style. 2020-09-04 16:02:09 +02:00
Thomas Rooijakkers
6adaacbb3a
Seperate fuzzer_setup from fuzzer_stats, only write fuzzer_setup at the start 2020-09-04 15:54:57 +02:00
van Hauser
4c48d3a3ad update xxh3 to 0.8.0, fix is_ascii 2020-09-03 09:59:23 +02:00
Andrea Fioraldi
b8d3a97a4f build with qemuafl 2020-09-01 13:08:32 +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
van Hauser
664daa2f3c add qemu driver env var 2020-09-01 01:12:40 +02:00
Dominik Maier
4697e4a5a5 description for AFL_MAX_DET_EXTRAS added 2020-08-31 12:26:41 +02:00
Dominik Maier
92b1f9cf36 added SO link about rand for clarification 2020-08-31 12:11:38 +02:00
van Hauser
4566bcf122 code-format 2020-08-31 10:57:01 +02:00
Dominik Maier
4be0ea596b rand unlikely added 2020-08-26 13:04:03 +02:00
Dominik Maier
96ef7083c8 using unbiased rand_below 2020-08-26 05:28:33 +02:00
van Hauser
19eddbb0c7 make py functions as optional as they are in the doc 2020-08-24 18:12:08 +02:00
van Hauser
6a34c5aa3e fix python implementation for new function 2020-08-24 18:06:07 +02:00
van Hauser
c7f0d30668 added afl_custom_fuzz_count 2020-08-24 17:32:41 +02:00
Marius Muench
425908a00c
Option for specifying forkserver initialization timeout via environment variable (#522)
* Addition of AFL_FORKSRV_INIT_TMOUT env var

This commit introduces a new environment variable which allows to
specify the timespan AFL should wait for initial contact with the
forkserver.

This is useful for fuzz-targets requiring a rather long setup time
before the actual fuzzing can be started (e.g., unicorn).

* add .swp files to .gitignore

* Inherit init_tmout in afl_fsrv_init_dup

Without this patch, the forkserver would spawn with a timeout of 0 in
cmplog mode, leading to an immediate crash.

Additionally, this commit removes a spurious whitespace.

* Initialize afl->fsrv.init_tmout in afl_fsrv_init

Not all afl-components will need the new AFL_FORKSRV_INIT_TMOUT
environment variable. Hence, it's initialized to the safe "default"
value from before in afl_fsrv_init now.
2020-08-23 10:39:34 +02:00
Dominik Maier
1301552101 added AFL_MAX_DET_EXTRAS env var 2020-08-23 01:48:36 +02:00
van Hauser
47878f6974 add execs_done to plot file 2020-08-21 23:33:35 +02:00
van Hauser
9faf7b6fc8 v2.67d 2020-08-18 20:08:29 +02:00
van Hauser
5c759953f4
Merge pull request #511 from AFLplusplus/stable
push to dev
2020-08-18 20:05:56 +02:00
van Hauser
1c64048d0f 2.67c 2020-08-18 19:56:47 +02:00
Dominik Maier
1a94cfe2af moved autodict extras away from extras_a 2020-08-18 01:31:40 +02:00
Dominik Maier
7470b475a9
Reworked maybe_grow to take a single ptr, renamed to afl_realloc (#505)
* maybe_grow takes a single ptr

* fixed use_deflate

* reworked maybe_grow_bufsize

* helper to access underlying buf

* remove redundant realloc_block

* code format

* fixes

* added unit tests

* renamed maybe_grow to afl_realloc

* BUF_PARAMS -> AFL_BUF_PARAM
2020-08-18 00:50:52 +02:00
van Hauser
0a251f93e0 increase initial memory sized 2020-08-15 13:34:51 +02:00
root
af14acf2c1 Revert "Merge branch 'debug' into dev"
This reverts commit a7537b5511ad767d2240cf2dc6d3e261daa676f9, reversing
changes made to 15e799f7ae666418e75c6a79db833c5316b21f97.
2020-08-14 14:35:05 +02:00
van Hauser
a7537b5511
Merge branch 'debug' into dev 2020-08-14 13:23:14 +02:00
van Hauser
ce513c4f3e fix llvm12 -fuseld warning 2020-08-14 10:10:23 +02:00
Dominik Maier
d1bc0207cc no longer using alloc for autodict 2020-08-14 01:33:03 +02:00
Dominik Maier
69f8c62955 code-format 2020-08-14 00:46:48 +02:00
Dominik Maier
83df65a66b cleaned up maybe_add_auto calls 2020-08-14 00:46:15 +02:00
van Hauser
220dc4a43d review done, pray 2020-08-11 16:25:35 +02:00
van Hauser
4f695b6f4c fixes 2020-08-11 11:16:48 +02:00
van Hauser
0ba09ee85a enhancements 2020-08-11 10:24:45 +02:00
van Hauser
67dac15226
Merge branch 'debug' into taint 2020-08-11 03:40:12 +02:00
van Hauser
50e76fce12 adding ctor function skipping in LTO fixed map mode 2020-08-11 02:05:39 +02:00
Dominik Maier
7b5a18428e fixed __func__ 2020-08-10 23:17:39 +02:00
Dominik Maier
7d7a8c7c39 code-format 2020-08-10 19:05:22 +02:00
Dominik Maier
a422fcaa40 fixed minor inconsistencies, reenabled warnings 2020-08-10 19:04:51 +02:00
van Hauser
e99d7e9730 integration in fuzz_one 2020-08-09 20:24:56 +02:00
van Hauser
b60663c031 taint integration done 2020-08-09 18:48:12 +02:00
van Hauser
32db31b555 fixes 2020-08-09 12:35:52 +02:00