網友評分: 9.4分
Dependency Walker是一款功能強大的VC反編譯工具,它可以掃描任何32位或64位Windows模塊(exe,dll,ocx,sys等),并構建所有相關模塊的分層樹狀圖。對于找到的每個模塊,它列出了該模塊導出的所有函數,以及其中哪些函數實際上由其他模塊調用。另一個視圖顯示所需文件的最小集合,以及有關每個文件的詳細信息,包括文件的完整路徑,基本地址,版本號,機器類型,調試信息等。不僅如此,Depends反編譯工具還支持可以查看PE模塊的導入模塊以及導入和導出的函數,還有動態剖析PE模塊的依賴性和解析C++的函數名稱。
1、用戶可定義的模塊搜索路徑,支持“KnownDLL”和“App Paths”注冊表項。搜索路徑可以從圖形界面或命令行中保存和加載。
2、能夠將模塊會話保存到文本報告文件,以便在任何文本查看器中輕松查看。
3、能夠將模塊會話保存為逗號分隔值(CSV)文件,以便輕松導入其他應用程序。
4、能夠將整個模塊會話的快照保存到圖像文件,以后可以在任何計算機上通過Dependency Walker加載。
5、模塊分析以檢測動態依賴關系,子進程,線程活動和異常。子進程也可以針對其依賴關系進行分析。
6、能夠控制哪些文件擴展名Dependency Walker會將“View Dependencies”菜單項添加到資源管理器中的文件上下文菜單中。
7、添加熱鍵以幫助匹配導入與導出,列表視圖中的模塊以及樹視圖中的模塊。還添加了熱鍵來查找樹視圖中模塊的上一個,下一個或原始實例。
8、在模塊列表視圖中添加了一些新列。它們包括鏈接時間戳,鏈接校驗和,實時校驗和,符號,實際基準,虛擬大小和加載順序。
9、添加了一個OS信息對話框。這些信息也保存到文本和Dependency Walker圖像(DWI)文件中。
10、所有列表視圖現在可以通過圖標排序,該圖標提供了一種將相似類型的項目分組的簡單方法。
11、您現在只需輸入幾個字符即可在當前排序的列中匹配,從而在所有列表視圖中搜索文本。
12、為模塊列表視圖和日志視圖添加了顏色編碼,以幫助突出顯示問題。
1. 雙擊depends.exe ,運行該程序。
2. 將可執行文件拖到該窗口中。稍等片刻,出現depends 分析結果。
3. 左側的樹控件,顯示了該exe 包含哪些module(dll),下面的列表是可能用到的dll 總表。因為子dll又包含孫dll, 孫dll又包含... 總之dll 不超過這么多了。不過這個列表用途不大。
4.點擊樹形控件的子dll,在又測得兩個窗口中有相應的信息。其中下面的窗口顯示的是該 dll 的導出信息。如ordinal,hint,funtion-name,entry-point 等,上面窗口為導入表列表 最后一下entry Point 往往寫著not found. 是因為hint 值與下面導出表的hint,function 不一致。不過這沒有關系。因為導入表hint 是用的鏈接時開發環境的dll, 而現在導出表是你系統 中正使用的dll, 不一致也正常,反正運行時是根據dll函數名稱進行定位的。
1、Dependency Walker似乎只顯示了一些應用程序的依賴關系。為什么它不顯示所有的?
當您首次在Dependency Walker中打開一個模塊時,它只顯示隱式的、轉發的和延遲的負載依賴關系。許多依賴項都是動態加載的,直到您在依賴項沃克中對應用程序進行配置之前才能檢測到。有關更多信息,請參見Dependency Walker處理的依賴類型,并使用應用程序剖析來檢測動態依賴項。
2、為什么我看到很多應用在mpr.dll出現在紅在shlwapi.dll因為它缺少一個功能叫WNetRestoreConnectionA嗎?我還得到了一個警告:由于延遲加載相關模塊“消息”中缺少一個導出函數,至少有一個模塊有一個未解決的導入。
shlwapi.dll的一些版本(比如Windows XP的一個)對MPR.DLL的功能wnetrestoreconnectiona延遲加載的依賴。只要調用dll準備處理這種情況,缺失的延遲負載函數就不是問題。Dependency Walker標記所有潛在的問題,因為它無法檢測應用程序是否打算處理這個問題。在SHLWAPI.DLL的情況下,這不是一個問題,它不需要WNetRestoreConnectionA的存在和處理缺少的功能在運行時。這個警告可以忽略。有
3、為什么MSJAVA.DLL出現在yellow(缺模塊),我得到一個警告:至少一個延遲加載依賴模塊”的消息沒有?
The MSHTML.DLL 模塊發布Windows XP SP2和Windows 2003 SP1對msjava.dll延遲加載的依賴。只要調用DLL準備處理丟失的模塊,缺少延遲負載依賴關系就不是問題。Dependency Walker標記所有潛在的問題,因為它無法檢測應用程序是否打算處理這個問題。在這種情況下,MSJAVA.DLL是一個可選的模塊,和MSHTML.DLL準備去處理它。這個警告可以忽略。
1、已移至新的HTML幫助系統并更新了幫助文字。
2、增加了對MSDN 8.0外部幫助的支持,并更新了聯機幫助URL。
3、改進了處理DLL清單和app.exe.local文件的并行支持。
4、更新了有關已知操作系統版本的內部信息,構建號碼并標記到Vista RC1版本。
5、版本和/或其希望使用的文件的位置。
6、與Visual Studio幫助,MSDN幫助和MSDN聯機進行集成,以提供顯示任何已知功能的詳細幫助的功能。
7、檢測動態加載的模塊,包括有關哪個模塊實際調用LoadLibrary動態加載模塊的詳細信息。
8、動態調用函數的檢測,包括有關哪個模塊實際調用GetProCADdress以獲取函數地址的詳細信息。
9、檢測延遲負載依賴性。這是Microsoft Visual C ++ 6.0中引入的一種新型依賴關系。他們在Windows 95/98 / Me和Windows NT / 2000 / XP / 2003 / Vista / 7/8 / +上工作。
10、支持64位Windows模塊。
11、控制臺模式允許Dependency Walker在沒有顯示其圖形界面的情況下運行。這對批處理文件和Dependency Walker功能的無人值守自動化非常有用。
12、用于配置模塊搜索順序,列排序,輸出文件,分析和其他設置的命令行選項。
13、能夠監控模塊入口點(如DllMain)尋找模塊初始化失敗。
14、C ++函數名稱undecorating以提供可讀的C ++函數原型,包括函數名稱,返回類型和參數類型。