Windbg pykd Память останова

Я пытаюсь сделать сценарии автоматизации с функцией точки останова памяти с помощью pykd на windbg

и это мой сценарий вкратце

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

и как исправить скрипт, чтобы он хорошо работал

1 ответ

Решение

Я решил свою проблему. Это была просто проблема фильтрации исключений.

WinDBG - как установить все исключения для передачи в приложение?

На pykd я не могу обработать процесс WinDbg, поэтому я отключил его, и скрипт работает!

благодарю вас

Другие вопросы по тегам