aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Fioraldi <andreafioraldi@gmail.com>2019-09-13 11:02:50 +0200
committerAndrea Fioraldi <andreafioraldi@gmail.com>2019-09-13 11:02:50 +0200
commit6444bc6a716ea4d00e03c659eb20064550561799 (patch)
tree0ff13fe161f1062bf6b69852ebe325f43a02963f
parent924f3025f9e9bc062b80d4ca3a47d283267ba18c (diff)
downloadafl++-6444bc6a716ea4d00e03c659eb20064550561799.tar.gz
update readme and todo
-rw-r--r--.gitignore2
-rw-r--r--README.md18
-rw-r--r--TODO15
-rw-r--r--docs/ChangeLog1
4 files changed, 25 insertions, 11 deletions
diff --git a/.gitignore b/.gitignore
index e4d2346e..b2975a7e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
+.test
+.test2
*.o
*.so
afl-analyze
diff --git a/README.md b/README.md
index 597ed8f0..c697da4f 100644
--- a/README.md
+++ b/README.md
@@ -30,9 +30,9 @@
* AFLfast's power schedules by Marcel Böhme: [https://github.com/mboehme/aflfast](https://github.com/mboehme/aflfast)
- * the new excellent MOpt mutator: [https://github.com/puppet-meteor/MOpt-AFL](https://github.com/puppet-meteor/MOpt-AFL)
+ * The new excellent MOpt mutator: [https://github.com/puppet-meteor/MOpt-AFL](https://github.com/puppet-meteor/MOpt-AFL)
- * instrim, a very effective CFG llvm_mode instrumentation implementation for large targets: [https://github.com/csienslab/instrim](https://github.com/csienslab/instrim)
+ * InsTrim, a very effective CFG llvm_mode instrumentation implementation for large targets: [https://github.com/csienslab/instrim](https://github.com/csienslab/instrim)
* C. Holler's afl-fuzz Python mutator module and llvm_mode whitelist support: [https://github.com/choller/afl](https://github.com/choller/afl)
@@ -40,12 +40,22 @@
* unicorn_mode which allows fuzzing of binaries from completely different platforms (integration provided by domenukk)
- * laf-intel (compcov) support for llvm_mode, qemu_mode and unicorn_mode
+ * laf-intel or CompCov support for llvm_mode, qemu_mode and unicorn_mode
- * neverZero patch for afl-gcc, llvm_mode, qemu_mode and unicorn_mode which prevents a wrapping map value to zero, increases coverage (by Andrea Fioraldi)
+ * NeverZero patch for afl-gcc, llvm_mode, qemu_mode and unicorn_mode which prevents a wrapping map value to zero, increases coverage
+
+ * Persistent mode and deferred forkserver for qemu_mode
A more thorough list is available in the PATCHES file.
+ | Feature/Instrumentation | LLVM | GCC | QEMU | Unicorn |
+ | ----------------------- |:----:|:---:|:----:| -------:|
+ | laf-intel / CompCov | x | | x | x |
+ | NeverZero | x | x | x | x |
+ | Persistent mode | x | | x | |
+ | Whitelist | x | | | |
+ | InsTrim | x | | | |
+
So all in all this is the best-of AFL that is currently out there :-)
For new versions and additional information, check out:
diff --git a/TODO b/TODO
index 26311713..87d1488c 100644
--- a/TODO
+++ b/TODO
@@ -20,6 +20,14 @@ gcc_plugin:
qemu_mode:
- update to 4.x (probably this will be skipped :( )
+ - deferred mode with AFL_DEFERRED_QEMU=0xaddress
+ (AFL_ENTRYPOINT let you to specify only a basic block address as starting
+ point. This will be implemented togheter with the logic for persistent
+ mode.)
+ - instrim for QEMU mode via static analysis (with r2pipe? or angr?)
+ Idea: The static analyzer outputs a map in which each edge that must be
+ skipped is marked with 1. QEMU loads it at startup in the parent process.
+
unit testing / or large testcase campaign
@@ -52,10 +60,3 @@ Problem: Average targets (tiff, jpeg, unrar) go through 1500 edges.
Bad: completely changes how afl uses the map and the scheduling.
Overall another very good solution, Marc Heuse/vanHauser follows this up
-qemu_mode:
- - persistent mode patching the return address (WinAFL style)
- - deferred mode with AFL_DEFERRED_QEMU=0xaddress
- (AFL_ENTRYPOINT let you to specify only a basic block address as starting
- point. This will be implemented togheter with the logic for persistent
- mode.)
-
diff --git a/docs/ChangeLog b/docs/ChangeLog
index a407e253..fa05d1b8 100644
--- a/docs/ChangeLog
+++ b/docs/ChangeLog
@@ -20,6 +20,7 @@ Version ++2.54d (dev):
- no more unlinking the input file, this way the input file can also be a
FIFO or disk partition
- reducing duplicate code in afl-fuzz
+ - persistent mode for QEMU
--------------------------