Lyxica icon

Update import names in segment

Lyxica | PRO | 08/28/20 02:39:06 AM UTC (Edited) | 0 ⭐ | 264 👁️ | Never ⏰ | []
Python |

620 B

|

None

|

0 👍

/

0 👎

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