如何使用檢視DLL神器DependencyWalker?

Tags: 函式, 神器, 模組,

Dependency Walker是一個免費的實用工具,它可以掃描任何32位或64位Windows模組(EXE,DLL,OCX,SYS等),並建立所有相關模組的分層樹形圖。

Dependency Walker對於排除載入和執行模組故障錯誤非常有用。 Dependency Walker能檢測出許多常見應用問題,例如缺少模組,無效的模組,匯入/匯出不匹配,迴圈依賴錯誤,不匹配的機器型別模組和模組初始化失敗。所以對於程式設計師來說,Dependency Walker是一項必備技能。

工具/原料

DependencyWalker

方法/步驟

Dependency Walker軟體下載:

可使用搜索下載,也可通過瀏覽器位址列輸入:

oxox.work/web/experience/dependencywalker/

如何使用檢視DLL神器DependencyWalker

模組依賴關係樹檢視如下:

如何使用檢視DLL神器DependencyWalker

模組依賴關係樹檢視顯示所有模組的依賴關係的層次結構檢視。以下是伴隨在依賴關係樹的每個模組的主影象列表。這個列表包含了所有可能的影象。實際影象可以是以下一個或多個影象的組合(如果下圖看不清楚,可訪問oxox.work/web/experience/dependencywalker/檢視):

如何使用檢視DLL神器DependencyWalker

匯入函式列表檢視

匯入函式列表檢視顯示的是在模組依賴關係樹檢視中當前選定的模組對應的匯入函式列表。匯入函式是實際上呼叫父模組給定的模組中的功能。

如何使用檢視DLL神器DependencyWalker

匯入函式列表檢視是由以下五列組成:

PI:見下面的列表說明。它表示“Parent Imports”

Ordinal:如果函式是通過序號匯入,則這個值是匯入函式的序號值。如果該功能是通過名字匯入,這個值可以是“N/ A”。

Hint:為匯入函式的提示值。它被用來作為匯出函式的選擇的模組中的陣列的一個索引。

Function:輸入函式的名稱,如果該功能是通過名字進口。它可以是“N/ A”,如果函式是由序號匯入。 C++函式可以在它們的天然的裝飾形式或以人類可讀的形式來檢視。

Entry Point:入口點的記憶體地址,對於隱式和向前的依賴關係,該欄位通常讀取“Not Bound”的,這意味著所述入口點地址直到載入時間才會被知道。

以下是匯入函式列表檢視中的每個功能的主要圖片:

如何使用檢視DLL神器DependencyWalker

匯出函式列表檢視

匯出函式列表檢視顯示的是在模組依賴關係樹檢視中當前選定的模組對應的匯出函式列表。匯出函式模組提供給其他模組呼叫。它們可以被認為是模組的介面。

如何使用檢視DLL神器DependencyWalker

匯出函式列表的五列與匯入函式列表檢視類似。

以下是匯出函式列表檢視中的每個功能的主要圖片:

如何使用檢視DLL神器DependencyWalker

模組列表檢視

模組列表檢視顯示所有依賴於你開啟根模組列表的特定模組是。這個列表定義了一組需要載入和作為一個正在執行的程序執行的模組檔案。

如何使用檢視DLL神器DependencyWalker

以下是模組列表檢視中Module的每個功能的主要圖片:

如何使用檢視DLL神器DependencyWalker

該模組列表檢視中包含的每個模組的資訊總共有以下多列。這些列包括:

如何使用檢視DLL神器DependencyWalker

日誌檢視

如果DependencyWalker在解析某個DLL檔案時出錯,錯誤資訊會顯示在該模組中。就如下圖開啟的一個帶有錯誤的DLL檔案。

如何使用檢視DLL神器DependencyWalker

相關問題答案