我试图通过在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发生时,
“嗨,MemBp!”被打印,而WinDbg破坏目标进程。
使用“在任何异常处理之前都会报告第一次异常。此异常可能会被期望和处理。”
我希望知道为什么我给了NoChange
以及如何修复脚本以使其工作正常。
发布于 2017-05-12 06:21:55
我解决了我的问题。这只是一个异常过滤问题。
WinDBG - how to set all exception to be passed into app?
在pykd上,我无法处理WinDbg的进程,所以我禁用了它,脚本就可以工作了!
谢谢
https://stackoverflow.com/questions/43909736
复制相似问题