windbg


本文主要分享【windbg】,技術文章【WinDbg實踐--入門篇】為【阿升1990】投稿,如果你遇到相關問題,本文相關知識或能到你。

windbg

  WinDbg從字面意思就是Windows+Debug的組合,即Windows平台上的調試工具,可以調試用戶模式、內核模式、dump文件等,總之知道它的調試功能非常強大就行了。WinDbg調試命令分為3種,分別是基本命令、元命令和擴展命令。基本命令和元命令是調試器自帶的,元命令總以"."開頭,而擴展命令總以"!"開頭。后面的系列主要是通過例子+命令來實踐WinDbg。

一.配置微軟符號服務器[沒能成功]

  WinDbg在Windows程序中,通常都有一個和XXX.exe相同名字的XXX.pdb,pdb的全拼是Program Debug Database。pdb有自身的文件格式,它主要包含了調試信息,該文件是由鏈接器生成的符號文件。符號服務器[Symbol Server]本質上就是一個文件服務器,它把要調試的符號進行了集中存儲,這樣只要把WinDbg指向符號服務器就可以解析符號名稱了。常用的公共符號服務器就是微軟的符號服務器了,即http://msdl.microsoft.com/download/symbols,這個是調試Windows應用程序和Windows內核程序必不可少的。當然也可以搭建自己的符號服務器。

1.WinDbg默認的設置路徑

File -> Settings -> Debugging settings,默認的源碼路徑、符號路徑和緩存路徑如下:

alt

2.設置_NT_SYMBOL_PATH環境變量

設置_NT_SYMBOL_PATH環境變量的值為SRV*D:\mysymbol*https://msdl.microsoft.com/download/symbols

alt

在WinDbg中執行命令!sym noisy[顯示詳細加載信息]和.reload /f[加載符號]如下:

alt

通過上圖一看就是網絡連接的問題。文章[6]講要設置下proxy才行,設置_NT_SYMBOL_PROXY環境變量的值為127.0.0.1:19180:

alt

按照操作proxy也設置和打開了,執行.reload /f命令依然原樣報錯,並且網上沒有找到解決方案。打開https://msdl.microsoft.com/download/symbols提示如下:

alt

說明:總之沒有能夠從微軟的符號服務器下載數據,並且網上沒有找到有效的解決方案。由於暫時也用不到這個,就先這樣告一段落,有知情的小伙伴可以分享下解決方案

二.WinDbg常用的命令 1.命令.cls

輸入.cls清空Command窗口中的內容:

alt

2.命令version

使用version命令查看版本信息:

alt

3.命令vertarget

使用vertarget命令查看目標計算機版本信息:

alt

4.命令lm

使用lm查看模塊信息:

alt

主要顯示模塊名稱,模塊開始地址,模塊結束地址,模塊路徑等信息。

5.命令!dlls

使用!dlls命令查看模塊信息:

alt

6.命令.process

使用.process顯示當前進程信息:

alt

7.命令.thread

使用.thread顯示當前線程信息:

alt

8.命令!peb

使用!peb命令顯示進程環境塊信息:

alt

9.命令!teb

使用!teb命令顯示線程環境塊信息:

alt

10.命令!address -summary

使用!address -summary命令顯示內容地址摘要信息:

alt

11.命令.sympath

使用.sympath查看當前符號搜索路徑等信息:

alt

三.使用WinDbg打開notepad.exe

WinDbg開啟調試的方式有很多種,這里使用打開可執行文件的方式:

alt

alt

使用WinDbg打開notepad.exe后,Command窗口顯示內容如下:

alt

主要顯示Windows Debugger版本,執行性文件路徑,符號搜索路徑等信息。

四..NET探秘:MSIL權威指南

今天推薦的一本好書和老書是《.NET探秘:MSIL權威指南》,這本書以.NET2.0為基礎,是講解MSIL的權威着作,感興趣的小伙伴可以下載[12]。后面要把WinDbg操作和MSIL實踐融入到日常的.NET軟件開發中,以提高軟件的安全性。

參考文獻:
[1]WinDbg用戶態調試教程:https://bbs.pediy.com/thread-34379.htm
[2]Windbg新手入坑指南:https://www.52pojie.cn/thread-924116-1-1.html
[3]Windbg調試命令詳解:http://yiiyee.cn/blog/2013/08/23/windbg/
[4]WinDbg用法詳解:https://wenku.baidu.com/view/ca16ec6a306c1eb91a37f111f18583d049640fdc.html
[5]Good tutorial for WinDbg:https://stackoverflow.com/questions/4946685/good-tutorial-for-windbg
[6]WinDbg設置調試符號路徑與調試符號下載:https://blog.csdn.net/qq_41252520/article/details/123095105
[7]dotnet/symreader-portable:https://github.com/dotnet/symreader-portable
[8]搭建自己的符號服務器:https://bbs.pediy.com/thread-262537.htm
[9]Windows調試工具:https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/
[10]WinDbg Online Help:http://www.dbgtech.net/windbghelp/index.html
[11]WinDbg官方文檔:http://www.windbg.org/
[12].NET探秘:MSIL權威指南:https://url39.ctfile.com/f/2501739-623685565-48209f?p=2096 (訪問密碼: 2096)

本文由 mdnice 多平台發布

本文《WinDbg實踐--入門篇》版權歸阿升1990所有,引用WinDbg實踐--入門篇需遵循CC 4.0 BY-SA版權協議。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: