Dependency Walker如何运作?

时间:2012-04-28 06:09:56

标签: dependency-walker

我希望能够编写自己的依赖步行器工具版本(我认为这是学习东西的好方法)。 但是,鉴于PE文件(dll / exe),我没有必要知道的知识 - 它有什么依赖性。

我希望能够提供一个可以为我提供这些知识的地方(教程/文章/文献等)。

谢谢!

1 个答案:

答案 0 :(得分:2)

原则上这是直截了当的(伪代码在我的头顶):

Create empty dependency list (list 1)
Create empty list of references yet to be looked at (list 2)
Add main module to list 2
repeat
  Select first module in list 2
  Open the PE file
  Parse header to find import section
  Enumerate import modules
  for each module imported
    if not already in list 1, Add it
    if not already in list 2, Add it
  Remove from list 2
until list 2 is empty.
Result in list 1.

要弄清楚如何实际解析PE的相关部分,可以从msdn.microsoft.com获取可移植可执行规范。