import struct
# Imports are lies, rename the segment offsets based on their true import addresses. Process entire .idata segment
segment = here()
assert idc.get_segm_name(segment) == ".idata"
size = 4
target = idc.get_segm_start(segment) - 4
end = idc.get_segm_end(segment)
while target < end:
target += 4
wrongName = idc.get_name(target)
if wrongName == "":
continue
realName = idc.get_name(struct.unpack("=I", idc.get_bytes(target, 4))[0])
if realName == "":
print("Couldnt find a name for address", hex(target))
idc.set_name(target, realName)
print(hex(target)[:-1],":", wrongName, " -> ", realName)
Comments