Windbg pykd内存断点
Windbg pykd memory breakpoint
我正在尝试通过在 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
当 GUARD_PAGE_VIOLATION 发生时,
打印 "Hi MemBp!" 并且 WinDbg 中断了目标进程
with "在任何异常处理之前报告第一次机会异常。
可能会预料到并处理此异常。"
我希望知道为什么它收支平衡我给一个 NoChange
以及如何修复脚本以使其正常运行
我解决了我的问题。这只是一个异常过滤问题。
在 pykd 上,我无法处理 WinDbg 的进程,所以我禁用了它并且脚本可以运行!
谢谢
我正在尝试通过在 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
当 GUARD_PAGE_VIOLATION 发生时,
打印"Hi MemBp!" 并且 WinDbg 中断了目标进程
with "在任何异常处理之前报告第一次机会异常。 可能会预料到并处理此异常。"
我希望知道为什么它收支平衡我给一个 NoChange
以及如何修复脚本以使其正常运行
我解决了我的问题。这只是一个异常过滤问题。
在 pykd 上,我无法处理 WinDbg 的进程,所以我禁用了它并且脚本可以运行!
谢谢