mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-23 06:28:51 +00:00
@ -32,7 +32,7 @@ CFLAGS+=-fPIC \
|
|||||||
-ffunction-sections \
|
-ffunction-sections \
|
||||||
|
|
||||||
ifdef IS_ANDROID
|
ifdef IS_ANDROID
|
||||||
CFLAGS+=-DANDROID
|
CFLAGS+=-DANDROID
|
||||||
endif
|
endif
|
||||||
|
|
||||||
AFL_CFLAGS:=-Wno-unused-parameter \
|
AFL_CFLAGS:=-Wno-unused-parameter \
|
||||||
@ -47,7 +47,7 @@ LDFLAGS+= -static-libstdc++ \
|
|||||||
-DANDROID \
|
-DANDROID \
|
||||||
-llog \
|
-llog \
|
||||||
-shared
|
-shared
|
||||||
else
|
else
|
||||||
LDFLAGS+=-shared \
|
LDFLAGS+=-shared \
|
||||||
-lpthread \
|
-lpthread \
|
||||||
-lresolv
|
-lresolv
|
||||||
@ -103,7 +103,7 @@ endif
|
|||||||
LDFLAGS+= -z noexecstack \
|
LDFLAGS+= -z noexecstack \
|
||||||
-Wl,--gc-sections \
|
-Wl,--gc-sections \
|
||||||
-Wl,--exclude-libs,ALL \
|
-Wl,--exclude-libs,ALL \
|
||||||
-ldl
|
-ldl
|
||||||
LDSCRIPT:=-Wl,--version-script=$(PWD)frida.map
|
LDSCRIPT:=-Wl,--version-script=$(PWD)frida.map
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -118,7 +118,7 @@ endif
|
|||||||
ifdef IS_ANDROID
|
ifdef IS_ANDROID
|
||||||
OS:=android
|
OS:=android
|
||||||
ifdef IS_x86
|
ifdef IS_x86
|
||||||
ARCH:=x86
|
ARCH:=x86
|
||||||
endif
|
endif
|
||||||
ifdef IS_x86
|
ifdef IS_x86
|
||||||
ARCH:=x86_64
|
ARCH:=x86_64
|
||||||
@ -247,17 +247,17 @@ else ifeq "$(ARCH)" "arm64"
|
|||||||
|
|
||||||
CFLAGS+=-I $(FRIDA_DIR)build/frida_thin-$(OS)-$(ARCH)/include/frida-1.0 \
|
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)/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/capstone/ \
|
||||||
-I $(FRIDA_DIR)build/frida_thin-sdk-$(OS)-$(ARCH)/include/json-glib-1.0/ \
|
-I $(FRIDA_DIR)build/frida_thin-sdk-$(OS)-$(ARCH)/include/json-glib-1.0/ \
|
||||||
|
|
||||||
ifeq "$(OS)" "android"
|
ifeq "$(OS)" "android"
|
||||||
CFLAGS += -static-libstdc++
|
CFLAGS += -static-libstdc++
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
CFLAGS+=-I $(FRIDA_DIR)build/frida_thin-$(OS)-$(ARCH)/include/frida-1.0 \
|
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)/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/capstone/ \
|
||||||
-I $(FRIDA_DIR)build/frida_thin-sdk-$(OS)-$(ARCH)/include/json-glib-1.0/ \
|
-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)/include/glib-2.0/ \
|
||||||
-I $(FRIDA_DIR)build/sdk-$(OS)-$(ARCH)/lib/glib-2.0/include/ \
|
-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/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"
|
ifeq "$(OS)" "android"
|
||||||
CFLAGS += -static-libstdc++
|
CFLAGS += -static-libstdc++
|
||||||
|
@ -77,7 +77,9 @@ static int on_dlclose(void *handle) {
|
|||||||
range = &g_array_index(ranges, gum_range_t, i);
|
range = &g_array_index(ranges, gum_range_t, i);
|
||||||
base = range->range.base_address;
|
base = range->range.base_address;
|
||||||
limit = base + range->range.size;
|
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,
|
mem = gum_memory_allocate(GSIZE_TO_POINTER(base), range->range.size,
|
||||||
page_size, GUM_PAGE_NO_ACCESS);
|
page_size, GUM_PAGE_NO_ACCESS);
|
||||||
if (mem == NULL) { FATAL("Failed to allocate %p (%d)", mem, errno); }
|
if (mem == NULL) { FATAL("Failed to allocate %p (%d)", mem, errno); }
|
||||||
|
@ -2,10 +2,17 @@ PWD:=$(shell pwd)/
|
|||||||
ROOT:=$(PWD)../../../
|
ROOT:=$(PWD)../../../
|
||||||
BUILD_DIR:=$(PWD)build/
|
BUILD_DIR:=$(PWD)build/
|
||||||
|
|
||||||
|
LIBZ_BUILD_DIR:=$(BUILD_DIR)libz/
|
||||||
LIBPNG_BUILD_DIR:=$(BUILD_DIR)libpng/
|
LIBPNG_BUILD_DIR:=$(BUILD_DIR)libpng/
|
||||||
HARNESS_BUILD_DIR:=$(BUILD_DIR)harness/
|
HARNESS_BUILD_DIR:=$(BUILD_DIR)harness/
|
||||||
PNGTEST_BUILD_DIR:=$(BUILD_DIR)pngtest/
|
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_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_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/
|
LIBPNG_DIR:=$(LIBPNG_BUILD_DIR)libpng-1.2.56/
|
||||||
@ -32,11 +39,16 @@ FRIDA_OUT:=$(BUILD_DIR)frida-out
|
|||||||
|
|
||||||
.PHONY: all clean qemu frida
|
.PHONY: all clean qemu frida
|
||||||
|
|
||||||
|
ARCH?=""
|
||||||
|
|
||||||
all: $(TEST_BIN)
|
all: $(TEST_BIN)
|
||||||
make -C $(ROOT)frida_mode/
|
make -C $(ROOT)frida_mode/
|
||||||
|
|
||||||
32:
|
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):
|
$(BUILD_DIR):
|
||||||
mkdir -p $@
|
mkdir -p $@
|
||||||
@ -51,6 +63,8 @@ $(HARNESS_FILE): | $(HARNESS_BUILD_DIR)
|
|||||||
$(HARNESS_OBJ): $(HARNESS_FILE)
|
$(HARNESS_OBJ): $(HARNESS_FILE)
|
||||||
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ -c $<
|
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
harness: $(HARNESS_OBJ)
|
||||||
|
|
||||||
######### PNGTEST ########
|
######### PNGTEST ########
|
||||||
|
|
||||||
$(PNGTEST_BUILD_DIR): | $(BUILD_DIR)
|
$(PNGTEST_BUILD_DIR): | $(BUILD_DIR)
|
||||||
@ -62,6 +76,34 @@ $(PNGTEST_FILE): | $(PNGTEST_BUILD_DIR)
|
|||||||
$(PNGTEST_OBJ): $(PNGTEST_FILE) | $(LIBPNG_DIR)
|
$(PNGTEST_OBJ): $(PNGTEST_FILE) | $(LIBPNG_DIR)
|
||||||
$(CXX) $(CFLAGS) $(LDFLAGS) -std=c++11 -I $(LIBPNG_DIR) -o $@ -c $<
|
$(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 ########
|
||||||
|
|
||||||
$(LIBPNG_BUILD_DIR): | $(BUILD_DIR)
|
$(LIBPNG_BUILD_DIR): | $(BUILD_DIR)
|
||||||
@ -73,11 +115,21 @@ $(LIBPNG_FILE): | $(LIBPNG_BUILD_DIR)
|
|||||||
$(LIBPNG_DIR): $(LIBPNG_FILE)
|
$(LIBPNG_DIR): $(LIBPNG_FILE)
|
||||||
tar zxvf $(LIBPNG_FILE) -C $(LIBPNG_BUILD_DIR)
|
tar zxvf $(LIBPNG_FILE) -C $(LIBPNG_BUILD_DIR)
|
||||||
|
|
||||||
$(LIBPNG_MAKEFILE): | $(LIBPNG_DIR)
|
$(LIBPNG_MAKEFILE): $(LIBZ_LIB) | $(LIBPNG_DIR)
|
||||||
cd $(LIBPNG_DIR) && ./configure
|
cd $(LIBPNG_DIR) && \
|
||||||
|
CFLAGS="$(CFLAGS) -I$(LIBZ_DIR)" \
|
||||||
|
LDFLAGS="-L$(LIBZ_DIR)" \
|
||||||
|
./configure \
|
||||||
|
--host="$(ARCH)"
|
||||||
|
|
||||||
$(LIBPNG_LIB): $(LIBPNG_MAKEFILE)
|
$(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 ########
|
######### TEST ########
|
||||||
|
|
||||||
@ -86,11 +138,21 @@ $(TEST_BIN): $(HARNESS_OBJ) $(PNGTEST_OBJ) $(LIBPNG_LIB)
|
|||||||
$(CFLAGS) \
|
$(CFLAGS) \
|
||||||
$(LDFLAGS) \
|
$(LDFLAGS) \
|
||||||
-o $@ \
|
-o $@ \
|
||||||
$(HARNESS_OBJ) $(PNGTEST_OBJ) $(LIBPNG_LIB) \
|
$(HARNESS_OBJ) $(PNGTEST_OBJ) $(LIBPNG_LIB) $(LIBZ_LIB) \
|
||||||
-lz \
|
|
||||||
$(TEST_BIN_LDFLAGS) \
|
$(TEST_BIN_LDFLAGS) \
|
||||||
|
|
||||||
|
test_bin: $(TEST_BIN)
|
||||||
|
|
||||||
|
dowload: $(LIBZ_FILE) $(LIBPNG_FILE) $(HARNESS_FILE) $(PNGTEST_FILE)
|
||||||
|
|
||||||
clean:
|
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)
|
rm -rf $(BUILD_DIR)
|
||||||
|
|
||||||
qemu: $(TEST_BIN)
|
qemu: $(TEST_BIN)
|
||||||
|
Reference in New Issue
Block a user