From 62b46d57f229ba2030a014484e7b1d73e8e02752 Mon Sep 17 00:00:00 2001 From: Thomas HUET Date: Wed, 7 Sep 2016 19:42:49 +0200 Subject: [PATCH] 2.33b --- config.h | 2 +- docs/ChangeLog | 9 +++++++++ docs/INSTALL | 18 +++++++++++++++--- docs/README | 1 + llvm_mode/afl-clang-fast.c | 3 +++ 5 files changed, 29 insertions(+), 4 deletions(-) diff --git a/config.h b/config.h index fbe17c08..cd0d25f8 100644 --- a/config.h +++ b/config.h @@ -21,7 +21,7 @@ /* Version string: */ -#define VERSION "2.32b" +#define VERSION "2.33b" /****************************************************** * * diff --git a/docs/ChangeLog b/docs/ChangeLog index d6b55257..61ce5596 100644 --- a/docs/ChangeLog +++ b/docs/ChangeLog @@ -16,6 +16,15 @@ Not sure if you should upgrade? The lowest currently recommended version is 2.31b. If you're stuck on an earlier release, it's strongly advisable to get on with the times. +-------------- +Version 2.33b: +-------------- + + - Added code to strip -Wl,-z,defs and -Wl,--no-undefined for afl-clang-fast, + since they interfere with -shared. Spotted and diagnosed by Toby Hutton. + + - Added some fuzzing tips for Android. + -------------- Version 2.32b: -------------- diff --git a/docs/INSTALL b/docs/INSTALL index fa8a34c3..4168e88f 100644 --- a/docs/INSTALL +++ b/docs/INSTALL @@ -164,8 +164,20 @@ VirtualBox or so to run a hardware-accelerated Linux VM; it will run around 20x faster or so. If you have a *really* compelling use case for Cygwin, let me know. -Although Android on x86 should theoretically work, the stock kernel has SHM -support compiled out, so you will need to address this issue first. It's -possible that all you need is this: +Although Android on x86 should theoretically work, the stock kernel may have +SHM support compiled out, and if so, you may have to address that issue first. +It's possible that all you need is this workaround: https://github.com/pelya/android-shmem + +Joshua J. Drake notes that the Android linker adds a shim that automatically +intercepts SIGSEGV and related signals. To fix this issue and be able to see +crashes, you need to put this at the beginning of the fuzzed program: + + signal(SIGILL, SIG_DFL); + signal(SIGABRT, SIG_DFL); + signal(SIGBUS, SIG_DFL); + signal(SIGFPE, SIG_DFL); + signal(SIGSEGV, SIG_DFL); + +You may need to #include first. diff --git a/docs/README b/docs/README index a9a05fa4..a937fa6f 100644 --- a/docs/README +++ b/docs/README @@ -478,6 +478,7 @@ bug reports, or patches from: Vegard Nossum Jan Kneschke Kurt Roeckx Marcel Bohme Van-Thuan Pham Abhik Roychoudhury + Joshua J. Drake Toby Hutton Thank you! diff --git a/llvm_mode/afl-clang-fast.c b/llvm_mode/afl-clang-fast.c index ba69a62d..0bb233db 100644 --- a/llvm_mode/afl-clang-fast.c +++ b/llvm_mode/afl-clang-fast.c @@ -152,6 +152,9 @@ static void edit_params(u32 argc, char** argv) { if (!strcmp(cur, "-shared")) maybe_linking = 0; + if (!strcmp(cur, "-Wl,-z,defs") || + !strcmp(cur, "-Wl,--no-undefined")) continue; + cc_params[cc_par_cnt++] = cur; }