Changes to build many-linux build from working copy instead of a fixed branch
MODIFY
frida_mode/GNUmakefile
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)

MODIFY
frida_mode/many-linux/Dockerfile
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

MODIFY
frida_mode/many-linux/GNUmakefile
frida_mode/many-linux/GNUmakefile
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:

MODIFY
frida_mode/many-linux/README.md
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.

Changes to build many-linux build from working copy instead of a fixed branch