add no splicing compile option and print used compile options in afl-fuzz help

This commit is contained in:
van Hauser
2020-10-26 14:44:05 +01:00
parent 029d44a6ec
commit 44c65fa0a0
5 changed files with 36 additions and 0 deletions

View File

@ -36,6 +36,10 @@ SH_PROGS = afl-plot afl-cmin afl-cmin.bash afl-whatsup afl-system-config
MANPAGES=$(foreach p, $(PROGS) $(SH_PROGS), $(p).8) afl-as.8 MANPAGES=$(foreach p, $(PROGS) $(SH_PROGS), $(p).8) afl-as.8
ASAN_OPTIONS=detect_leaks=0 ASAN_OPTIONS=detect_leaks=0
ifdef NO_SPLICING
override CFLAGS += -DNO_SPLICING
endif
ifdef ASAN_BUILD ifdef ASAN_BUILD
$(info Compiling ASAN version of binaries) $(info Compiling ASAN version of binaries)
override CFLAGS+=$(ASAN_CFLAGS) override CFLAGS+=$(ASAN_CFLAGS)
@ -344,7 +348,10 @@ help:
@echo ASAN_BUILD - compiles with memory sanitizer for debug purposes @echo ASAN_BUILD - compiles with memory sanitizer for debug purposes
@echo DEBUG - no optimization, -ggdb3, all warnings and -Werror @echo DEBUG - no optimization, -ggdb3, all warnings and -Werror
@echo PROFILING - compile afl-fuzz with profiling information @echo PROFILING - compile afl-fuzz with profiling information
@echo NO_PYTHON - disable python support
@echo NO_SPLICING - disables splicing mutation in afl-fuzz, not recommended for normal fuzzing
@echo AFL_NO_X86 - if compiling on non-intel/amd platforms @echo AFL_NO_X86 - if compiling on non-intel/amd platforms
@echo "LLVM_CONFIG - if your distro doesn't use the standard name for llvm-config (e.g. Debian)"
@echo "==========================================" @echo "=========================================="
@echo e.g.: make ASAN_BUILD=1 @echo e.g.: make ASAN_BUILD=1

View File

@ -212,6 +212,7 @@ These build options exist:
* DEBUG - no optimization, -ggdb3, all warnings and -Werror * DEBUG - no optimization, -ggdb3, all warnings and -Werror
* PROFILING - compile with profiling information (gprof) * PROFILING - compile with profiling information (gprof)
* NO_PYTHON - disable python support * NO_PYTHON - disable python support
* NO_SPLICING - disables splicing mutation in afl-fuzz, not recommended for normal fuzzing
* AFL_NO_X86 - if compiling on non-intel/amd platforms * 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) * LLVM_CONFIG - if your distro doesn't use the standard name for llvm-config (e.g. Debian)

View File

@ -34,6 +34,8 @@ sending a mail to <afl-users+subscribe@googlegroups.com>.
- crashing seeds are now not prohibiting a run anymore but are - crashing seeds are now not prohibiting a run anymore but are
skipped. They are used for splicing though. skipped. They are used for splicing though.
- set the default power schedule to the superiour "seek" schedule - set the default power schedule to the superiour "seek" schedule
- added NO_SPLICING compile option and makefile define
- print special compile time options used in help output
- instrumentation - instrumentation
- We received an enhanced gcc_plugin module from AdaCore, thank you - We received an enhanced gcc_plugin module from AdaCore, thank you
very much!! very much!!

View File

@ -102,7 +102,9 @@ void afl_state_init(afl_state_t *afl, uint32_t map_size) {
afl->stats_update_freq = 1; afl->stats_update_freq = 1;
afl->stats_avg_exec = -1; afl->stats_avg_exec = -1;
afl->skip_deterministic = 1; afl->skip_deterministic = 1;
#ifndef NO_SPLICING
afl->use_splicing = 1; afl->use_splicing = 1;
#endif
afl->q_testcase_max_cache_size = TESTCASE_CACHE_SIZE * 1048576UL; afl->q_testcase_max_cache_size = TESTCASE_CACHE_SIZE * 1048576UL;
afl->q_testcase_max_cache_entries = 64 * 1024; afl->q_testcase_max_cache_entries = 64 * 1024;

View File

@ -224,6 +224,26 @@ static void usage(u8 *argv0, int more_help) {
SAYF("Compiled without python module support\n"); SAYF("Compiled without python module support\n");
#endif #endif
#ifdef ASAN_BUILD
SAYF("Compiled with ASAN_BUILD\n\n");
#endif
#ifdef NO_SPLICING
SAYF("Compiled with NO_SPLICING\n\n");
#endif
#ifdef PROFILING
SAYF("Compiled with PROFILING\n\n");
#endif
#ifdef _DEBUG
SAYF("Compiled with _DEBUG\n\n");
#endif
#ifdef _AFL_DOCUMENT_MUTATIONS
SAYF("Compiled with _AFL_DOCUMENT_MUTATIONS\n\n");
#endif
SAYF("For additional help please consult %s/README.md\n\n", doc_path); SAYF("For additional help please consult %s/README.md\n\n", doc_path);
exit(1); exit(1);
@ -1527,7 +1547,11 @@ int main(int argc, char **argv_orig, char **envp) {
} else { } else {
#ifndef NO_SPLICING
afl->use_splicing = 1; afl->use_splicing = 1;
#else
afl->use_splicing = 0;
#endif
} }