about summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xafl-cmin15
-rwxr-xr-xafl-cmin.bash11
2 files changed, 15 insertions, 11 deletions
diff --git a/afl-cmin b/afl-cmin
index 44716af1..4e0d78df 100755
--- a/afl-cmin
+++ b/afl-cmin
@@ -291,13 +291,14 @@ BEGIN {
     target_bin = tnew
   }
 
-  get_map_size = "AFL_DUMP_MAP_SIZE=1 " target_bin
-  get_map_size | getline mapsize
-  if (mapsize && mapsize > 65535) {
-
-    AFL_MAP_SIZE = "AFL_MAP_SIZE="mapsize" "
-    print "[+] Setting "AFL_MAP_SIZE
-
+  if (0 == system ( "grep -aq AFL_DUMP_MAP_SIZE" target_bin )) {
+    echo "[!] Trying to obtain the map size of the target ..."
+    get_map_size = "AFL_DUMP_MAP_SIZE=1 " target_bin
+    get_map_size | getline mapsize
+    if (mapsize && mapsize > 65535 && mapsize < 100000000) {
+      AFL_MAP_SIZE = "AFL_MAP_SIZE="mapsize" "
+      print "[+] Setting "AFL_MAP_SIZE
+    }
   }
 
   if (!ENVIRON["AFL_SKIP_BIN_CHECK"] && !qemu_mode && !frida_mode && !unicorn_mode) {
diff --git a/afl-cmin.bash b/afl-cmin.bash
index db3e8ae5..d2218cd0 100755
--- a/afl-cmin.bash
+++ b/afl-cmin.bash
@@ -215,10 +215,13 @@ if [ ! -f "$TARGET_BIN" -o ! -x "$TARGET_BIN" ]; then
 
 fi
 
-MAPSIZE=`AFL_DUMP_MAP_SIZE=1 "./$TARGET_BIN" 2>/dev/null`
-test -n "$MAPSIZE" && {
-  export AFL_MAP_SIZE=$MAPSIZE
-  echo "[+] Setting AFL_MAP_SIZE=$MAPSIZE"
+grep -aq AFL_DUMP_MAP_SIZE "./$TARGET_BIN" && {
+  echo "[!] Trying to obtain the map size of the target ..."
+  MAPSIZE=`AFL_DUMP_MAP_SIZE=1 "./$TARGET_BIN" 2>/dev/null`
+  test -n "$MAPSIZE" && {
+    export AFL_MAP_SIZE=$MAPSIZE
+    echo "[+] Setting AFL_MAP_SIZE=$MAPSIZE"
+  }
 }
 
 if [ "$AFL_SKIP_BIN_CHECK" = "" -a "$QEMU_MODE" = "" -a "$FRIDA_MODE" = "" -a "$UNICORN_MODE" = "" ]; then