aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2019-10-21 11:28:32 +0200
committervan Hauser <vh@thc.org>2019-10-21 11:28:32 +0200
commitbe6bc155ebd891eebd21eac8982784e7f2be4f41 (patch)
tree4b6b9ce5b4fc29f5d5fbd6d3dc40473cc6810170
parentd0bbef74ef4ecdf41f7b88b77ff833b563d78450 (diff)
downloadafl++-be6bc155ebd891eebd21eac8982784e7f2be4f41.tar.gz
v2.58c2.58c
-rw-r--r--Makefile9
-rw-r--r--README.md18
-rw-r--r--TODO5
-rw-r--r--docs/ChangeLog14
-rw-r--r--gcc_plugin/README.gcc.md4
-rw-r--r--gcc_plugin/README.whitelist.md3
-rw-r--r--include/config.h2
7 files changed, 28 insertions, 27 deletions
diff --git a/Makefile b/Makefile
index cfcd0890..87c7cdef 100644
--- a/Makefile
+++ b/Makefile
@@ -104,6 +104,13 @@ man: $(MANPAGES)
tests: source-only
@cd test ; ./test.sh
+performance-tests: performance-test
+test-performance: performance-test
+
+performance-test: source-only
+ @cd test ; ./test-performance.sh
+
+
help:
@echo "HELP --- the following make targets exist:"
@echo "=========================================="
@@ -307,7 +314,7 @@ install: all $(MANPAGES)
install -m 755 $(PROGS) $(SH_PROGS) $${DESTDIR}$(BIN_PATH)
rm -f $${DESTDIR}$(BIN_PATH)/afl-as
if [ -f afl-qemu-trace ]; then install -m 755 afl-qemu-trace $${DESTDIR}$(BIN_PATH); fi
- #if [ -f afl-gcc-fast ]; then set e; install -m 755 afl-gcc-fast $${DESTDIR}$(BIN_PATH); ln -sf afl-gcc-fast $${DESTDIR}$(BIN_PATH)/afl-g++-fast; install -m 755 afl-gcc-pass.so afl-gcc-rt.o $${DESTDIR}$(HELPER_PATH); fi
+ if [ -f afl-gcc-fast ]; then set e; install -m 755 afl-gcc-fast $${DESTDIR}$(BIN_PATH); ln -sf afl-gcc-fast $${DESTDIR}$(BIN_PATH)/afl-g++-fast; install -m 755 afl-gcc-pass.so afl-gcc-rt.o $${DESTDIR}$(HELPER_PATH); fi
ifndef AFL_TRACE_PC
if [ -f afl-clang-fast -a -f libLLVMInsTrim.so -a -f afl-llvm-rt.o ]; then set -e; install -m 755 afl-clang-fast $${DESTDIR}$(BIN_PATH); ln -sf afl-clang-fast $${DESTDIR}$(BIN_PATH)/afl-clang-fast++; install -m 755 libLLVMInsTrim.so afl-llvm-pass.so afl-llvm-rt.o $${DESTDIR}$(HELPER_PATH); fi
else
diff --git a/README.md b/README.md
index f0e6faef..4b9537d2 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
# american fuzzy lop plus plus (afl++)
- Release Version: 2.57c
+ Release Version: 2.58c
- Github Version: 2.57d
+ Github Version: 2.58d
includes all necessary/interesting changes from Google's afl 2.56b
@@ -52,13 +52,13 @@
A more thorough list is available in the PATCHES file.
- | Feature/Instrumentation | LLVM | GCC | QEMU | Unicorn |
- | ----------------------- |:----:|:---:|:----:| -------:|
- | laf-intel / CompCov | x | | x | x |
- | NeverZero | x(1)| x | x | x |
- | Persistent mode | x | | x | |
- | Whitelist | x | | | |
- | InsTrim | x | | | |
+ | Feature/Instrumentation | AFL-GCC | LLVM_MODE | GCC_PLUGIN | QEMU_MODE | Unicorn |
+ | ----------------------- |:-------:|:---------:|:----------:|:---------:|:-------:|
+ | laf-intel / CompCov | | x | | x | x |
+ | NeverZero | X | x(1) | | x | x |
+ | Persistent mode | | x | X | x | |
+ | Whitelist | | x | X | | |
+ | InsTrim | | x | | | |
(1) only in LLVM >= 9.0 due to a bug in llvm in previous versions
diff --git a/TODO b/TODO
index 3ca13d6e..f2642b1a 100644
--- a/TODO
+++ b/TODO
@@ -7,11 +7,8 @@ afl-fuzz:
- test the libmutator actually works and does not run infinite (need an example though)
gcc_plugin:
- - needs to be rewritten
- - whitelist support
- - skip over uninteresting blocks
- - laf-intel
- neverZero
+ - laf-intel
qemu_mode:
- update to 4.x (probably this will be skipped :( )
diff --git a/docs/ChangeLog b/docs/ChangeLog
index 46b9e330..c2d46e4d 100644
--- a/docs/ChangeLog
+++ b/docs/ChangeLog
@@ -13,14 +13,16 @@ 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 ++2.57d (dev):
-----------------------
+--------------------------
+Version ++2.58c (release):
+--------------------------
- - reverted patch to not unlink and recreate the input file, it resulted in performance loss
+ - reverted patch to not unlink and recreate the input file, it resulted in
+ performance loss of ~10%
- added test/test-performance.sh script
- - (re)added gcc_plugin, fast inline instrumentation is not yet finished
- - added gcc_plugin tests
+ - (re)added gcc_plugin, fast inline instrumentation is not yet finished,
+ however it includes the whitelisting and persistance feature! by hexcoder-
+ - gcc_plugin tests added to testing framework
--------------------------------
diff --git a/gcc_plugin/README.gcc.md b/gcc_plugin/README.gcc.md
index 2e19e911..676ef427 100644
--- a/gcc_plugin/README.gcc.md
+++ b/gcc_plugin/README.gcc.md
@@ -156,7 +156,3 @@ depending on whether the input loop is being entered for the first time or
executed again. To avoid spurious warnings, the feature implies
AFL_NO_VAR_CHECK and hides the "variable path" warnings in the UI.
-PS. Because there are task switches still involved, the mode isn't as fast as
-"pure" in-process fuzzing offered, say, by LLVM's LibFuzzer; but it is a lot
-faster than the normal fork() model, and compared to in-process fuzzing,
-should be a lot more robust.
diff --git a/gcc_plugin/README.whitelist.md b/gcc_plugin/README.whitelist.md
index bcc02693..8ad2068d 100644
--- a/gcc_plugin/README.whitelist.md
+++ b/gcc_plugin/README.whitelist.md
@@ -6,8 +6,7 @@ Using afl++ with partial instrumentation
that are interesting to you using the gcc instrumentation provided by
afl++.
- Originally developed by Christian Holler (:decoder) <choller@mozilla.com>,
- adapted to gcc plugin by hexcoder-.
+ Plugin by hexcoder-.
## 1) Description and purpose
diff --git a/include/config.h b/include/config.h
index 2e993a42..f121025d 100644
--- a/include/config.h
+++ b/include/config.h
@@ -26,7 +26,7 @@
/* Version string: */
-#define VERSION "++2.57d" // c = release, d = volatile github dev
+#define VERSION "++2.58c" // c = release, d = volatile github dev
/******************************************************
* *