我希望能够编写自己版本的依赖遍历器工具(我认为这是学习事物的好方法)。但是,给定一个 PE 文件(dll/exe),我没有必要的知识能够知道——它的依赖是什么。
我希望能参考一个可以为我提供这些知识的地方(教程/文章/文学/等..)。
谢谢!
我希望能够编写自己版本的依赖遍历器工具(我认为这是学习事物的好方法)。但是,给定一个 PE 文件(dll/exe),我没有必要的知识能够知道——它的依赖是什么。
我希望能参考一个可以为我提供这些知识的地方(教程/文章/文学/等..)。
谢谢!
原则上是直截了当的(我脑海中的伪代码):
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 获取 Portable Executable 规范。