import sys import os #import pefile import io import string def main(): path = os.path.dirname(os.path.realpath(sys.argv[0])) file = sys.argv[1] proxies = io.StringIO() proxy_add = io.StringIO() proxy_def = io.StringIO() proxy_def_file = io.StringIO() count = 0 """ for dll in dlls: pe = pefile.PE(dll, fast_load=True) pe.parse_data_directories() for exp in pe.DIRECTORY_ENTRY_EXPORT.symbols: name = exp.name.decode() proxies.write("%s\n" % name) proxy_add.write("ADD_ORIGINAL(%d, %s);\n" % (count, name)) proxy_def.write("PROXY(%d, %s);\n" % (count, name)) count = count + 1 """ with open(file, "r") as includes: names = includes.readlines() for name in names: name = name.strip() proxies.write(f"{name}\n") proxy_add.write(f"ADD_ORIGINAL({count}, {name});\n") proxy_def.write(f"PROXY({count}, {name});\n") proxy_def_file.write(f" {name} @{count+1}\n") count = count + 1 with open(f"{path}\\templates\\proxy_template.c", "r") as proxy_file: new_proxy = string.Template(proxy_file.read()).safe_substitute(proxy_count=count, proxy_add=proxy_add.getvalue(), proxy_def=proxy_def.getvalue()) with open(f"{path}\\..\\Proxy\\proxy.c", "w") as proxy_c_file: proxy_c_file.write(new_proxy) with open(f"{path}\\templates\\proxy_template.def", "r") as proxy_file: new_proxy_def = string.Template(proxy_file.read()).safe_substitute(proxy_exports=proxy_def_file.getvalue()) with open(f"{path}\\..\\Proxy\\proxy.def", "w") as proxy_def_file: proxy_def_file.write(new_proxy_def) if __name__ == "__main__": main()