Windbg pykd内存断点

Windbg pykd内存断点,windbg,breakpoints,pykd,Windbg,Breakpoints,Pykd,我试图通过在windbg上使用pykd来制作具有内存断点功能的自动化脚本 简而言之,这是我的剧本 class MemBpHandler(pykd.eventHandler): def setPageGuard(self, addr, size, guard=0x140): # Set PAGE_GUARD cmdVprotect = "!sdbgext.vprotect %x %x %x" cmdr = pykd.dbgCommand(cmdVprotec

我试图通过在windbg上使用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
类MemBpHandler(pykd.eventHandler):
def setPageGuard(self,addr,size,guard=0x140):#设置页面_guard
cmdVprotect=“!sdbgext.vprotect%x%x”
cmdr=pykd.dbgCommand(CMDVROTECT%(地址、大小、防护))
dbiprintf(cmdr)
def onException(自我,例外信息):
dbiprintf(“发生[!]异常”)
如果ExceptionInfo.exceptionCode==0x80000001:#保护#页面#冲突#内存断点
dbiprintf(“himembp!”)
#…一些程序。。。

return pykd.eventResult.NoChange#我解决了我的问题。这只是一个异常过滤问题

在pykd上,我无法处理WinDbg的进程,因此我禁用了它,脚本可以正常工作


谢谢

您能否发布您在WinDbg中使用的命令以激活PyKd脚本?我使用此命令>>。加载PyKd>>!py c:\ad.py和ad.py是我的python脚本我发布的类的目的是捕获在内存中恢复数据的时刻。另外,在我的脚本中,我使用的类类似于“memBpHandler=memBpHandler()”、“memBpHandler.setPageGuard(memBpHandler.pIatBase,memBpHandler.sizeIat)”