本文主要分享【windbg】,技術文章【WinDbg實踐--入門篇】為【阿升1990】投稿,如果你遇到相關問題,本文相關知識或能到你。
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,默認的源碼路徑、符號路徑和緩存路徑如下:
設置_NT_SYMBOL_PATH環境變量的值為SRV*D:\mysymbol*https://msdl.microsoft.com/download/symbols
:
輸入.cls清空Command窗口中的內容:
使用version命令查看版本信息:
使用vertarget命令查看目標計算機版本信息:
使用lm查看模塊信息:
使用!dlls命令查看模塊信息:
使用.process顯示當前進程信息:
使用.thread顯示當前線程信息:
使用!peb命令顯示進程環境塊信息:
使用!teb命令顯示線程環境塊信息:
使用!address -summary命令顯示內容地址摘要信息:
使用.sympath查看當前符號搜索路徑等信息:
WinDbg開啟調試的方式有很多種,這里使用打開可執行文件的方式:
今天推薦的一本好書和老書是《.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版權協議。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。