Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. from idaapi import *
  2. from idc import *
  3. import struct
  4. import time
  5. import traceback
  6.  
  7.  
  8. def writeLog(data):
  9.  
  10. print data
  11.  
  12. def get_int_at_addr(addr):
  13. data=GetManyBytes(addr,4)
  14. val=struct.unpack('>I',data)[0]
  15. return val
  16.  
  17. class MyDbgHook(DBG_Hooks):
  18. def dbg_bpt(self, tid, ea):
  19. try:
  20. RefreshDebuggerMemory()
  21. eip = GetRegValue("RIP")
  22.  
  23. if eip == 0x026F1:
  24. rdi = GetRegValue("RDI")
  25. rdi_data=GetManyBytes(rdi,256,True)
  26. writeLog("\trdi => "+rdi_data.encode("hex"))
  27. else:
  28. print "uncatched breakpoint : 0x%08x" % (eip)
  29.  
  30. except:
  31. print "ERROR"
  32. traceback.print_exc(file=sys.stdout)
  33. self.unhook()
  34. continue_process()
  35. return 0
  36.  
  37.  
  38.  
  39.  
  40. try:
  41. if debughook:
  42. print("Removing previous hook ...")
  43. debughook.unhook()
  44. except:
  45. pass
  46.  
  47. debughook = MyDbgHook()
  48. debughook.hook()
  49.  
  50. AddBpt(0x026F1) # final compare
  51.  
  52. print "I'm loaded 2"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement