about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYour Name <you@example.com>2021-08-17 18:34:46 +0100
committerYour Name <you@example.com>2021-08-17 18:34:46 +0100
commitc3641fbd976f5ef4df05f06241a4f1dc99ed80a3 (patch)
tree5531b2f346b94841eb389bdb1786d7d8b85e84f2
parent5f20137e9dfdc1f77e6b579b8a614907b18fbf97 (diff)
downloadafl++-c3641fbd976f5ef4df05f06241a4f1dc99ed80a3.tar.gz
Changes to build many-linux build from working copy instead of a fixed branch
-rw-r--r--frida_mode/GNUmakefile2
-rw-r--r--frida_mode/many-linux/Dockerfile10
-rw-r--r--frida_mode/many-linux/GNUmakefile8
-rw-r--r--frida_mode/many-linux/README.md3
4 files changed, 7 insertions, 16 deletions
diff --git a/frida_mode/GNUmakefile b/frida_mode/GNUmakefile
index 6b17982d..58a53823 100644
--- a/frida_mode/GNUmakefile
+++ b/frida_mode/GNUmakefile
@@ -166,7 +166,7 @@ $(GUM_DEVKIT_TARBALL): $(FRIDA_GUM_DEVKIT_COMPRESSED_TARBALL)| $(FRIDA_BUILD_DIR
 	cp -v $< $@
 else
 $(GUM_DEVKIT_TARBALL): | $(FRIDA_BUILD_DIR)
-	wget -O $@ $(GUM_DEVKIT_URL)
+	wget -O $@ $(GUM_DEVKIT_URL) || curl -L -o $@ $(GUM_DEVKIT_URL)
 endif
 
 $(GUM_DEVIT_LIBRARY): $(GUM_DEVKIT_TARBALL)
diff --git a/frida_mode/many-linux/Dockerfile b/frida_mode/many-linux/Dockerfile
index 2cd56bc8..170f0757 100644
--- a/frida_mode/many-linux/Dockerfile
+++ b/frida_mode/many-linux/Dockerfile
@@ -6,19 +6,9 @@ RUN chmod +x /bin/realpath
 RUN yum -y install xz
 RUN yum -y install vim-common
 
-WORKDIR /
-RUN git clone https://github.com/AFLplusplus/AFLplusplus.git
-
-WORKDIR /AFLplusplus
-RUN mkdir -p /AFLplusplus/frida_mode/build/frida/
-RUN curl -L -o /AFLplusplus/frida_mode/build/frida/frida-gumjs-devkit-15.0.0-linux-x86_64.tar.xz "https://github.com/frida/frida/releases/download/15.0.0/frida-gumjs-devkit-15.0.0-linux-x86_64.tar.xz"
-
 WORKDIR /AFLplusplus
-RUN git checkout dev
-WORKDIR /AFLplusplus/frida_mode
 ENV CFLAGS="\
     -DADDR_NO_RANDOMIZE=0x0040000 \
     -Wno-implicit-function-declaration \
     "
 ENV CXX=$CC
-RUN make
diff --git a/frida_mode/many-linux/GNUmakefile b/frida_mode/many-linux/GNUmakefile
index 2860f20c..03b619f6 100644
--- a/frida_mode/many-linux/GNUmakefile
+++ b/frida_mode/many-linux/GNUmakefile
@@ -1,20 +1,20 @@
 PWD:=$(shell pwd)/
+ROOT:=$(PWD)../../
 BUILD_DIR:=$(PWD)build/
 
 .PHONY: all clean shell
 
-all: | $(BUILD_DIR)
+all:
 	docker build --tag many-afl-frida .
 	docker run --rm \
-		-v $(PWD)build/:/export \
+		-v $(ROOT):/AFLplusplus \
 		many-afl-frida \
-		cp /AFLplusplus/afl-frida-trace.so /export
+		make -C /AFLplusplus/frida_mode clean all
 
 $(BUILD_DIR):
 	mkdir -p $@
 
 clean:
-	rm -rf $(BUILD_DIR)
 	docker images --filter 'dangling=true' -q --no-trunc | xargs -L1 docker rmi --force
 
 shell:
diff --git a/frida_mode/many-linux/README.md b/frida_mode/many-linux/README.md
index 2c7b6823..4bd7a6c1 100644
--- a/frida_mode/many-linux/README.md
+++ b/frida_mode/many-linux/README.md
@@ -5,4 +5,5 @@ This folder contains a Docker image to allow the building of
 based on CentOS Linux 5. By building `afl-frida-trace.so` for such an old
 version of Linux, given the strong backward compatibility of Linux, this should
 work on the majority of Linux environments. This may be useful for targetting
-Linux distributions other than your development environment.
\ No newline at end of file
+Linux distributions other than your development environment. `many-local` builds
+`AFLplusplus` from the local working copy in the `many-linux` environment.