aboutsummaryrefslogtreecommitdiff
path: root/frida_mode/test/libpcap
diff options
context:
space:
mode:
authorWorksButNotTested <62701594+WorksButNotTested@users.noreply.github.com>2021-07-06 08:09:43 +0100
committerGitHub <noreply@github.com>2021-07-06 09:09:43 +0200
commit2a433f90c456b19cf9aa39384540f618c6eeb1a8 (patch)
treed5c44a780cd74a7b1931a7bd17ac8ad4bc0d65e4 /frida_mode/test/libpcap
parentbf9a15541888ac8836a70b4d01c2c9e7bd940051 (diff)
downloadafl++-2a433f90c456b19cf9aa39384540f618c6eeb1a8.tar.gz
Improved OSX support (#1005)
Co-authored-by: Your Name <you@example.com>
Diffstat (limited to 'frida_mode/test/libpcap')
-rw-r--r--frida_mode/test/libpcap/GNUmakefile12
-rwxr-xr-xfrida_mode/test/libpcap/get_symbol_addr.py36
2 files changed, 7 insertions, 41 deletions
diff --git a/frida_mode/test/libpcap/GNUmakefile b/frida_mode/test/libpcap/GNUmakefile
index 8a10be07..4d0bc4f1 100644
--- a/frida_mode/test/libpcap/GNUmakefile
+++ b/frida_mode/test/libpcap/GNUmakefile
@@ -34,7 +34,7 @@ LDFLAGS += -lpthread
TEST_BIN:=$(BUILD_DIR)test
ifeq "$(shell uname)" "Darwin"
-TEST_BIN_LDFLAGS:=-undefined dynamic_lookup
+TEST_BIN_LDFLAGS:=-undefined dynamic_lookup -Wl,-no_pie
endif
AFLPP_DRIVER_DUMMY_INPUT:=$(TCPDUMP_TESTS_DIR)in
@@ -54,18 +54,20 @@ ifeq "$(ARCH)" "i686"
endif
endif
-AFL_QEMU_PERSISTENT_ADDR=$(shell $(PWD)get_symbol_addr.py -f $(TEST_BIN) -s LLVMFuzzerTestOneInput -b 0x4000000000)
+GET_SYMBOL_ADDR:=$(ROOT)frida_mode/util/get_symbol_addr.sh
+
+AFL_QEMU_PERSISTENT_ADDR=$(shell $(GET_SYMBOL_ADDR) $(TEST_BIN) LLVMFuzzerTestOneInput 0x4000000000)
ifeq "$(ARCH)" "aarch64"
- AFL_FRIDA_PERSISTENT_ADDR=$(shell $(PWD)get_symbol_addr.py -f $(TEST_BIN) -s LLVMFuzzerTestOneInput -b 0x0000aaaaaaaaa000)
+ AFL_FRIDA_PERSISTENT_ADDR=$(shell $(GET_SYMBOL_ADDR) $(TEST_BIN) LLVMFuzzerTestOneInput 0x0000aaaaaaaaa000)
endif
ifeq "$(ARCH)" "x86_64"
- AFL_FRIDA_PERSISTENT_ADDR=$(shell $(PWD)get_symbol_addr.py -f $(TEST_BIN) -s LLVMFuzzerTestOneInput -b 0x0000555555554000)
+ AFL_FRIDA_PERSISTENT_ADDR=$(shell $(GET_SYMBOL_ADDR) $(TEST_BIN) LLVMFuzzerTestOneInput 0x0000555555554000)
endif
ifeq "$(ARCH)" "x86"
- AFL_FRIDA_PERSISTENT_ADDR=$(shell $(PWD)get_symbol_addr.py -f $(TEST_BIN) -s LLVMFuzzerTestOneInput -b 0x56555000)
+ AFL_FRIDA_PERSISTENT_ADDR=$(shell $(GET_SYMBOL_ADDR) $(TEST_BIN) LLVMFuzzerTestOneInput 0x56555000)
endif
.PHONY: all clean qemu frida hook
diff --git a/frida_mode/test/libpcap/get_symbol_addr.py b/frida_mode/test/libpcap/get_symbol_addr.py
deleted file mode 100755
index 1c46e010..00000000
--- a/frida_mode/test/libpcap/get_symbol_addr.py
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/python3
-import argparse
-from elftools.elf.elffile import ELFFile
-
-def process_file(file, symbol, base):
- with open(file, 'rb') as f:
- elf = ELFFile(f)
- symtab = elf.get_section_by_name('.symtab')
- mains = symtab.get_symbol_by_name(symbol)
- if len(mains) != 1:
- print ("Failed to find main")
- return 1
-
- main_addr = mains[0]['st_value']
- main = base + main_addr
- print ("0x%016x" % main)
- return 0
-
-def hex_value(x):
- return int(x, 16)
-
-def main():
- parser = argparse.ArgumentParser(description='Process some integers.')
- parser.add_argument('-f', '--file', dest='file', type=str,
- help='elf file name', required=True)
- parser.add_argument('-s', '--symbol', dest='symbol', type=str,
- help='symbol name', required=True)
- parser.add_argument('-b', '--base', dest='base', type=hex_value,
- help='elf base address', required=True)
-
- args = parser.parse_args()
- return process_file (args.file, args.symbol, args.base)
-
-if __name__ == "__main__":
- ret = main()
- exit(ret)