Add linker interceptor script

This commit is contained in:
Andrea Fioraldi 2023-07-24 10:41:02 +02:00
parent 7dd994beba
commit 2d5fcb7b66

34
linker_interceptor.py Executable file
View File

@ -0,0 +1,34 @@
#!/usr/bin/env python3
import subprocess, json, sys, os
FILTER = ['-shared']
CXX = os.getenv('__LIBAFL_QEMU_BUILD_CXX') or 'c++'
OUT = os.getenv('__LIBAFL_QEMU_BUILD_OUT') or 'linkinfo.json'
args = sys.argv[1:]
out_args = []
shareds = []
prev_o = False
for i in range(len(args)):
if prev_o:
prev_o = False
continue
elif args[i] in FILTER:
continue
elif args[i].endswith('.so') and not args[i].startswith('-'):
shareds.append(args[i])
continue
elif args[i] == '-o':
prev_o = True
continue
elif args[i].startswith('-L') or args[i].startswith('-l'):
shareds.append(args[i])
out_args.append(args[i])
with open(OUT, 'w') as f:
json.dump({'cmd': out_args, 'so': shareds}, f, indent=2)
subprocess.run([CXX] + args)