Windbg/x64dbg/OllyDbg調試器簡介

原文鏈接:

https://blog.csdn.net/libaineu2004/article/details/104081676

 

一、Windbg

Windbg是微軟開發的一套調試器中的組件。WinDBG屬於內核級別調試器,不僅可以用來調試應用程序,也可以調試內核級的代碼,如驅動程序。Windbg由於其豐富的命令和對Windows的原生支持還有其易用性,是其他其他調試器望塵莫及的。如果安裝了Windows SDK,一般會帶有windbg.exe,gflags.exe和appverif.exe,安裝路徑是:

Windows SDK v8.1

C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\windbg.exe

C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\windbg.exe

Windows SDK v10

C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe

C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\windbg.exe

注意,32位程序請使用32位windbg調試,64位程序用64位windbg調試。

gflags.exe和windbg.exe在同一個安裝路徑

WinDbg Preview

C:\Program Files\WindowsApps\Microsoft.WinDbg_1.2001.2001.0_neutral__8wekyb3d8bbwe\DbgX.Shell.exe

AppVerifier

C:\Windows\System32\appverif.exe

C:\Windows\SysWOW64\appverif.exe

★WinDBG官網:

http://www.windbg.org/ windbg

https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/ windbg

https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/debugging-using-windbg-preview WinDbg Preview 新版本,僅適用於Win10

https://www.microsoft.com/en-us/download/details.aspx?id=20028 AppVerifier

http://windbg.info/doc/1-common-cmds.html

如果 Windows SDK 已安裝,但是沒有windbg,請打開 "設置",導航到 "應用" & 功能",選擇" Windows 軟件開發工具包",然後單擊"修改"以更改安裝以添加Windows 調試工具.

我們用AppVerifier主要是爲了打開頁堆(page heap)調試功能,你也可以用系統工具 gflags.exe 來做同樣的事。

打開gflags,菜單Image File,Image填exe名字,不要全路徑,選上Create user mode stack trace database;

★Windbg特色功能:

1. 支持應用層程序調試(可以源碼調試)

2. 支持內核層調試。如調試驅動和操作系統

3. 支持遠程調試

4. 分析dump文件

5. 查看本地操作系統信息

6. 豐富的命令(可以看到你用其他工具看不到的信息)

不足:

1. 界面不是太友好

與vc調試器比較:源碼調試器首選vc

與ollydbg比較:無源碼應用層程序調試首選ollydbg

★遠程調試應用程序
準備:
1. 遠程機安裝windbg

2. 本地安裝windbg

遠程機使用TCP鏈接設置:
設置windbg啓動命令行:windbg.exe -server tcp:port=123456 (123456是端口號,這個可以隨意設置)
然後通過命令行的方式啓動,附加或啓動一個需要調試的進程
本地機設置:
設置windbg啓動命令行:windbg.exe -remote tcp:server=172.168.1.3,port=123456 (172.168.1.3是遠程機器IP, 123456是端口號,一定要與遠程機一致),然後通過命令行的方式啓動

★姊妹篇

《Qt Creator的CDB調試器--使用技巧與心得,重點是Symbols Path設置》

《VC++內存泄漏檢測方法(5):使用強大的Windbg工具,重點是Symbols Path設置》

★書籍推薦

張銀奎,高端調試 http://advdbg.org/

張銀奎《軟件調試》

張銀奎《軟件調試(第二版)》

熊力,https://www.cnblogs.com/lixiong/,https://www.cnblogs.com/lixiong/archive/2010/02/11/1667516.html

熊力《Windows用戶態程序高效排錯》

熊力《Windows用戶態程序高效排錯》勘誤和補充

★博文推薦

Windbg新手入坑指南

基於WinDbg的內存泄漏分析

從Ollydbg說起-----WinDbg用戶態調試教程

 

二、OllyDbg(簡稱OD)

