diff options
author | van Hauser <vh@thc.org> | 2022-08-11 20:19:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-11 20:19:28 +0200 |
commit | 89d6e306f29d1424012cdbb95d5cb18f6e36932f (patch) | |
tree | 446285b61fe71cdce801024d506aba2ee542a751 | |
parent | 39dadab065fef07ba9c94703edaeedc753d62182 (diff) | |
parent | 2c8228dbe4aca2dd27acc7828440c477913d9708 (diff) | |
download | afl++-89d6e306f29d1424012cdbb95d5cb18f6e36932f.tar.gz |
Merge pull request #1494 from WorksButNotTested/armhf
Armhf
-rw-r--r-- | frida_mode/GNUmakefile | 16 | ||||
-rw-r--r-- | frida_mode/src/module.c | 4 | ||||
-rw-r--r-- | frida_mode/test/png/GNUmakefile | 74 |
3 files changed, 79 insertions, 15 deletions
diff --git a/frida_mode/GNUmakefile b/frida_mode/GNUmakefile index 43b8932a..39c96d5b 100644 --- a/frida_mode/GNUmakefile +++ b/frida_mode/GNUmakefile @@ -32,7 +32,7 @@ CFLAGS+=-fPIC \ -ffunction-sections \ ifdef IS_ANDROID -CFLAGS+=-DANDROID +CFLAGS+=-DANDROID endif AFL_CFLAGS:=-Wno-unused-parameter \ @@ -47,7 +47,7 @@ LDFLAGS+= -static-libstdc++ \ -DANDROID \ -llog \ -shared -else +else LDFLAGS+=-shared \ -lpthread \ -lresolv @@ -103,7 +103,7 @@ endif LDFLAGS+= -z noexecstack \ -Wl,--gc-sections \ -Wl,--exclude-libs,ALL \ - -ldl + -ldl LDSCRIPT:=-Wl,--version-script=$(PWD)frida.map endif @@ -118,7 +118,7 @@ endif ifdef IS_ANDROID OS:=android ifdef IS_x86 - ARCH:=x86 + ARCH:=x86 endif ifdef IS_x86 ARCH:=x86_64 @@ -247,17 +247,17 @@ else ifeq "$(ARCH)" "arm64" CFLAGS+=-I $(FRIDA_DIR)build/frida_thin-$(OS)-$(ARCH)/include/frida-1.0 \ -I $(FRIDA_DIR)build/frida_thin-sdk-$(OS)-$(ARCH)/include/glib-2.0/ \ - -I $(FRIDA_DIR)build/frida_thin-sdk-$(OS)-$(ARCH)/lib/glib-2.0/include/ \ + -I $(FRIDA_DIR)build/frida_thin-sdk-$(OS)-$(ARCH)/lib/glib-2.0/include/ \ -I $(FRIDA_DIR)build/frida_thin-sdk-$(OS)-$(ARCH)/include/capstone/ \ -I $(FRIDA_DIR)build/frida_thin-sdk-$(OS)-$(ARCH)/include/json-glib-1.0/ \ ifeq "$(OS)" "android" - CFLAGS += -static-libstdc++ +CFLAGS += -static-libstdc++ endif else CFLAGS+=-I $(FRIDA_DIR)build/frida_thin-$(OS)-$(ARCH)/include/frida-1.0 \ -I $(FRIDA_DIR)build/frida_thin-sdk-$(OS)-$(ARCH)/include/glib-2.0/ \ - -I $(FRIDA_DIR)build/frida_thin-sdk-$(OS)-$(ARCH)/lib/glib-2.0/include/ \ + -I $(FRIDA_DIR)build/frida_thin-sdk-$(OS)-$(ARCH)/lib/glib-2.0/include/ \ -I $(FRIDA_DIR)build/frida_thin-sdk-$(OS)-$(ARCH)/include/capstone/ \ -I $(FRIDA_DIR)build/frida_thin-sdk-$(OS)-$(ARCH)/include/json-glib-1.0/ \ @@ -284,7 +284,7 @@ CFLAGS+=-I $(FRIDA_DIR)build/frida-$(OS)-$(ARCH)/include/frida-1.0 \ -I $(FRIDA_DIR)build/sdk-$(OS)-$(ARCH)/include/glib-2.0/ \ -I $(FRIDA_DIR)build/sdk-$(OS)-$(ARCH)/lib/glib-2.0/include/ \ -I $(FRIDA_DIR)build/sdk-$(OS)-$(ARCH)/include/capstone/ \ - -I $(FRIDA_DIR)build/sdk-$(OS)-$(ARCH)/include/json-glib-1.0/ + -I $(FRIDA_DIR)build/sdk-$(OS)-$(ARCH)/include/json-glib-1.0/ ifeq "$(OS)" "android" CFLAGS += -static-libstdc++ diff --git a/frida_mode/src/module.c b/frida_mode/src/module.c index 4b6b2b3f..2e4a4175 100644 --- a/frida_mode/src/module.c +++ b/frida_mode/src/module.c @@ -77,7 +77,9 @@ static int on_dlclose(void *handle) { range = &g_array_index(ranges, gum_range_t, i); base = range->range.base_address; limit = base + range->range.size; - FVERBOSE("Reserving range: 0x%016lx, 0x%016lX", base, limit); + FVERBOSE("Reserving range: 0x%016" G_GINT64_MODIFIER + "x, 0x%016" G_GINT64_MODIFIER "X", + base, limit); mem = gum_memory_allocate(GSIZE_TO_POINTER(base), range->range.size, page_size, GUM_PAGE_NO_ACCESS); if (mem == NULL) { FATAL("Failed to allocate %p (%d)", mem, errno); } diff --git a/frida_mode/test/png/GNUmakefile b/frida_mode/test/png/GNUmakefile index 0f591508..864265e0 100644 --- a/frida_mode/test/png/GNUmakefile +++ b/frida_mode/test/png/GNUmakefile @@ -2,10 +2,17 @@ PWD:=$(shell pwd)/ ROOT:=$(PWD)../../../ BUILD_DIR:=$(PWD)build/ +LIBZ_BUILD_DIR:=$(BUILD_DIR)libz/ LIBPNG_BUILD_DIR:=$(BUILD_DIR)libpng/ HARNESS_BUILD_DIR:=$(BUILD_DIR)harness/ PNGTEST_BUILD_DIR:=$(BUILD_DIR)pngtest/ +LIBZ_FILE:=$(LIBZ_BUILD_DIR)zlib-1.2.12.tar.gz +LIBZ_URL:=http://www.zlib.net/zlib-1.2.12.tar.gz +LIBZ_DIR:=$(LIBZ_BUILD_DIR)zlib-1.2.12/ +LIBZ_PC:=$(ZLIB_DIR)zlib.pc +LIBZ_LIB:=$(LIBZ_DIR)libz.a + LIBPNG_FILE:=$(LIBPNG_BUILD_DIR)libpng-1.2.56.tar.gz LIBPNG_URL:=https://downloads.sourceforge.net/project/libpng/libpng12/older-releases/1.2.56/libpng-1.2.56.tar.gz LIBPNG_DIR:=$(LIBPNG_BUILD_DIR)libpng-1.2.56/ @@ -32,11 +39,16 @@ FRIDA_OUT:=$(BUILD_DIR)frida-out .PHONY: all clean qemu frida +ARCH?="" + all: $(TEST_BIN) make -C $(ROOT)frida_mode/ 32: - CFLAGS="-m32" LDFLAGS="-m32" ARCH="x86" make all + CFLAGS="-m32" LDFLAGS="-m32" make $(TEST_BIN) + +arm: + ARCH="arm" CC="arm-linux-gnueabihf-gcc" CXX="arm-linux-gnueabihf-g++" make $(TEST_BIN) $(BUILD_DIR): mkdir -p $@ @@ -51,6 +63,8 @@ $(HARNESS_FILE): | $(HARNESS_BUILD_DIR) $(HARNESS_OBJ): $(HARNESS_FILE) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ -c $< +harness: $(HARNESS_OBJ) + ######### PNGTEST ######## $(PNGTEST_BUILD_DIR): | $(BUILD_DIR) @@ -62,6 +76,34 @@ $(PNGTEST_FILE): | $(PNGTEST_BUILD_DIR) $(PNGTEST_OBJ): $(PNGTEST_FILE) | $(LIBPNG_DIR) $(CXX) $(CFLAGS) $(LDFLAGS) -std=c++11 -I $(LIBPNG_DIR) -o $@ -c $< +pngtest: $(PNGTEST_OBJ) + +######### LIBZ ######## + +$(LIBZ_BUILD_DIR): | $(BUILD_DIR) + mkdir -p $@ + +$(LIBZ_FILE): | $(LIBZ_BUILD_DIR) + wget -O $@ $(LIBZ_URL) + +$(LIBZ_DIR): $(LIBZ_FILE) + tar zxvf $(LIBZ_FILE) -C $(LIBZ_BUILD_DIR) + +$(LIBZ_PC): | $(LIBZ_DIR) + cd $(LIBZ_DIR) && \ + CFLAGS="$(CFLAGS) -fPIC" \ + ./configure \ + --static \ + --archs="$(ARCH)" + +$(LIBZ_LIB): $(LIBZ_PC) + CFLAGS="$(CFLAGS) -fPIC" \ + make \ + -C $(LIBZ_DIR) \ + -j + +libz: $(LIBZ_LIB) + ######### LIBPNG ######## $(LIBPNG_BUILD_DIR): | $(BUILD_DIR) @@ -73,11 +115,21 @@ $(LIBPNG_FILE): | $(LIBPNG_BUILD_DIR) $(LIBPNG_DIR): $(LIBPNG_FILE) tar zxvf $(LIBPNG_FILE) -C $(LIBPNG_BUILD_DIR) -$(LIBPNG_MAKEFILE): | $(LIBPNG_DIR) - cd $(LIBPNG_DIR) && ./configure +$(LIBPNG_MAKEFILE): $(LIBZ_LIB) | $(LIBPNG_DIR) + cd $(LIBPNG_DIR) && \ + CFLAGS="$(CFLAGS) -I$(LIBZ_DIR)" \ + LDFLAGS="-L$(LIBZ_DIR)" \ + ./configure \ + --host="$(ARCH)" $(LIBPNG_LIB): $(LIBPNG_MAKEFILE) - make -C $(LIBPNG_DIR) + CFLAGS="$(CFLAGS) -I$(LIBZ_DIR)" \ + LDFLAGS="-L$(LIBZ_DIR)" \ + make \ + -C $(LIBPNG_DIR) \ + -j + +png: $(LIBPNG_LIB) ######### TEST ######## @@ -86,11 +138,21 @@ $(TEST_BIN): $(HARNESS_OBJ) $(PNGTEST_OBJ) $(LIBPNG_LIB) $(CFLAGS) \ $(LDFLAGS) \ -o $@ \ - $(HARNESS_OBJ) $(PNGTEST_OBJ) $(LIBPNG_LIB) \ - -lz \ + $(HARNESS_OBJ) $(PNGTEST_OBJ) $(LIBPNG_LIB) $(LIBZ_LIB) \ $(TEST_BIN_LDFLAGS) \ +test_bin: $(TEST_BIN) + +dowload: $(LIBZ_FILE) $(LIBPNG_FILE) $(HARNESS_FILE) $(PNGTEST_FILE) + clean: + rm -rf $(LIBZ_DIR) + rm -rf $(LIBPNG_DIR) + rm -f $(HARNESS_OBJ) + rm -f $(PNGTEST_OBJ) + rm -f $(TEST_BIN) + +clean_all: rm -rf $(BUILD_DIR) qemu: $(TEST_BIN) |