From 9cc805fb9d8796eb297ae4cb8130b2f055a52d94 Mon Sep 17 00:00:00 2001 From: Seliaste Date: Thu, 2 Apr 2026 11:29:04 +0200 Subject: [PATCH] Restructuration of the code to use cfg files, arguments, and multiple smaller modules --- cfg_parser.py | 36 + iat.py | 299 +- patch.py | 74 + reginit.py | 42 + rsc/000155f2e0360f6ff6cd.exe_iat_wave2.json | 1 - rsc/upx-hostname.exe.bin_iat_wave1.json | 54 - rsc/wave-0002.dump | Bin 245760 -> 0 bytes .../upx-hostname.exe.bin_traceCFG.json | 2975 +++++++++++++++++ .../upx-hostname}/wave-0001.dump | Bin utils.py | 10 + 10 files changed, 3235 insertions(+), 256 deletions(-) create mode 100644 cfg_parser.py create mode 100644 patch.py create mode 100644 reginit.py delete mode 100644 rsc/000155f2e0360f6ff6cd.exe_iat_wave2.json delete mode 100644 rsc/upx-hostname.exe.bin_iat_wave1.json delete mode 100644 rsc/wave-0002.dump create mode 100644 testfiles/upx-hostname/upx-hostname.exe.bin_traceCFG.json rename {rsc => testfiles/upx-hostname}/wave-0001.dump (100%) create mode 100644 utils.py diff --git a/cfg_parser.py b/cfg_parser.py new file mode 100644 index 0000000..113fb8e --- /dev/null +++ b/cfg_parser.py @@ -0,0 +1,36 @@ +def parse_wave_nodes(cfg,wave: int) -> list: + return list(filter(lambda node: node["wave"] == wave,cfg["nodes"])) + +def parse_procaddr_calls(cfg,wave:int): + res = [] + wave_nodes:list[dict] = parse_wave_nodes(cfg,wave) + for node in wave_nodes: + if "syscalls" in node.keys(): + for syscall in node["syscalls"]: + if syscall["name"] == "KERNEL32.DLL!GetProcAddress": + funcname = syscall["arguments"][-1].split("\"")[1] + func_addr = syscall["return"] + res.append({"name": funcname, "addr": func_addr}) + return res + +def parse_syscalls(cfg,wave: int) -> list[dict[str, str]]: + res: list[dict[str,str]] = [] + wave_nodes:list[dict] = parse_wave_nodes(cfg,wave) + no_repeat = [] + for node in wave_nodes: + if "syscalls" in node.keys(): + for syscall in node["syscalls"]: + if node["last_instr"] in no_repeat: + continue + adress = node["last_instr"] # call is at the end of the basic block + name = syscall["name"] + current_instruction = node["instructions"][-1]["mnemonic"] + no_repeat.append(adress) + res.append({"adress":adress,"name":name}) + return res + +def parse_wave_entrypoint(cfg,wave: int) -> int: + return int(parse_wave_nodes(cfg,wave)[0]["start"],16) + +def parse_bb_registers(cfg,wave:int,n_bb:int) -> dict[str,str]: + return parse_wave_nodes(cfg,wave)[n_bb]["registers"] diff --git a/iat.py b/iat.py index ae668d0..1ee858d 100644 --- a/iat.py +++ b/iat.py @@ -1,30 +1,15 @@ +import argparse import json - import lief +import patch +import cfg_parser +import reginit lief.disable_leak_warning() # warnings to disable for the callback with open("lib/WindowsDllsExport/win10-19043-exports.json", "rb") as f: api_info = json.load(f) -dump_path = "rsc/wave-0001.dump" -# dump_path = "rsc/wave-0002.dump" -iat_json_path = "rsc/upx-hostname.exe.bin_iat_wave1.json" -# iat_json_path = "rsc/000155f2e0360f6ff6cd.exe_iat_wave2.json" - - -def hex_address_to_memory_representation(hex_addr: str, is_32b: bool, is_little_endian: bool) -> list[int]: - adress_size = 4 if is_32b else 8 - mem_value = [0x00] * adress_size - hex_addr = hex_addr[::-1][:-2] # reversing order and stripping zero - for i in range(0, adress_size): - byte_str = hex_addr[i * 2 : (i + 1) * 2][::-1] - mem_value[i] += int(byte_str, 16) - if not is_little_endian: - mem_value = mem_value[::-1] # reverse byte order for big endian - return mem_value - - # Retrives all unique DLL names being imported def get_used_dlls(calls: list[dict[str, str]]) -> set[str]: res = set() @@ -42,112 +27,27 @@ def get_used_functions_from_dll(dllname, calls): return res -def patch_direct_adress_call(pe: lief.PE.Binary, rva: int, instruction_offset: int): - # We can manually patch the instruction here: FF 15 08 10 00 01 represents `call [0x01001080]` - new_value = hex_address_to_memory_representation( - hex(rva + pe.imagebase), - pe.abstract.header.is_32, - pe.abstract.header.endianness == lief.Header.ENDIANNESS.LITTLE, - ) - pe.patch_address(instruction_offset, [0xFF, 0x15] + new_value, lief.Binary.VA_TYPES.RVA) - - -def patch_direct_adress_jump(pe: lief.PE.Binary, rva: int, instruction_offset: int): - # We can manually patch the instruction here: FF 15 08 10 00 01 represents `call [0x01001080]` - new_value = hex_address_to_memory_representation( - hex(rva + pe.imagebase), - pe.abstract.header.is_32, - pe.abstract.header.endianness == lief.Header.ENDIANNESS.LITTLE, - ) - pe.patch_address(instruction_offset, [0xFF, 0x25] + new_value, lief.Binary.VA_TYPES.RVA) - - -def patch_instr_to_new_IAT_entry(pe: lief.PE.Binary, call: dict[str, str], rva: int): - base = pe.imagebase - instruction_offset = int(call["adress"], 16) - base - memview = pe.get_content_from_virtual_address(instruction_offset, 2) - if [memview[0], memview[1]] == [0xFF, 0x15]: - patch_direct_adress_call(pe, rva, instruction_offset) - elif [memview[0], memview[1]] == [0xFF, 0x25]: - patch_direct_adress_jump(pe, rva, instruction_offset) - - -def patch_addr_found_in_mem(pe: lief.PE.Binary, rva: int, old_addr: str): - is_32 = pe.abstract.header.is_32 - little_endian = pe.abstract.header.endianness == lief.Header.ENDIANNESS.LITTLE - # scan memory for reference to old addr - old_addr_mem_repr = hex_address_to_memory_representation( - old_addr, - is_32, - pe.abstract.header.endianness == lief.Header.ENDIANNESS.LITTLE, - ) - new_addr = hex_address_to_memory_representation( - hex(rva + pe.imagebase), - is_32, - little_endian, - ) - adresses_to_patch = [] - for section in pe.sections: - for i in range(len(section.content)): - found = True - for j in range(len(old_addr_mem_repr)): - if i + j >= len(section.content) or section.content[i + j] != old_addr_mem_repr[j]: - found = False - break - if found: - old_addr_ref = hex_address_to_memory_representation( - hex( - section.virtual_address + i + pe.imagebase, - ), - is_32, - little_endian, - ) - for section in pe.sections: - for k in range(len(section.content)): - foundxref = True - for L in range(len(old_addr_ref)): - if k + L < len(section.content) and section.content[k + L] != old_addr_ref[L]: - foundxref = False - break - if foundxref: - adresses_to_patch.append(section.virtual_address + k) - for addr in adresses_to_patch: - print(f"patched {hex(addr)}") - pe.patch_address(addr, new_addr, lief.Binary.VA_TYPES.RVA) - - -def patch_to_new_IAT(pe: lief.PE.Binary, imp: lief.PE.Import, entry: lief.PE.ImportEntry, rva: int): - # print(f"{imp.name}!{entry.name}: 0x{rva:010x}") - for call in filter(lambda x: x["name"] == f"{imp.name.upper()}!{entry.name}", calls): - patch_instr_to_new_IAT_entry(pe, call, rva) - # patch additional non-call related info - print(entry.name) - for func in filter(lambda x: x["name"] == entry.name and x["dll"] == imp.name, procaddr_list): - # print(func["name"]) - patch_addr_found_in_mem(pe, rva, func["addr"]) - - -def get_list_of_procaddr_functions(prevwave_info): +def link_func_to_dll(func_list): res = [] - for call in prevwave_info: + for func in func_list: # first only including imported dlls res_new = {} for export in api_info: - if export["dllname"] in dll_calls_list and export["exportname"] == call["function"]: + if export["dllname"] in func and export["exportname"] == func["name"]: res_new = { "name": export["exportname"], "dll": export["dllname"], - "addr": call["func_addr"], + "addr": func["addr"], } break if res_new == {}: # try adding a new dll for export in api_info: - if export["exportname"] == call["function"]: + if export["exportname"] == func["name"]: res_new = { "name": export["exportname"], "dll": export["dllname"], - "addr": call["func_addr"], + "addr": func["addr"], } break if res_new != {}: @@ -155,111 +55,108 @@ def get_list_of_procaddr_functions(prevwave_info): return res -# wave dump file to patch -with open(dump_path, "rb") as f: - pe = lief.parse(f) - assert isinstance(pe, lief.PE.Binary) +def main(): + parser = argparse.ArgumentParser(prog="iat.py", description="Create a patched PE from a binary dump and a traceCFG file.") -# JSON generated with the python reader files -with open(iat_json_path, "r") as iat_json_input: - iat_data = json.load(iat_json_input) -calls: list[dict[str, str]] = iat_data["calls"] -wave_entry = int(iat_data["entry"], 16) + # Input arguments + parser.add_argument("dump", type=str, help="The path to the wave dump file") + parser.add_argument("trace", type=str, help="The path to the traceCFG file") -# create new section -patch_section = lief.PE.Section(".iatpatch") -content = [] + # Additional arguments + parser.add_argument("-o", "--output", type=str, help="Specify an output filepath for the patched PE.") + parser.add_argument("-w", "--wave", type=int, help="Specify the wave number for the binary dump (if it can't be inferred from the filename)") -# initiate registry values -reg_to_inst_code = { - "EAX": 0xC0, - "EBX": 0xC3, - "ECX": 0xC1, - "EDX": 0xC2, - "ESI": 0xC6, - "EDI": 0xC7, - "EBP": 0xC5, - # "ESP": 0xC4, -} -for reg in iat_data["entry_reg_values"].keys(): - if reg not in reg_to_inst_code: - continue - new_instruction = [ - 0xC7, - reg_to_inst_code[reg], - ] + hex_address_to_memory_representation( - iat_data["entry_reg_values"][reg].strip(), - pe.abstract.header.is_32, - pe.abstract.header.endianness == lief.Header.ENDIANNESS.LITTLE, - ) - for byte in new_instruction: - content.append(byte) + args = parser.parse_args() + # open wave dump file + with open(args.dump, "rb") as f: + pe = lief.parse(f) + assert isinstance(pe, lief.PE.Binary) -# add ret to actual OEP + # open traceCFG json + with open(args.trace, "r") as f: + cfg = json.load(f) -content += [0x68] + hex_address_to_memory_representation( - hex(wave_entry), - pe.abstract.header.is_32, - pe.abstract.header.endianness == lief.Header.ENDIANNESS.LITTLE, -) + if args.wave == None and args.dump[-5:] == ".dump": + wave = int(args.dump[-9:-5]) + else: + wave = args.wave -content += [0xC3] + calls = cfg_parser.parse_syscalls(cfg,wave) + wave_entry = cfg_parser.parse_wave_entrypoint(cfg,wave) -patch_section.content = content + # create new section + iatpatch_section = lief.PE.Section(".iatpatch") + iatpatch_content = [] -# add new section to PE -pe.add_section(patch_section) + # registers initiation + iatpatch_content += reginit.generate_reg_init_code(cfg,pe,wave,wave_entry) -# patch entrypoint -# entrypoint_format = int(hex(pe.get_section(".iatpatch").virtual_address)[-4:], 16) -entrypoint_format = int(hex(pe.get_section(".iatpatch").virtual_address)[-4:], 16) -pe.optional_header.addressof_entrypoint = entrypoint_format + # write patch section code + iatpatch_section.content = iatpatch_content # pyright: ignore[reportAttributeAccessIssue] -# remove all current imports -pe.remove_all_imports() + # add new section to PE + pe.add_section(iatpatch_section) -# recreate all DLL imports from calls detected -dll_calls_list = [] -imported_dll_list = [] -func_calls_list = [] -for dll in get_used_dlls(calls): - dll_calls_list.append(dll.lower()) - imported_dll = pe.add_import(dll.lower()) - imported_dll_list.append(imported_dll) - # recreate all function calls related to that dll import - for func in get_used_functions_from_dll(dll, calls): - func_calls_list.append(func) - imported_dll.add_entry(func) + # patch entrypoint + entrypoint_format = int(hex(pe.get_section(".iatpatch").virtual_address)[-4:], 16) + pe.optional_header.addressof_entrypoint = entrypoint_format -# get list of functions called with getprocaddr -procaddr_list = get_list_of_procaddr_functions(iat_data["prevwave_getprocaddr"]) -for func in procaddr_list: - if func["name"] in func_calls_list: # call already added - continue - if func["dll"] in dll_calls_list: # dll already added - imported_dll_list[dll_calls_list.index(func["dll"])].add_entry(func["name"]) - else: # we need to import the new DLL - dll_calls_list.append(func["dll"]) - imported_dll = pe.add_import(func["dll"]) + # remove all current imports + pe.remove_all_imports() + + # recreate all DLL imports from calls detected + dll_calls_list = [] + imported_dll_list = [] + func_calls_list = [] + for dll in get_used_dlls(calls): + dll_calls_list.append(dll.lower()) + imported_dll = pe.add_import(dll.lower()) imported_dll_list.append(imported_dll) - func_calls_list.append(func["name"]) - imported_dll.add_entry(func["name"]) + # recreate all function calls related to that dll import + for func in get_used_functions_from_dll(dll, calls): + func_calls_list.append(func) + imported_dll.add_entry(func) -# At this point, the new IAT will only be constructed when the PE is written. We therefore need to make a callback function to patch calls afterwards. + # get list of functions called with getprocaddr in previous wave + func_list = cfg_parser.parse_procaddr_calls(cfg, wave - 1) + func_dll_list = link_func_to_dll(func_list) + for func in func_dll_list: + if func["name"] in func_calls_list: # call already added + continue + if func["dll"] in dll_calls_list: # dll already added + imported_dll_list[dll_calls_list.index(func["dll"])].add_entry(func["name"]) + else: # we need to import the new DLL + dll_calls_list.append(func["dll"]) + imported_dll = pe.add_import(func["dll"]) + imported_dll_list.append(imported_dll) + func_calls_list.append(func["name"]) + imported_dll.add_entry(func["name"]) -# Define all sections as writeable, to help with some weird stuff we're seeing -for section in pe.sections: - section.characteristics = ( - lief.PE.Section.CHARACTERISTICS.MEM_WRITE.value - + lief.PE.Section.CHARACTERISTICS.MEM_READ.value - + lief.PE.Section.CHARACTERISTICS.MEM_EXECUTE.value - + lief.PE.Section.CHARACTERISTICS.CNT_INITIALIZED_DATA.value - ) + # At this point, the new IAT will only be constructed when the PE is written. We therefore need to make a callback function to patch calls afterwards. -# write result -config = lief.PE.Builder.config_t() -config.imports = True # allows the config of the writer to write a new IAT -config.resolved_iat_cbk = patch_to_new_IAT # callback after the IAT has been written -pe.write("patched.exe", config) -print("Wrote the patched executable as patched.exe") + # Define all sections as writeable, to help with some weird stuff we're seeing + for section in pe.sections: + section.characteristics = ( + lief.PE.Section.CHARACTERISTICS.MEM_WRITE.value + + lief.PE.Section.CHARACTERISTICS.MEM_READ.value + + lief.PE.Section.CHARACTERISTICS.MEM_EXECUTE.value + + lief.PE.Section.CHARACTERISTICS.CNT_INITIALIZED_DATA.value + ) + + # write result + config = lief.PE.Builder.config_t() + config.imports = True # allows the config of the writer to write a new IAT + + def patching_callback(pe: lief.PE.Binary, imp: lief.PE.Import, entry: lief.PE.ImportEntry, rva: int): + for call in filter(lambda x: x["name"] == f"{imp.name.upper()}!{entry.name}", calls): + patch.patch_instr_to_new_IAT_entry(pe, call, rva) + # patch additional non-call related info + for func in filter(lambda x: x["name"] == entry.name and x["dll"] == imp.name, func_dll_list): + patch.patch_addr_found_in_mem(pe, rva, func["addr"]) + config.resolved_iat_cbk = patching_callback # callback after the IAT has been written + pe.write("patched.exe" if args.output == None else args.output, config) + print("Wrote the patched executable as patched.exe") + +if __name__ == "__main__": + main() diff --git a/patch.py b/patch.py new file mode 100644 index 0000000..6ff47ac --- /dev/null +++ b/patch.py @@ -0,0 +1,74 @@ +from utils import hex_address_to_memory_representation +import lief + +def patch_direct_adress_call(pe: lief.PE.Binary, rva: int, instruction_offset: int): + # We can manually patch the instruction here: FF 15 08 10 00 01 represents `call [0x01001080]` + new_value = hex_address_to_memory_representation( + hex(rva + pe.imagebase), + pe.abstract.header.is_32, + pe.abstract.header.endianness == lief.Header.ENDIANNESS.LITTLE, + ) + pe.patch_address(instruction_offset, [0xFF, 0x15] + new_value, lief.Binary.VA_TYPES.RVA) + + +def patch_direct_adress_jump(pe: lief.PE.Binary, rva: int, instruction_offset: int): + # We can manually patch the instruction here: FF 15 08 10 00 01 represents `call [0x01001080]` + new_value = hex_address_to_memory_representation( + hex(rva + pe.imagebase), + pe.abstract.header.is_32, + pe.abstract.header.endianness == lief.Header.ENDIANNESS.LITTLE, + ) + pe.patch_address(instruction_offset, [0xFF, 0x25] + new_value, lief.Binary.VA_TYPES.RVA) + + +def patch_instr_to_new_IAT_entry(pe: lief.PE.Binary, call: dict[str, str], rva: int): + base = pe.imagebase + instruction_offset = int(call["adress"], 16) - base + memview = pe.get_content_from_virtual_address(instruction_offset, 2) + if [memview[0], memview[1]] == [0xFF, 0x15]: + patch_direct_adress_call(pe, rva, instruction_offset) + elif [memview[0], memview[1]] == [0xFF, 0x25]: + patch_direct_adress_jump(pe, rva, instruction_offset) + + +def patch_addr_found_in_mem(pe: lief.PE.Binary, rva: int, old_addr: str): + is_32 = pe.abstract.header.is_32 + little_endian = pe.abstract.header.endianness == lief.Header.ENDIANNESS.LITTLE + # scan memory for reference to old addr + old_addr_mem_repr = hex_address_to_memory_representation( + old_addr, + is_32, + pe.abstract.header.endianness == lief.Header.ENDIANNESS.LITTLE, + ) + new_addr = hex_address_to_memory_representation( + hex(rva + pe.imagebase), + is_32, + little_endian, + ) + adresses_to_patch = [] + for section in pe.sections: + for i in range(len(section.content)): + found = True + for j in range(len(old_addr_mem_repr)): + if i + j >= len(section.content) or section.content[i + j] != old_addr_mem_repr[j]: + found = False + break + if found: + old_addr_ref = hex_address_to_memory_representation( + hex( + section.virtual_address + i + pe.imagebase, + ), + is_32, + little_endian, + ) + for section in pe.sections: + for k in range(len(section.content)): + foundxref = True + for L in range(len(old_addr_ref)): + if k + L < len(section.content) and section.content[k + L] != old_addr_ref[L]: + foundxref = False + break + if foundxref: + adresses_to_patch.append(section.virtual_address + k) + for addr in adresses_to_patch: + pe.patch_address(addr, new_addr, lief.Binary.VA_TYPES.RVA) diff --git a/reginit.py b/reginit.py new file mode 100644 index 0000000..c846d6c --- /dev/null +++ b/reginit.py @@ -0,0 +1,42 @@ +import lief +import cfg_parser +from utils import hex_address_to_memory_representation + +def generate_reg_init_code(cfg, pe: lief.PE.Binary,wave:int, wave_entry: int) -> list[int]: + code = [] + # initiate registry values + reg_to_inst_code = { + "EAX": 0xC0, + "EBX": 0xC3, + "ECX": 0xC1, + "EDX": 0xC2, + "ESI": 0xC6, + "EDI": 0xC7, + "EBP": 0xC5, + # "ESP": 0xC4, + } + reg_values = cfg_parser.parse_bb_registers(cfg, wave, 0) + for reg in reg_values: + if reg not in reg_to_inst_code: + continue + new_instruction = [ + 0xC7, + reg_to_inst_code[reg], + ] + hex_address_to_memory_representation( + reg_values[reg].strip(), + pe.abstract.header.is_32, + pe.abstract.header.endianness == lief.Header.ENDIANNESS.LITTLE, + ) + for byte in new_instruction: + code.append(byte) + + # add ret to actual OEP + code += [0x68] + hex_address_to_memory_representation( + hex(wave_entry), + pe.abstract.header.is_32, + pe.abstract.header.endianness == lief.Header.ENDIANNESS.LITTLE, + ) # push addr + + code += [0xC3] # ret + + return code diff --git a/rsc/000155f2e0360f6ff6cd.exe_iat_wave2.json b/rsc/000155f2e0360f6ff6cd.exe_iat_wave2.json deleted file mode 100644 index 8a1c93e..0000000 --- a/rsc/000155f2e0360f6ff6cd.exe_iat_wave2.json +++ /dev/null @@ -1 +0,0 @@ -{"entry": "0x40835b", "calls": [{"adress": "0x408269", "name": "KERNEL32.DLL!GetVersion"}, {"adress": "0x40c329", "name": "KERNEL32.DLL!HeapCreate"}, {"adress": "0x40d1fd", "name": "NTDLL.DLL!RtlAllocateHeap"}, {"adress": "0x40b00c", "name": "NTDLL.DLL!RtlInitializeCriticalSection"}, {"adress": "0x40b014", "name": "NTDLL.DLL!RtlInitializeCriticalSection"}, {"adress": "0x40b01c", "name": "NTDLL.DLL!RtlInitializeCriticalSection"}, {"adress": "0x40b024", "name": "NTDLL.DLL!RtlInitializeCriticalSection"}, {"adress": "0x40adc2", "name": "KERNEL32.DLL!TlsAlloc"}, {"adress": "0x40d8e9", "name": "NTDLL.DLL!RtlAllocateHeap"}, {"adress": "0x40d903", "name": "KERNEL32.DLL!VirtualAlloc"}, {"adress": "0x40d98f", "name": "KERNEL32.DLL!VirtualAlloc"}, {"adress": "0x40b102", "name": "NTDLL.DLL!RtlLeaveCriticalSection"}, {"adress": "0x40adea", "name": "KERNEL32.DLL!TlsSetValue"}, {"adress": "0x40adfb", "name": "KERNEL32.DLL!GetCurrentThreadId"}, {"adress": "0x4082c0", "name": "KERNEL32.DLL!GetCommandLineA"}, {"adress": "0x40c201", "name": "KERNEL32.DLL!GetEnvironmentStringsW"}, {"adress": "0x40c279", "name": "KERNEL32.DLL!WideCharToMultiByte"}, {"adress": "0x408cc1", "name": "NTDLL.DLL!RtlAllocateHeap"}, {"adress": "0x40c29b", "name": "KERNEL32.DLL!WideCharToMultiByte"}, {"adress": "0x40c2b4", "name": "KERNEL32.DLL!FreeEnvironmentStringsW"}, {"adress": "0x40bd2e", "name": "KERNEL32.DLL!GetStartupInfoA"}, {"adress": "0x40be4a", "name": "KERNEL32.DLL!GetFileType"}, {"adress": "0x40be3c", "name": "KERNEL32.DLL!GetStdHandle"}, {"adress": "0x40be81", "name": "KERNEL32.DLL!SetHandleCount"}, {"adress": "0x40b0d1", "name": "NTDLL.DLL!RtlInitializeCriticalSection"}, {"adress": "0x40b0ec", "name": "NTDLL.DLL!RtlEnterCriticalSection"}, {"adress": "0x409ef9", "name": "KERNEL32.DLL!GetACP"}, {"adress": "0x409d6e", "name": "KERNEL32.DLL!GetCPInfo"}, {"adress": "0x409f84", "name": "KERNEL32.DLL!GetCPInfo"}, {"adress": "0x40d067", "name": "KERNEL32.DLL!GetStringTypeW"}, {"adress": "0x40d0ed", "name": "KERNEL32.DLL!MultiByteToWideChar"}, {"adress": "0x40d143", "name": "KERNEL32.DLL!MultiByteToWideChar"}, {"adress": "0x40d155", "name": "KERNEL32.DLL!GetStringTypeW"}, {"adress": "0x40b9ed", "name": "KERNEL32.DLL!LCMapStringW"}, {"adress": "0x40ba8a", "name": "KERNEL32.DLL!MultiByteToWideChar"}, {"adress": "0x40bae2", "name": "KERNEL32.DLL!MultiByteToWideChar"}, {"adress": "0x40baf8", "name": "KERNEL32.DLL!LCMapStringW"}, {"adress": "0x40bb93", "name": "KERNEL32.DLL!LCMapStringW"}, {"adress": "0x40bbb8", "name": "KERNEL32.DLL!WideCharToMultiByte"}, {"adress": "0x40bfbc", "name": "KERNEL32.DLL!GetModuleFileNameA"}, {"adress": "0x408d0a", "name": "KERNEL32.DLL!HeapFree"}, {"adress": "0x40b3d1", "name": "KERNEL32.DLL!GetModuleHandleA"}, {"adress": "0x40b3e1", "name": "KERNEL32.DLL!GetProcAddress"}, {"adress": "0x40b3ed", "name": "KERNEL32.DLL!IsProcessorFeaturePresent"}, {"adress": "0x40de75", "name": "NTDLL.DLL!RtlAllocateHeap"}, {"adress": "0x40d1bc", "name": "KERNEL32.DLL!SetUnhandledExceptionFilter"}, {"adress": "0x406e40", "name": "NTDLL.DLL!RtlInitializeCriticalSection"}, {"adress": "0x417c47", "name": "NTDLL.DLL!RtlInitializeCriticalSection"}, {"adress": "0x418173", "name": "USER32.DLL!GetCursorPos"}, {"adress": "0x4183eb", "name": "KERNEL32.DLL!TlsAlloc"}, {"adress": "0x418401", "name": "NTDLL.DLL!RtlInitializeCriticalSection"}, {"adress": "0x418471", "name": "NTDLL.DLL!RtlEnterCriticalSection"}, {"adress": "0x4184c6", "name": "KERNEL32.DLL!GlobalAlloc"}, {"adress": "0x41851d", "name": "KERNEL32.DLL!GlobalLock"}, {"adress": "0x418566", "name": "NTDLL.DLL!RtlLeaveCriticalSection"}, {"adress": "0x41839e", "name": "KERNEL32.DLL!LocalAlloc"}, {"adress": "0x4185dc", "name": "KERNEL32.DLL!TlsGetValue"}, {"adress": "0x41862b", "name": "NTDLL.DLL!RtlEnterCriticalSection"}, {"adress": "0x41863e", "name": "NTDLL.DLL!RtlLeaveCriticalSection"}, {"adress": "0x418654", "name": "KERNEL32.DLL!LocalAlloc"}, {"adress": "0x4186a2", "name": "KERNEL32.DLL!TlsSetValue"}, {"adress": "0x418f2b", "name": "KERNEL32.DLL!GetVersion"}, {"adress": "0x418f50", "name": "NTDLL.DLL!RtlInitializeCriticalSection"}, {"adress": "0x418fe6", "name": "NTDLL.DLL!RtlEnterCriticalSection"}, {"adress": "0x418ff8", "name": "NTDLL.DLL!RtlInitializeCriticalSection"}, {"adress": "0x419001", "name": "NTDLL.DLL!RtlLeaveCriticalSection"}, {"adress": "0x419033", "name": "NTDLL.DLL!RtlLeaveCriticalSection"}, {"adress": "0x418666", "name": "KERNEL32.DLL!LocalReAlloc"}, {"adress": "0x417e13", "name": "KERNEL32.DLL!GetCurrentThread"}, {"adress": "0x417e1c", "name": "KERNEL32.DLL!GetCurrentThreadId"}, {"adress": "0x418849", "name": "KERNEL32.DLL!TlsGetValue"}, {"adress": "0x413cce", "name": "USER32.DLL!RegisterClipboardFormatA"}, {"adress": "0x4194a6", "name": "KERNEL32.DLL!GetVersion"}, {"adress": "0x4194e3", "name": "KERNEL32.DLL!GetProcessVersion"}, {"adress": "0x416321", "name": "USER32.DLL!GetSystemMetrics"}, {"adress": "0x416328", "name": "USER32.DLL!GetSystemMetrics"}, {"adress": "0x419461", "name": "USER32.DLL!GetSystemMetrics"}, {"adress": "0x41946b", "name": "USER32.DLL!GetSystemMetrics"}, {"adress": "0x416341", "name": "USER32.DLL!GetDC"}, {"adress": "0x416352", "name": "GDI32.DLL!GetDeviceCaps"}, {"adress": "0x41635a", "name": "GDI32.DLL!GetDeviceCaps"}, {"adress": "0x416362", "name": "USER32.DLL!ReleaseDC"}, {"adress": "0x4162dc", "name": "USER32.DLL!GetSysColor"}, {"adress": "0x4162e3", "name": "USER32.DLL!GetSysColor"}, {"adress": "0x4162ea", "name": "USER32.DLL!GetSysColor"}, {"adress": "0x4162f1", "name": "USER32.DLL!GetSysColor"}, {"adress": "0x4162f8", "name": "USER32.DLL!GetSysColor"}, {"adress": "0x416305", "name": "USER32.DLL!GetSysColorBrush"}, {"adress": "0x41630c", "name": "USER32.DLL!GetSysColorBrush"}, {"adress": "0x419511", "name": "USER32.DLL!LoadCursorA"}, {"adress": "0x41951c", "name": "USER32.DLL!LoadCursorA"}, {"adress": "0x41960b", "name": "KERNEL32.DLL!GetOEMCP"}, {"adress": "0x419612", "name": "KERNEL32.DLL!GetCPInfo"}, {"adress": "0x418d4b", "name": "KERNEL32.DLL!SetErrorMode"}, {"adress": "0x418d52", "name": "KERNEL32.DLL!SetErrorMode"}, {"adress": "0x418dd6", "name": "KERNEL32.DLL!GetModuleFileNameA"}, {"adress": "0x418f0b", "name": "KERNEL32.DLL!lstrcpyn"}, {"adress": "0x413b53", "name": "USER32.DLL!LoadStringA"}, {"adress": "0x418e77", "name": "KERNEL32.DLL!lstrcpy"}, {"adress": "0x418ea4", "name": "KERNEL32.DLL!lstrcat"}, {"adress": "0x419013", "name": "NTDLL.DLL!RtlEnterCriticalSection"}, {"adress": "0x410d4c", "name": "WS2_32.DLL!WSAStartup"}, {"adress": "0x4186df", "name": "NTDLL.DLL!RtlEnterCriticalSection"}, {"adress": "0x41870d", "name": "NTDLL.DLL!RtlLeaveCriticalSection"}, {"adress": "0x4083cf", "name": "NTDLL.DLL!ntdll_Offset_39930"}, {"adress": "0x4187b9", "name": "NTDLL.DLL!RtlEnterCriticalSection"}, {"adress": "0x4183c0", "name": "KERNEL32.DLL!LocalFree"}, {"adress": "0x418775", "name": "NTDLL.DLL!RtlEnterCriticalSection"}, {"adress": "0x418785", "name": "NTDLL.DLL!RtlLeaveCriticalSection"}, {"adress": "0x41878e", "name": "KERNEL32.DLL!LocalFree"}, {"adress": "0x4187a4", "name": "KERNEL32.DLL!TlsSetValue"}, {"adress": "0x4187ff", "name": "NTDLL.DLL!RtlLeaveCriticalSection"}, {"adress": "0x418f83", "name": "NTDLL.DLL!RtlDeleteCriticalSection"}, {"adress": "0x418f95", "name": "NTDLL.DLL!RtlDeleteCriticalSection"}, {"adress": "0x418417", "name": "KERNEL32.DLL!TlsFree"}, {"adress": "0x41843f", "name": "KERNEL32.DLL!GlobalHandle"}, {"adress": "0x418448", "name": "KERNEL32.DLL!GlobalUnlock"}, {"adress": "0x41844f", "name": "KERNEL32.DLL!GlobalFree"}, {"adress": "0x418459", "name": "NTDLL.DLL!RtlDeleteCriticalSection"}, {"adress": "0x406e68", "name": "NTDLL.DLL!RtlEnterCriticalSection"}, {"adress": "0x406e7f", "name": "NTDLL.DLL!RtlLeaveCriticalSection"}, {"adress": "0x406e58", "name": "NTDLL.DLL!RtlDeleteCriticalSection"}, {"adress": "0x417ca8", "name": "NTDLL.DLL!RtlDeleteCriticalSection"}, {"adress": "0x40d1ce", "name": "KERNEL32.DLL!SetUnhandledExceptionFilter"}, {"adress": "0x40b05c", "name": "NTDLL.DLL!RtlDeleteCriticalSection"}, {"adress": "0x40b077", "name": "NTDLL.DLL!RtlDeleteCriticalSection"}, {"adress": "0x40b07f", "name": "NTDLL.DLL!RtlDeleteCriticalSection"}, {"adress": "0x40b087", "name": "NTDLL.DLL!RtlDeleteCriticalSection"}, {"adress": "0x40b08f", "name": "NTDLL.DLL!RtlDeleteCriticalSection"}, {"adress": "0x40ae20", "name": "KERNEL32.DLL!TlsFree"}, {"adress": "0x40c382", "name": "KERNEL32.DLL!VirtualFree"}, {"adress": "0x40c38d", "name": "KERNEL32.DLL!VirtualFree"}, {"adress": "0x40c39a", "name": "KERNEL32.DLL!HeapFree"}, {"adress": "0x40c3b8", "name": "KERNEL32.DLL!HeapFree"}, {"adress": "0x40c3c0", "name": "KERNEL32.DLL!HeapDestroy"}]} \ No newline at end of file diff --git a/rsc/upx-hostname.exe.bin_iat_wave1.json b/rsc/upx-hostname.exe.bin_iat_wave1.json deleted file mode 100644 index fd637b7..0000000 --- a/rsc/upx-hostname.exe.bin_iat_wave1.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "entry": "0x10011d7", - "calls": [ - { "adress": "0x10011e6", "name": "KERNEL32.DLL!GetModuleHandleA" }, - { "adress": "0x1001243", "name": "MSVCRT.DLL!__set_app_type" }, - { "adress": "0x1001258", "name": "MSVCRT.DLL!__p__fmode" }, - { "adress": "0x1001266", "name": "MSVCRT.DLL!__p__commode" }, - { "adress": "0x10013be", "name": "MSVCRT.DLL!_controlfp" }, - { "adress": "0x1001358", "name": "MSVCRT.DLL!_initterm" }, - { "adress": "0x10012cb", "name": "MSVCRT.DLL!__getmainargs" }, - { "adress": "0x10010f2", "name": "WS2_32.DLL!WSAStartup" }, - { "adress": "0x1001160", "name": "WS2_32.DLL!gethostname" }, - { "adress": "0x10011ba", "name": "USER32.DLL!CharToOemBuffA" }, - { "adress": "0x10011c7", "name": "MSVCRT.DLL!puts" }, - { "adress": "0x10011d0", "name": "MSVCRT.DLL!exit" } - ], - "entry_reg_values": { - "EAX": "0x000cff0c ", - "EBX": "0x7efde000 ", - "ECX": "0x00000000 ", - "EDX": "0x010058c0", - "ESI": "0x00000000 ", - "EDI": "0x00000000 ", - "EBP": "0x000cff94 ", - "ESP": "0x000cff8c", - "eflags": "0x00000203" - }, - "prevwave_getprocaddr": [ - { "function": "FormatMessageA", "func_addr": "0x75985fbd" }, - { "function": "LocalFree", "func_addr": "0x75962d3c" }, - { "function": "GetModuleHandleA", "func_addr": "0x75961245" }, - { "function": "GetLastError", "func_addr": "0x759611c0" }, - { "function": "__p__commode", "func_addr": "0x752c27c3" }, - { "function": "__p__fmode", "func_addr": "0x752c27ce" }, - { "function": "__set_app_type", "func_addr": "0x752c2804" }, - { "function": "_controlfp", "func_addr": "0x752be1e1" }, - { "function": "_cexit", "func_addr": "0x752c37d4" }, - { "function": "_adjust_fdiv", "func_addr": "0x753532ec" }, - { "function": "_except_handler3", "func_addr": "0x752dd770" }, - { "function": "_XcptFilter", "func_addr": "0x752ddc75" }, - { "function": "_exit", "func_addr": "0x7531b2c0" }, - { "function": "_c_exit", "func_addr": "0x7531b2db" }, - { "function": "__setusermatherr", "func_addr": "0x753477ad" }, - { "function": "_initterm", "func_addr": "0x752bc151" }, - { "function": "__getmainargs", "func_addr": "0x752c2bc0" }, - { "function": "__initenv", "func_addr": "0x753504e8" }, - { "function": "_write", "func_addr": "0x752c4078" }, - { "function": "strchr", "func_addr": "0x752bdbeb" }, - { "function": "puts", "func_addr": "0x75328d04" }, - { "function": "exit", "func_addr": "0x752c36aa" }, - { "function": "s_perror", "func_addr": "0x6c8a1be4" }, - { "function": "CharToOemBuffA", "func_addr": "0x76aeb1b0" } - ] -} diff --git a/rsc/wave-0002.dump b/rsc/wave-0002.dump deleted file mode 100644 index 02d548014a0c47db75c16d5ab4dcc41c48132add..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245760 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�$5uQ&o_-G4X?~G7L2SL@D_R-Kftr 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ી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 list[int]: + adress_size = 4 if is_32b else 8 + mem_value = [0x00] * adress_size + hex_addr = hex_addr[::-1][:-2] # reversing order and stripping zero + for i in range(0, adress_size): + byte_str = hex_addr[i * 2 : (i + 1) * 2][::-1] + mem_value[i] += int(byte_str, 16) + if not is_little_endian: + mem_value = mem_value[::-1] # reverse byte order for big endian + return mem_value