乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Windows Kernel Way 1:Windows內(nèi)核調(diào)試技術(shù)

       hask578 2014-12-24

      掌握Windows內(nèi)核調(diào)試技術(shù)是學(xué)習(xí)與研究Windows內(nèi)核的基礎(chǔ),調(diào)試Windows內(nèi)核的方式大致分為兩種:

      (1)通過Windbg工具在Windows系統(tǒng)運行之初連接到Windows內(nèi)核,連接成功之后便可以調(diào)試,此時即可以調(diào)試Windows內(nèi)核啟動過程,又可以在Windows啟動之后調(diào)試某內(nèi)核組件或應(yīng)用程序?;蚴褂肳indbg的Kernel debugging of the local mechine功能,在Windows系統(tǒng)完全啟動之后,調(diào)試Windows內(nèi)核組件或應(yīng)用程序。這種方式需要配置Windows系統(tǒng)以DEBUG模式啟動。

      (2)通過Bochs來運行Windows系統(tǒng),可以在Windows運行的任意時刻調(diào)試任意信息,但最大的缺點就是,這種方式目前不支持使用Windows Symbols,與第一種方式相比,匯編代碼讀起來并不直觀。

      本文介紹方式(1)即通過Windbg工具調(diào)試Windows內(nèi)核。

      1、Windbg工具簡介及獲取方式

      Windbg工具是微軟團隊開發(fā)和公布的一款專門用于調(diào)試Windows內(nèi)核及應(yīng)用程序的調(diào)試器,既支持內(nèi)核級(Ring0)調(diào)試,也支持應(yīng)用程序級(Ring3)調(diào)試。如今的Windows系統(tǒng)調(diào)試器有多種,出了Windbg以外,還有Olldbg、Immunity Debugger等。Olldbg和Immunity Debugger不支持內(nèi)核級調(diào)試。

      Windbg工具包含在Windows Driver Kit(WDK,Windows驅(qū)動開發(fā)包)中,當(dāng)然也可以單獨下載。

      (1)如果要通過WDK方式獲取的話,Windows XP及之前的環(huán)境只要下載WDK即可,整個資源大約300M~500M,但是在Windows Vista/Windows 7等系統(tǒng)之后,微軟將WDK與Visual Studio環(huán)境集成到一起,因此整個下載資源大約6.0G~7.0G。由于Windows XP系統(tǒng)不再支持,并且筆者的實驗環(huán)境為Windows 7系統(tǒng),在后續(xù)的文章中也會涉及到Windows驅(qū)動開發(fā),所以筆者建議下載WDK與VS集成包,雖然資源比較大。

      (2)如果只是暫時學(xué)習(xí)Windows內(nèi)核調(diào)試的話,可以單獨下載Windbg工具,整個資源大約150M。

      以上資源皆可以在MSDN上獲取,獲取鏈接為:http://msdn.microsoft.com/zh-cn/windows/hardware/hh852365.aspx

      2、Windows Symbols簡介及獲取方式

      Windows Symbols是微軟公開的Windows系統(tǒng)符號表,使用Windbg調(diào)試WIndows內(nèi)核和應(yīng)用程序時可以很直觀地看到部分變量名稱、結(jié)構(gòu)體結(jié)構(gòu)、函數(shù)名稱等。

      Windows Symbols可以直接在MSDN上獲取,其獲取頁面與上述給出的獲取Windbg工具的頁面鏈接相同。

      但是筆者不建議直接下載并安裝Windows Symbols,因為在使用Windbg工具調(diào)試時,可以根據(jù)需要即時獲取相關(guān)模塊的符號信息(如果網(wǎng)絡(luò)正常的話)。

      3、Windows內(nèi)核調(diào)試方法

      通過虛擬機調(diào)試Windows系統(tǒng)是種常見的方式,即首先搭建虛擬機環(huán)境,即將Windows系統(tǒng)安裝在虛擬機中,然后配置虛擬機Windows系統(tǒng)的啟動模式為DEBUG模式,并且配置好Windbg工具與虛擬機Windows系統(tǒng)之間的通信通道,在Windbg進入等待調(diào)試通信的時候,重啟虛擬機Windows系統(tǒng),雙方的調(diào)試鏈接建立以后,即可使用Windbg工具調(diào)試/控制Windows內(nèi)核,詳細步驟如下:

      (1)配置虛擬機Windows系統(tǒng)以DEBUG模式啟動。

      進入虛擬機Windows系統(tǒng),以管理員身份運行cmd.exe,執(zhí)行以下命令:

      bcdedit /debug on    //啟用Windows內(nèi)核調(diào)試支持

      bcdedit /bootdebug on  //啟用應(yīng)用程序的啟動過程調(diào)試支持

      關(guān)于bcdedit命令的詳細信息,可以在MSDN中了解:http://msdn.microsoft.com/zh-cn/library/dn653986(v=vs.85).aspx

      上述方式僅在Windows Vista/7系統(tǒng)及以后版本的Windows系統(tǒng)中有效,如不做特殊說明,筆者的實驗環(huán)境默認(rèn)為VirtualBox/Windows 7系統(tǒng)。

      對于Windows XP系統(tǒng)的配置,請自行GOOGLE。

      (2)配置Windbg與虛擬機Windows系統(tǒng)的調(diào)試通信通道。

      關(guān)閉虛擬機Windows系統(tǒng),在虛擬機“串口配置”中,啟用某個串口,比如COM1,并將該串口的端口模式設(shè)置為“主機管道”,并選擇“創(chuàng)建通道”,在“端口/文件位置”中輸入待創(chuàng)建的虛擬的管道設(shè)備名稱,比如“\\.\pipe\comdbg”(注意格式,“comdbg”名稱用戶自定義):

      打開Windbg,在“Kernel Debug”(Ctrl+K)對話框的“COM”標(biāo)簽頁中將“Port”也配置為“\\.\pipe\comdbg”:

      點擊確定后,Windbg進入嘗試與目標(biāo)建立通信通道狀態(tài):

      此時啟動虛擬機的Windows系統(tǒng),一段時間以后,調(diào)式通信通道建立成功:

      此時,在Windbg中按快捷鍵“Ctrl+Break”即可中斷虛擬機Windows的啟動/運行過程(第一次一般會下載符號表,需要耐心等待):

      此時便可以輸入各種調(diào)試指令,比如輸入“g”命令就可以繼續(xù)虛擬機Windows的運行過程。

      由于Windbg的內(nèi)核調(diào)試指令與Windows內(nèi)核原理相關(guān),所以在后面的Windows內(nèi)核原理分析時會詳細說明Windbg使用及相關(guān)指令。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多