import struct, sys, io, r2pipe sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace') data = open('HAVOC_NOCD.EXE','rb').read() FO2VA = lambda fo: fo + 0x400C00 VA2FO = lambda va: va - 0x400C00 r2 = r2pipe.open("Z:/Development/devl/Havoc/HAVOC_NOCD.EXE", ["-e", "bin.relocs.apply=true"]) # String at FO 0x6B2D4 = VA 0x46BED4: "DRIVE\0\0\0" # String at FO 0x6B2DC = VA 0x46BEDC: "D:\" # String at FO 0x6B2E0 = VA 0x46BEE0: "HAVOC" drive_va = 0x46bed4 havoc_va = 0x46bee0 dcolon_va = 0x46bedc print("=== Callers that push DRIVE VA 0x46BED4 or D:\\ VA 0x46BEDC ===") for target in [drive_va, havoc_va, dcolon_va]: for fo in range(0x400, 0x67000): if data[fo] == 0x68: imm = struct.unpack_from('