about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2019-12-29 19:38:45 +0100
committervan Hauser <vh@thc.org>2019-12-29 19:38:45 +0100
commitcd2cae720bb5f5bac6cb8de9357cea427c9ae384 (patch)
treee6937ec8543dcd2d129b2d69e6d4f16f5643c495
parent65b4141cd385da7ec9e55e2687fc3063b3046ecc (diff)
downloadafl++-cd2cae720bb5f5bac6cb8de9357cea427c9ae384.tar.gz
added AFL_AS_FORCE_INSTRUMENT env
-rw-r--r--docs/ChangeLog2
-rw-r--r--docs/env_variables.txt4
-rw-r--r--src/afl-as.c5
3 files changed, 10 insertions, 1 deletions
diff --git a/docs/ChangeLog b/docs/ChangeLog
index 92fd08ec..cad99c9f 100644
--- a/docs/ChangeLog
+++ b/docs/ChangeLog
@@ -20,6 +20,8 @@ Version ++2.59d (develop):
   - added ./experimental/argv_fuzzing ld_preload library by Kjell Braden
   - added preeny's desock_dup ld_preload library as
     ./experimental/socket_fuzzing for network fuzzing
+  - added AFL_AS_FORCE_INSTRUMENT environment variable for afl-as - this is
+    for retrorewrite project
   - we now set QEMU_SET_ENV from AFL_PRELOAD when qemu_mode is used
 
 
diff --git a/docs/env_variables.txt b/docs/env_variables.txt
index 427f8cca..a6162767 100644
--- a/docs/env_variables.txt
+++ b/docs/env_variables.txt
@@ -65,6 +65,10 @@ tools make fairly broad use of environmental variables:
     mkdir assembly_here
     TMPDIR=$PWD/assembly_here AFL_KEEP_ASSEMBLY=1 make clean all
 
+  - If you are a weird person that wants to compile and instrument asm
+    text files then use the AFL_AS_FORCE_INSTRUMENT variable:
+      AFL_AS_FORCE_INSTRUMENT=1 afl-gcc foo.s -o foo
+
   - Setting AFL_QUIET will prevent afl-cc and afl-as banners from being
     displayed during compilation, in case you find them distracting.
 
diff --git a/src/afl-as.c b/src/afl-as.c
index 9abe3fc2..8f24c16f 100644
--- a/src/afl-as.c
+++ b/src/afl-as.c
@@ -208,8 +208,11 @@ static void edit_params(int argc, char** argv) {
        NSS. */
 
     if (strncmp(input_file, tmp_dir, strlen(tmp_dir)) &&
-        strncmp(input_file, "/var/tmp/", 9) && strncmp(input_file, "/tmp/", 5))
+        strncmp(input_file, "/var/tmp/", 9) && strncmp(input_file, "/tmp/", 5)
+        && getenv("AFL_AS_FORCE_INSTRUMENT") == NULL)
       pass_thru = 1;
+    else if (getenv("AFL_AS_FORCE_INSTRUMENT"))
+      unsetenv("AFL_AS_FORCE_INSTRUMENT");
 
   }