about summary refs log tree commit diff
path: root/examples/afl_network_proxy
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2020-05-04 12:51:38 +0200
committervan Hauser <vh@thc.org>2020-05-04 12:51:38 +0200
commit945e00b73fde56f98235a03472b4af1539983f80 (patch)
tree564abc9e4d91f7f7cf3f5d9d009d8944332a7a7b /examples/afl_network_proxy
parente592b4bcf0f85ff128d684f83d8aa9328ccca39f (diff)
downloadafl++-945e00b73fde56f98235a03472b4af1539983f80.tar.gz
final touches for afl_network_proxy
Diffstat (limited to 'examples/afl_network_proxy')
-rw-r--r--examples/afl_network_proxy/GNUmakefile24
-rw-r--r--examples/afl_network_proxy/README.md11
2 files changed, 15 insertions, 20 deletions
diff --git a/examples/afl_network_proxy/GNUmakefile b/examples/afl_network_proxy/GNUmakefile
index 93eee4c1..99221d10 100644
--- a/examples/afl_network_proxy/GNUmakefile
+++ b/examples/afl_network_proxy/GNUmakefile
@@ -10,27 +10,19 @@ ifdef STATIC
   CFLAGS += -static
 endif
 
-ifdef USE_DEFLATE
-  CFLAGS += -DUSE_DEFLATE=1
-  LDFLAGS += -ldeflate
-  $(info activating libdeflate-dev for compressing)
+ifeq "$(shell echo '$(HASH)include <libdeflate.h>@int main() { struct libdeflate_compressor *d = libdeflate_alloc_compressor(1); return 0;}' | tr @ '\n' | $(CC) $(CFLAGS) -x c - -o .test2 -ldeflate 2>/dev/null && echo 1 || echo 0 ; rm -f .test2 )" "1"
+ CFLAGS += -ldeflate -DUSE_DEFLATE=1
+ $(info libdeflate-dev was detected, using compressing)
+else
+ $(warn did not find libdeflate-dev, cannot use compression)
 endif
 
-# Disables because compression is slower
-# sending 64kb instead of compressing to 112bytes is slower? weird ...
-#ifeq "$(shell echo '$(HASH)include <libdeflate.h>@int main() { struct libdeflate_compressor *d = libdeflate_alloc_compressor(1); return 0;}' | tr @ '\n' | $(CC) $(CFLAGS) -x c - -o .test2 -ldeflate 2>/dev/null && echo 1 || echo 0 ; rm -f .test2 )" "1"
-# CFLAGS += -ldeflate -DUSE_DEFLATE=1
-# $(info libdeflate-dev was detected, using compressing)
-#else
-# $(warn did not find libdeflate-dev, cannot use compression)
-#endif
-
 all:	$(PROGRAMS)
 
 help:
 	@echo make options:
-	echo STATIC - build as static binaries
-	echo USE_DEFLATE - build with compression library
+	@echo STATIC - build as static binaries
+	@echo COMPRESS_TESTCASES - compress test cases
 
 afl-network-client:	afl-network-client.c
 	$(CC) $(CFLAGS) -I../../include -o afl-network-client afl-network-client.c $(LDFLAGS)
@@ -44,5 +36,5 @@ clean:
 install: all
 	install -d -m 755 $${DESTDIR}$(BIN_PATH) $${DESTDIR}$(DOC_PATH)
 	install -m 755 $(PROGRAMS) $${DESTDIR}$(BIN_PATH)
-	install -m 644 README.md $${DESTDIR}$(DOC_PATH)/README.network_proxy.md
+	install -T -m 644 README.md $${DESTDIR}$(DOC_PATH)/README.network_proxy.md
 
diff --git a/examples/afl_network_proxy/README.md b/examples/afl_network_proxy/README.md
index 84ebfa48..255be0d8 100644
--- a/examples/afl_network_proxy/README.md
+++ b/examples/afl_network_proxy/README.md
@@ -16,9 +16,12 @@ Note that the impact on fuzzing speed will be huge, expect a loss of 90%.
 
 Just type `make` and let the autodetection do everything for you.
 
-Note that compression is supported but currently disabled. It seems that
-sending 64kb of map data over TCP is faster than compressing it with the
-fastest algorithm and options to 112 byte and sending this. Weird.
+Note that you will get a 40-50% performance increase if you have libdeflate-dev
+installed. The GNUmakefile will autodetect it if present.
+
+If your target has large test cases (10+kb) that are ascii only or large chunks
+of zero blocks then set `CFLAGS=-DCOMPRESS_TESTCASES=1` to compress them.
+For most targets this hurts performance though so it is disabled by default.
 
 ### on the target
 
@@ -29,7 +32,7 @@ e.g.:
 $ afl-network-server -i 1111 -m 25M -t 1000 -- /bin/target -f @@
 ```
 
-### on the fuzzing master
+### on the (afl-fuzz) master
 
 Just run afl-fuzz with your normal options, however the target should be
 `afl-network-client` with the IP and PORT of the `afl-network-server` and