OllyDbg是用戶態調試器,具有一定的智能分析能力,但與IDA(智能反彙編分析器)的分析能力相比,不是一個量級的。但它的調試器功能非常完善。所以通常用IDA來閱讀代碼,而用Olly來動態跟蹤程序。

OllyDbg:3級調試工具,與當年的TRW2000(RING 0級調試工具)齊名,用的人很多。上手容易,教程如牛毛。只能用來搞32位程序,作者已不再更新。
x64dbg:新型的調試工具32位/64位都能搞,相對bug多,教程少;但是越來用的人越多。周更新。

WinDbg:一般調試微軟內存/藍屏工具,一般人玩不動。
IDA:可動態、靜態、流程圖式分析與調試,佔用資源也最多。

http://www.ollydbg.de/

https://www.52pojie.cn/thread-350397-1-1.html 52pj-Ollydbg

 

三、x64dbg

x64dbg是Windows下的32/64位調試器,開源。x64dbg採用 QT 平臺編寫,支持多國語言。熟悉OllyDbg的用戶應該很容易上手。x64dbg整體前景比較樂觀,功能有待加強,但界面簡潔明晰、操作方便快捷,設計人性化等。通過這款調試工具用戶可以分析64位的應用,這是OllyDbg所不能做到的,它只能分析32位應用,所以想要分析64位應用,你可以使用小編帶來的這款調試工具,是一款專門用於分析64位應用的調試軟件。支持類似C的表達式解析器、全功能的DLL和EXE文件調試、IDA般的側邊欄與跳躍箭頭、動態識別模塊和串、快反彙編、可調試的腳本語言自動化等多項實用分析功能,可以幫助你完成64位應用的分析。

https://x64dbg.com/

https://github.com/x64dbg/x64dbg

https://www.52pojie.cn/thread-1094207-1-1.html

https://www.lanzous.com/i8mzfrc 原版+插件下載,52pj

 

x.微軟符號文件,http://msdl.microsoft.com/download/symbols

1、下載方法

方法1:  使用vs進行下載,當然必須是vs2003以後的版本,通過attach到一個進程中或者啓動一個程序進行調試。

方法2: 使用Windbg進行下載,同樣是attach或run一個程序,Ctrl+S設置一下符號路徑,然後使用命令.reload

2、設置調試器Symbols路徑
WinDBG、VC.Net及以上版本都可以通過設置環境變量指定Symbols路徑,並都能根據環境變量設置自動去微軟服務器拉取window系統symbols。

右鍵我的電腦—〉“屬性”—〉“高級系統設置”—〉“高級”—〉“環境變量”—〉“系統變量”,新建兩個環境變量:

_NT_SYMBOL_PATH和_NT_ALT_SYMBOL_PATH

_NT_SYMBOL_PATH=C:\Symbols;srv*C:\Symbols*http://msdl.microsoft.com/download/symbols
_NT_ALT_SYMBOL_PATH=cache*C:\Symbols
_NT_SYMBOL_PROXY=127.0.0.1:8100


這樣設置後,調試器首先會到_NT_ALT_SYMBOL_PATH指定的共享路徑中去尋找pdb文件,並把找到的文件緩存到C:\Symbols目錄下,下次訪問時就不用到共享目錄中查找,這樣可以提高速度。當在_NT_ALT_SYMBOL_PATH中找不到時會查看路徑_NT_SYMBOL_PATH,接着自動從微軟官方網站下載windows系統的pdb文件,並緩存到共享目錄C:\Symbols中,緩存的好處是下次直接從共享目錄拉取,不用再跳到微軟網站拉取。
注意:設置以上變量後第一次使用Windbg或者VS調試時,因爲要下載windows系統的pdb文件,可能要等待一段時間(Windbg會在命令行窗口右下角顯示“BUSY”狀態,但也有可能不顯示狀態,VS在狀態欄會顯示Loading symbols for XXX),並且pdb文件都相對比較大,視網速快慢,可能要等待十幾分鍾到幾個小時。另外在測試中發現,WinDbg下載symbols的速度比VS快得多。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章