Lyxica

Update import names in segment

Aug 27th, 2020 (edited)
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.62 KB | None | 0 0
  1. import struct
  2.  
  3. # Imports are lies, rename the segment offsets based on their true import addresses. Process entire .idata segment
  4. segment = here()
  5. assert idc.get_segm_name(segment) == ".idata"
  6. size = 4
  7.  
  8. target = idc.get_segm_start(segment) - 4
  9. end = idc.get_segm_end(segment)
  10. while target < end:
  11.     target += 4
  12.     wrongName = idc.get_name(target)
  13.     if wrongName == "":
  14.         continue
  15.     realName = idc.get_name(struct.unpack("=I", idc.get_bytes(target, 4))[0])
  16.     if realName == "":
  17.         print("Couldnt find a name for address", hex(target))
  18.     idc.set_name(target, realName)
  19.     print(hex(target)[:-1],":", wrongName, " -> ", realName)
  20.    
Advertisement
Add Comment
Please, Sign In to add comment