0
我试图通过使用WinDbg的WinDBG的pykd记忆断点
一个pykd,以与断点记忆功能的自动化脚本,这是我在很短
class MemBpHandler(pykd.eventHandler):
def setPageGuard(self, addr, size, guard=0x140): # Set PAGE_GUARD
cmdVprotect = "!sdbgext.vprotect %x %x %x"
cmdr = pykd.dbgCommand(cmdVprotect % (addr, size, guard))
dbiprintf(cmdr)
def onException(self, exceptInfo):
dbiprintf("[!] Exception occured")
if exceptInfo.exceptionCode == 0x80000001: # GUARD_PAGE_VIOLATION # Memory breakpoint
dbiprintf("Hi MemBp!")
# ...some procedures...
return pykd.eventResult.NoChange # <=== NoChange but WinDbg breaks
return pykd.eventResult.NoChange
当GUARD_PAGE_VIOLATION发生脚本,
“嗨MemBp!”打印并WinDbg打破目标进程
与“第一次机会异常在任何异常处理之前报告 此异常可能会被预期和处理。
我希望知道为什么它打破即使我给NOCHANGE
以及如何修复脚本作品以及
您可以发布您在WinDbg中使用的命令来激活您的PyKd脚本吗? –
我使用这个命令 >>。load pykd >>!py c:\ ad.py and ad.py is my python script – Vanz
我发布的类的目的是捕获恢复内存数据的时刻。另外,在我的脚本中,我使用了类“memBpHandler = MemBpHandler()”,“memBpHandler.setPageGuard(memBpHandler.pIatBase,memBpHandler.sizeIat)” – Vanz