diff options
author | WorksButNotTested <62701594+WorksButNotTested@users.noreply.github.com> | 2021-06-16 20:53:57 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-16 21:53:57 +0200 |
commit | 58747f9f4fe960cf97d40dd6d6db0f2f7f13b505 (patch) | |
tree | d2823cdaefb1f4af9f8c0a64c600dee7cbb12643 /frida_mode/test/proj4/get_symbol_addr.py | |
parent | 35153e9b495e3f61c032a3d911e4906fed0b50d6 (diff) | |
download | afl++-58747f9f4fe960cf97d40dd6d6db0f2f7f13b505.tar.gz |
Perf regression4 (#979)
* Added test for libjpeg * Added proj4 test * Added missing members to x86/64 context * Changes to use memfd and hashtable cache * Removed redundant check Co-authored-by: Your Name <you@example.com>
Diffstat (limited to 'frida_mode/test/proj4/get_symbol_addr.py')
-rwxr-xr-x | frida_mode/test/proj4/get_symbol_addr.py | 36 |
1 files changed, 36 insertions, 0 deletions
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) |