Dependency Walker是一款專業(yè)的軟件和程序依賴性分析工具,可以掃描任何32位或64位的Windows模塊,如exe,dll,ocx,sys等文件,并支持構(gòu)建所有相關(guān)模塊的分層樹形圖,可幫助用戶解決與加載和執(zhí)行模塊相關(guān)的系統(tǒng)錯(cuò)誤。
另外,Dependency Walker功能豐富多樣,主要功能如下:查看PE模塊的導(dǎo)入模塊;查看PE模塊的導(dǎo)入和導(dǎo)出函數(shù);動(dòng)態(tài)剖析 PE 模塊的模塊依賴性;解析C++函數(shù)名稱。有需要的朋友歡迎免費(fèi)下載使用。
ps:這里帶來的是Dependency Walker綠色版,此版本無需安裝,下載解壓后雙擊啟動(dòng)即可使用。
軟件特色
1、可以掃描任何32位或64位的Windows模塊(exe,dll,ocx,sys等)并構(gòu)建所有相關(guān)模塊的分層樹形圖。
2、對于解決與加載和執(zhí)行模塊相關(guān)的系統(tǒng)錯(cuò)誤非常有用。
3、可以在Windows 95、98、Me、NT、2000、XP、2003、Vista、7和8上運(yùn)行。
4、完全免費(fèi)使用。但是,您不得從其分銷中獲利,也不得將其與另一種產(chǎn)品捆綁銷售。
Dependency Walker使用方法
1、打開Dependency Walker,直接拖入目標(biāo)exe文件或者dll文件(也可以點(diǎn)擊菜單欄上的File,通過Open對話框來打開目標(biāo)文件),運(yùn)行界面如下:
圈選部分為TestDll.exe的依賴關(guān)系,它依賴MyDll.dll、MSVCP1400.DLL等,其各自又依賴其他DLL。
從中可以看出其依賴的深度較大,一般只需要查看最頂層的三次依賴即可。
2、單擊MyDll.dll,運(yùn)行界面如下:
3、界面右側(cè)的Function下的函數(shù)簽名不太清晰,可以右鍵函數(shù)名,選擇Undecorate C++ Functions,將函數(shù)簽名轉(zhuǎn)換成更為易讀的形式:
4、轉(zhuǎn)換后的形式如下:
上部的圈選部分是MyDll.dll的引用對象(也即TestDll.exe)使用的導(dǎo)出函數(shù),下部的圈選部分是MyDll.dll所有的導(dǎo)出函數(shù)。從圖中可以看出,MyDll提供了4個(gè)函數(shù)而TestDll只使用了其中的int Minus(int, int)和int Mutiply(int, int)。
另外,注意下其中的顏色標(biāo)識(shí), 上部的引用函數(shù),如果在動(dòng)態(tài)庫中存在,顯示為綠色;如果不存在顯示為紅色。下部的導(dǎo)出函數(shù),如果被引用,顯示成深藍(lán)色;如果未被引用,顯示成灰色。
5、函數(shù)缺失
如果將MyDll中的函數(shù)int Minus(int, int)刪除,重新生成MyDll.dll,然后再次查看TestDll.exe的依賴關(guān)系,顯示如下:
此時(shí),TestDll.exe引用的兩個(gè)函數(shù):int Minus(int, int)在MyDll.dll中已不存在,所有顯示成紅色;而int Multiply(int, int)依舊存在,顯示成綠色。這時(shí)運(yùn)行TestDll.exe,會(huì)報(bào)錯(cuò)顯示如下:
常見問題
1、Dependency Walker似乎只顯示了我的應(yīng)用程序的一些依賴項(xiàng)。為什么不全部顯示出來?
當(dāng)您第一次在Dependency Walker中打開一個(gè)模塊時(shí),它只顯示隱式、轉(zhuǎn)發(fā)和延遲加載依賴關(guān)系。許多依賴項(xiàng)是動(dòng)態(tài)加載的,直到您從Dependency Walker中分析應(yīng)用程序時(shí)才會(huì)被檢測到。如需詳細(xì)資訊,請參閱相依性Walker處理的相依性類型和使用應(yīng)用程式分析來偵測動(dòng)態(tài)相依性。
2、為什么我在很多應(yīng)用程序中看到MPR.DLL在SHLWAPI.DLL下以紅色顯示,因?yàn)樗鄙僖粋€(gè)名為WNetRestoreConnectionA的函數(shù)?我還收到一條“警告:由于延遲加載相關(guān)模塊中缺少導(dǎo)出函數(shù),至少有一個(gè)模塊有未解析的導(dǎo)入”消息。
SHLWAPI.DLL的某些版本(如Windows XP上的版本)對MPR.DLL的函數(shù)WNetRestoreConnectionA有延遲加載依賴。只要調(diào)用DLL準(zhǔn)備好處理這種情況,丟失延遲加載函數(shù)就不是問題。Dependency Walker標(biāo)記所有潛在的問題,因?yàn)樗鼰o法檢測應(yīng)用程序是否打算處理該問題。在SHLWAPI.DLL的情況下,這不是一個(gè)問題,因?yàn)樗灰骔NetRestoreConnectionA存在,并在運(yùn)行時(shí)處理缺失的函數(shù)。可以忽略此警告。有關(guān)更多詳細(xì)信息,請參見幫助中的“如何解釋Dependency Walker中的警告和錯(cuò)誤”部分。
3、為什么MSJAVA.DLL顯示為黃色(缺少模塊),而我得到一條“警告:至少有一個(gè)延遲加載依賴模塊沒有找到”的消息?
與Windows XP SP2和Windows 2003 SP1一起發(fā)布的MSHTML.DLL模塊具有對MSJAVA.DLL的延遲加載依賴性。只要調(diào)用DLL準(zhǔn)備好處理丟失的模塊,丟失延遲加載依賴項(xiàng)就不是問題。Dependency Walker標(biāo)記所有潛在的問題,因?yàn)樗鼰o法檢測應(yīng)用程序是否打算處理該問題。在這種特殊情況下,MSJAVA.DLL是一個(gè)可選模塊,MSHTML.DLL準(zhǔn)備處理它。可以忽略此警告。有關(guān)更多詳細(xì)信息,請參見幫助中的“如何解釋Dependency Walker中的警告和錯(cuò)誤”部分。
更新日志
v2.2.6000版本
- 移至新的HTML幫助系統(tǒng)并更新了幫助文本。
- 添加了對MSDN 8.0外部幫助的支持,并更新了在線幫助URL。
- 處理DLL清單和app.exe.local文件的改進(jìn)的并行支持。
- 更新了有關(guān)已知操作系統(tǒng)版本、內(nèi)部版本號(hào)和Vista RC1內(nèi)部版本標(biāo)志的內(nèi)部信息。
- 下載地址
- 本地下載通道:
- 浙江電信下載
- 北京聯(lián)通下載
- 江蘇電信下載
- 廣東電信下載
有問題? 點(diǎn)此報(bào)錯(cuò)
發(fā)表評論
0條評論軟件排行榜
熱門推薦
- dotCover 2024官方版 v2024.2.549.78M / 多國語言
- python最新版本2024 v3.12.3官方版25.2M / 簡體中文
- 微軟visual c++運(yùn)行庫合集包 v3.0.22.0317官方版85.82M / 簡體中文
- dwin dgus(開發(fā)配置工具) v5.04官方版6.87M / 簡體中文
- RegEx Tester(正則表達(dá)式調(diào)試工具) v3.2.0.0綠色版26K / 英文
- Report Builder v3.0官方版32.16M / 簡體中文
- Convert.NET(代碼翻譯器) v8.4.6675.71官方版4.48M / 多國語言[中文]
- msys2(類Linux開發(fā)環(huán)境) v2016.10.25官方版100.11M / 簡體中文
- node.js安裝包 v18.12.127.76M / 簡體中文
- APKSign(APK簽名工具) v1.0官方版292K / 簡體中文