如何擷取 Kernel Memory Dump?
這篇文章主要說明如何取得 Windows Kernel Dump的步驟與技巧。
常用的方式是刻意製造一次 Blue Screen 讓系統產生 Dump,但是這樣會造成系統當機中斷,
使用Windbg進行Live Debugging 也很容易操作不慎而造成藍色畫面,有沒有其他方式可以產生呢?
使用 LiveKD 工具
1. 安裝 WinDBG
http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx
on the computer from which you require a kernel memory dump.
2. 下載 LiveKD
https://technet.microsoft.com/en-us/sysinternals/bb897415.aspx
解壓縮至 Windbg目錄, C:\Program Files\Debugging Tools for Windows (X86)\
3. 拷貝系統檔案
將下列檔案從 C:\windows\system32拷貝至 .c:\debugsymbols\system32
- ntoskrnl.exe
- ntkrnlpa.exe
- kernel32.dll
- ntdll.dll
4. 下載 Symbols
C:\Program Files\Debugging Tools for Windows (x86)>Symchk.exe /if c:\debugsymbols\system32\*.* /s srv*c:\debugsymbols*http://msdl.microsoft.com/download/symbols
5. 設定 WinDBG Symbol Path
開啟 WinDBG > File > Search Symbol Path > 輸入 ” SRV*c:\debugsymbols*”
6. 執行 LiveKD.exe
用系統管理者權限開啟 command,
C:\Program Files\Debugging Tools for Windows (X86)\livekd.exe
輸入 “.dump -f c:\memory.dmp”
使用 NotMyFault藍色畫面
http://download.sysinternals.com/files/NotMyFault.zip
輸入 “NotMyFault.exe /crash”
Complete Memory Dump 設定
“Complete Memory Dump”預設沒有,必須要再註冊碼設定。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl
CrashDumpEnabled=1
或是可以利用這個工具設定 DumpConfigurator.hta