一、從windbgpreview下載
windbgpreview是微軟官方推出的一款調試工具,可以用於調試Windows系統和應用程序,其界面友好,功能強大。它可以管理運行的進程,監視線程,跟蹤系統內核函數的執行情況,診斷內存泄漏和損壞等問題。
windbgpreview可以從Windows Store下載,也可以從官方網站https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk和https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools下載。下載後,安裝即可使用。
二、windbgpreview怎麼用
首先,需要以管理員權限啟動windbgpreview。啟動後,菜單欄上的File可以用於打開要調試的應用程序或數據文件。如果要調試進程,可以按下F6或使用Attach to Process菜單項。如果要調試內核,需要在啟動時使用-c參數,並以管理員身份啟動。在windbgpreview中,還可以使用以下命令列出進程或線程、查看調試目標狀態、設置斷點、跟蹤堆棧、查看內存內容等:
?或help:列出可用命令幫助 ~或~*:列出所有線程信息 ~tid:列出指定tid的線程信息 .dp /m:列出內存分頁信息 .dump /ma /u /f filename:將調試目標的內存轉儲到指定文件 !analyze:分析調試目標崩潰的原因
三、windbgpreview堆棧溢出調試
當程序在執行過程中發生錯誤,windbgpreview可以跟蹤堆棧,並查找是否發生堆棧溢出。下面是一個簡單的堆棧溢出漏洞實例:
#include <stdio.h> #include <string.h> void vuln(char *str) { char buf[100]; strcpy(buf, str); } void main(int argc, char **argv) { vuln(argv[1]); printf("Over!\n"); }
上述代碼定義了一個函數vuln,其中調用了strcpy函數將輸入的字符串拷貝至buf緩衝區,存在緩衝區溢出漏洞。如果在調用vuln函數時傳入長度超過100的字符串,那麼溢出就會發生。
要在windbgpreview中調試該漏洞,需要將代碼編譯為可執行文件,並在命令行傳入惡意輸入。在windbgpreview中,首先需要輸入以下命令:
windbg -g -Q
然後,使用File/Open Executable菜單項打開編譯好的可執行文件。
輸入以下命令以啟動程序:
g
接着,輸入以下命令設置斷點:
bp vuln
然後,輸入以下命令以執行在斷點處停止的程序:
g AAAABBBBCCCCDDDD...
其中,AAAABBBBCCCCDDDD是要傳入的惡意輸入。程序會在調用vuln函數時停止。輸入k命令查看當前的函數堆棧:
k
堆棧信息中,可以看到vuln函數的返回地址被覆蓋,即發生了堆棧溢出。
四、windbgpreview為何打不開
如果在打開windbgpreview時發生錯誤,可以嘗試以下步驟解決問題:
1、檢查是否安裝了Visual Studio,Visual Studio是使用windbgpreview的前提條件之一。
2、檢查是否安裝了對應版本的Windows軟件開發工具包,在使用windbgpreview時需要使用對應版本的工具包。
3、嘗試重新安裝windbgpreview。
4、查找並修復可能導致問題的Windows更新或驅動程序。
五、windbgpreview為何沒有lanalyze
在windbgpreview中,與LANalyze類似的功能是在Detours庫中實現的。Detours庫是微軟官方推出的一款鉤子技術庫,可以對任意函數進行攔截、重定向、跟蹤等操作,包含了LANalyze類似的堆追蹤功能。要在windbgpreview中使用Detours庫,可以按照以下步驟操作:
1、下載Detours庫,將其解壓縮到合適的位置。
2、在windbgpreview中輸入以下命令:
.load \detours.dll
其中,是Detours庫所在目錄的路徑。
3、輸入以下命令,使windbgpreview能夠加載Detours庫的符號:
.symfix+ \detours.pdb
其中,是Detours庫pdb文件所在目錄的路徑。
4、使用Detours庫調試想要攔截的函數。
六、windbgpreview調試內核設置選取
要在windbgpreview中調試內核,需要進行以下設置:
1、打開目標Windows機器的調試功能,具體方式與版本相關。
2、在啟動Windows時選取啟動項:啟用調試選取(DEBUG)。
3、連接windbgpreview與目標Windows機器,可以使用串口、網絡等方式連接。
4、啟動windbgpreview,菜單欄上的File/Open Kernel Dump可以用於打開內核轉儲文件,選擇正確的機器架構,打開文件。
5、使用當地符號服務器,可以輸入命令.symfix或.symfix+避免符號加載的問題。
6、在非常低的內核級別,可以使用dp(Display Page)命令查看內存頁的內容。
總之,windbgpreview作為一款強大的調試工具,可以在多種場景下使用。通過學習windbgpreview的使用方法,可以提高Windows系統和應用程序的調試效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/156816.html