Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Windows Server系統教程 >> Windows Server教程 >> Win2k"秘密武器"模塊解析工具

Win2k"秘密武器"模塊解析工具

日期:2017/1/24 11:03:35      編輯:Windows Server教程

  眾所周知:Windows的很多應用程序都是不但有可執行的EXE文件,而且還需要有輔助模塊,這些模塊形形色色,品類頗雜,其中名聲最大的就數動態連接庫(DLL)了,另外還有:ocx、sys等等.像應用程序可以分成16位、32位、64位程序一樣,模塊也分為16位、32位、和64位模塊.因刪除應用程序或可執行文件時,相關的動態鏈結庫或模塊往往不能刪除干淨,時間一長,形成許多使人生厭的"垃圾文件".所以,通常很多使用windows的人對DLL文件的關心都集中在研究哪些是有用的,哪些是無用的,以期准確地刪除無用部分,即完成所謂的系統減肥,不過,這不是本次討論的中心,我們的目的是從另一個方面研究模塊文件,下面提到的,就是一個這樣的工具.

  a.簡介

  Windows2000專業版的Support Tools中有一個專門分析模塊文件的工具,其英文名字是:Dependency Walker,直譯是"從屬漫步者",這個名字無論如何都透著別扭,不符合中文表達的特點.通過使用驗證和查看參考資料,把它進行引申,翻譯為"模塊解析工具"較為合適些.與上述為系統減肥的目的不同,模塊解析工具可以探測出:模塊的從屬關系、建立者、功能接口、調用關系、甚至生成模塊文件所使用的編程語言、程序鏈結時用的鏈結器版本等等信息,解析出的從屬關系是用一個類似目錄樹的圖標格式顯示出來的.當然還能顯示運行模塊至少需要使用哪些關聯文件,連同文件的完整路徑、基本地址、版本號、計算機類型、Debug信息以及其它等等信息,可謂是方方面面、應有盡有.

  從這些信息的性質不難看出,對系統管理員、系統測試者、編程人員、自動安裝腳本編寫人員來說,這類信息用處大些.對普通的使用者,用處小些.但也非無可所用.普通使用者可以用這些解析結果來排除由於模塊引起的系統故障,模塊導致的系統故障主要包括:

  1.模塊丟失. 

  2.無效模塊.

  3.執行的出口/入口搭配錯誤.

  4.循環錯誤.

  5.模塊與計算機類型的搭配錯誤.

  盡管該工具是win2k的支持工具,但也能運行在win9x、winNT3.51、winNT4.0的操作系統環境中,甚至還包括windows CE.目前Dependency Walker的最新版本是2.0.該版本只支持解析32位或64位模塊,已經不支持16位模塊了.

  b.用法略談

  與其它工具不同,這個工具只有GUI界面的版本而沒有命令行版本.如果你已經安裝了Support Tools,可以這樣打開:"開始->程序->Support Tools->Tools->Dependency Walker ".這也是一個英文界面的工具,並有英文幫助文件供參考.下面簡單介紹一下使用方法:

  1.首先用鼠標點擊”File|Open”.

  2.打開一個要解析的EXE、DLL、OCX或SYS文件,找好之後,鼠標雙擊文件名.

  3.雙擊後,原來空空如也的窗口立刻"熱鬧"起來,顯示出對選定模塊的解析結果.下面的圖形(圖1)是我在自己現在使用的這台機器上,對一個抓圖軟件SnagIt5主程序SnagIt32.exe的解析結果.圖中矩形或橢圓形的彩色框是我自己加上去的,意在便於後面的講解中作為標識.

  一共分成五個窗口,以五種顏色的矩形線框來標識,

  1.紅色線框的窗口,裡面的內容以類似目錄樹的表示方法,顯示的是模塊之間的從屬關系,點擊節點上的"+"或"-"號,可以將分支展開或折疊.這實際上也顯示了模塊的調用關系,例如大名鼎鼎的KERNEL32.DLL就不止在一處出現,也就是說,這個模塊被多次或多處調用.

  2.藍色線框的窗口.顯示的是選定模塊(即紅色線框中的藍色光標選定的模塊)的信息:這些信息有:序號,線索號,函數及登錄指針.

  3.綠色線框中顯示的是以C++語言為基准解析的模塊信息:項目與上面相同但表示方法不同,最明顯的是函數部分,列出了假定原程序是以C++環境開發時模塊使用的C++函數名稱,這對於編程人員進行模塊分析很有用處.其余的與上面相似.

  4.這是與第一個紅色線框內容對應窗口,但所包含的信息更多更細.該窗口顯示信息整理結果如下表:

  項目名稱 簡介 項目名稱 簡介 模塊名稱 DLL文件名稱 首地址 以十六進制表示的地址 文件時間標志 文件建立時間 真實地址 (未見顯示有效信息) 連接時間標志 文件鏈結時間 實際大小 以十六進制表示 文件大小 無需解釋 裝入次序 一般僅顯示是否裝入 屬性 即只讀隱藏等屬性 文件版本 本行以下無需解釋 連接校驗和 鏈結檢驗 產品版本 真實校驗和 亦用於檢驗目的 圖標文件版本 CPU類型 無需解釋 鏈接器版本 子系統 所屬系統 操作系統版本 符號 其作用不詳 子系統版本

  5.黃色矩形線框是顯示錯誤信息的,如果你選定一個16位的模塊文件,由於該工具不支持16位模塊解析,這個窗口就會顯示相關的錯誤信息.

  當解析一個模塊文件時,菜單上顯示的項目比上圖會多出3項:Edit、windows和Profile,其中的Edit很容易使用.Windiws的作用更不用說了.只是Profile比較生疏,圖2中將它以青色橢圓框標出,這是一個建立所謂"輪廓文件"的選項.

  對圖2顯示的菜單項目,這裡難以逐一介紹用法,實際上也無完全介紹的必要,所以只介紹較主要的2項:

  1.View:這一項確定顯示哪些解析信息,打開後的情況如圖3: 可供顯示的項目有很多種類,有關於計算機環境方面的信息,例如系統信息等;也有窗口布局方面的,如工具條狀態條等;更多的還是關於選定模塊的信息,你根據需要以鼠標點擊相應的項目,就可以將對應信息顯示出來.

  2. Profile:建立"輪廓文件",圖4是點擊該項後出現的對話框.只要輸入相應的參數並對列出項目選定,就可以產生一個相應的輪廓文件.關於輪廓文件的作用以及相關的知識,請自己查找相應的參考資料.

  C.結語

  Dependency Walker能解析的信息很多,特別是對程序設計中關於動態連接庫程序的調試用處很大.該工具提供詳細英文幫助文件.幫助文件在Dependency Walker打開的時候可以使用,但即使不打開Dependency Walker,也可以單獨使用,打開幫助文件的路徑可以在Tools Help中找到.  

Copyright © Windows教程網 All Rights Reserved