Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from idaapi import *
- from idc import *
- import struct
- import time
- import traceback
- def writeLog(data):
- print data
- def get_int_at_addr(addr):
- data=GetManyBytes(addr,4)
- val=struct.unpack('>I',data)[0]
- return val
- class MyDbgHook(DBG_Hooks):
- def dbg_bpt(self, tid, ea):
- try:
- RefreshDebuggerMemory()
- eip = GetRegValue("RIP")
- if eip == 0x026F1:
- rdi = GetRegValue("RDI")
- rdi_data=GetManyBytes(rdi,256,True)
- writeLog("\trdi => "+rdi_data.encode("hex"))
- else:
- print "uncatched breakpoint : 0x%08x" % (eip)
- except:
- print "ERROR"
- traceback.print_exc(file=sys.stdout)
- self.unhook()
- continue_process()
- return 0
- try:
- if debughook:
- print("Removing previous hook ...")
- debughook.unhook()
- except:
- pass
- debughook = MyDbgHook()
- debughook.hook()
- AddBpt(0x026F1) # final compare
- print "I'm loaded 2"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement