2017-05-11 17 views
0

중단 점 메모리를 pykd이는Windbg에서 내가 windbg를</p> <p>에 pykd를 사용하여 메모리 브레이크 포인트 기능을 자동화 스크립트를 만들려고 해요

GUARD_PAGE_VIOLATION가 발생 짧은

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 

내 스크립트입니다

"안녕 MemBp!" WinDbg가 대상 ​​프로세스를 중단합니다.

"예외 처리 전에 첫 번째 예외가보고됩니다." 이 예외가 예상되고 처리 될 수 있습니다. "

나는 내가 NoChange에게

와 작품에 스크립트를 수정하는 방법을 잘

+0

당신이 당신의 PyKd 스크립트를 활성화하기 위해 WinDbg를에서 사용하는 명령을 게시하시기 바랍니다 수 감사합니다? –

+0

이 명령은 >> load pykd >>! py c : \ ad.py 이고 ad.py는 내 python 스크립트 – Vanz

+0

입니다. 게시 한 클래스의 목적은 메모리에서 데이터를 복원하는 순간을 캡처하는 것입니다. 또한 스크립트에서 "memBpHandler = MemBpHandler()", "memBpHandler.setPageGuard (memBpHandler.pIatBase, memBpHandler.sizeIat)"와 같은 클래스를 사용했습니다. – Vanz

답변

0

내가 해결 내 문제를 줄조차 나누기 이유를 알고 싶습니다. 예외 필터링 문제 일뿐입니다.

pykd에 WinDBG - how to set all exception to be passed into app?

, 내가 WinDbg를의 프로세스를 처리 할 수 ​​없습니다 그래서 그것을 해제하고 스크립트가 작동합니다!