diff options
author | Dominik Maier <domenukk@gmail.com> | 2021-07-15 11:45:10 +0200 |
---|---|---|
committer | Dominik Maier <domenukk@gmail.com> | 2021-07-15 11:45:10 +0200 |
commit | 50fcd60bc76c53e4b0bcf4ab586ce1de6ac83234 (patch) | |
tree | a35cda2ddcb4690d88a53486feeb71b8b3fd7d8a | |
parent | 21215ac21cfca26f18c5b59ceb71a3b5a2920244 (diff) | |
parent | 458eb0813a6f7d63eed97f18696bca8274533123 (diff) | |
download | afl++-50fcd60bc76c53e4b0bcf4ab586ce1de6ac83234.tar.gz |
merged stable into dev
-rw-r--r-- | .github/FUNDING.yml | 3 | ||||
-rw-r--r-- | frida_mode/src/ranges.c | 5 | ||||
-rw-r--r-- | frida_mode/src/stalker.c | 3 | ||||
-rwxr-xr-x | frida_mode/test/jpeg/get_symbol_addr.py | 36 | ||||
-rwxr-xr-x | frida_mode/test/proj4/get_symbol_addr.py | 36 | ||||
m--------- | unicorn_mode/unicornafl | 0 |
6 files changed, 82 insertions, 1 deletions
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 102722a4..97e23585 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,6 +1,7 @@ # These are supported funding model platforms -github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +# Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +github: AFLplusplus patreon: # Replace with a single Patreon username open_collective: AFLplusplusEU ko_fi: # Replace with a single Ko-fi username diff --git a/frida_mode/src/ranges.c b/frida_mode/src/ranges.c index 5e78fa60..6fdd65a7 100644 --- a/frida_mode/src/ranges.c +++ b/frida_mode/src/ranges.c @@ -582,6 +582,11 @@ void ranges_init(void) { print_ranges("AFL_FRIDA_INST_RANGES", include_ranges); print_ranges("AFL_FRIDA_EXCLUDE_RANGES", exclude_ranges); + OKF("Ranges - Instrument libraries [%c]", ranges_inst_libs ? 'X' : ' '); + + print_ranges("AFL_FRIDA_INST_RANGES", include_ranges); + print_ranges("AFL_FRIDA_EXCLUDE_RANGES", exclude_ranges); + module_ranges = collect_module_ranges(); libs_ranges = collect_libs_ranges(); jit_ranges = collect_jit_ranges(); diff --git a/frida_mode/src/stalker.c b/frida_mode/src/stalker.c index 5df0386f..5520b73a 100644 --- a/frida_mode/src/stalker.c +++ b/frida_mode/src/stalker.c @@ -43,6 +43,9 @@ void stalker_init(void) { /* *NEVER* stalk the stalker, only bad things will ever come of this! */ gum_process_enumerate_ranges(GUM_PAGE_EXECUTE, stalker_exclude_self, NULL); + /* *NEVER* stalk the stalker, only bad things will ever come of this! */ + gum_process_enumerate_ranges(GUM_PAGE_EXECUTE, stalker_exclude_self, NULL); + } GumStalker *stalker_get(void) { diff --git a/frida_mode/test/jpeg/get_symbol_addr.py b/frida_mode/test/jpeg/get_symbol_addr.py new file mode 100755 index 00000000..1c46e010 --- /dev/null +++ b/frida_mode/test/jpeg/get_symbol_addr.py @@ -0,0 +1,36 @@ +#!/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) diff --git a/frida_mode/test/proj4/get_symbol_addr.py b/frida_mode/test/proj4/get_symbol_addr.py new file mode 100755 index 00000000..1c46e010 --- /dev/null +++ b/frida_mode/test/proj4/get_symbol_addr.py @@ -0,0 +1,36 @@ +#!/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) diff --git a/unicorn_mode/unicornafl b/unicorn_mode/unicornafl -Subproject 019b871539fe9ed3f41d882385a8b02c243d49a +Subproject 0d82727f2b477de82fa355edef9bc158bd25d37 |