windows - dependency walker 如何知道模块中的哪些函数被使用了?

标签 windows algorithm winapi dll dependencies

它可以列出导出函数中使用的函数。

它是如何做到这一点的?

最佳答案

关键是每个 Windows 模块(可执行文件和库)都包含一个导入表,其中列出了它所依赖的所有其他模块。该表由链接器构建,操作系统在内部使用它来确定模块的依赖关系并加载适当的库。

因此,Dependency Walker 所要做的就是递归遍历所有这些模块(形象地说,“遍历”它们),构建在它们各自的导入表中指定的模块列表。

显示所有运行时依赖项(例如使用 GetProcAddress 函数加载的依赖项),因为它们未在导入表中列出。它仅显示加载时(或静态)依赖项。

您可以找到有关 Dependency Walker 如何工作的更多信息 herehere .

关于windows - dependency walker 如何知道模块中的哪些函数被使用了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6001795/

相关文章:

c# - 如何使用 C# 为三个组合键注册热键

windows - 批量转到丢失错误级别

mysql - 调用目录中的文件列表并在一行中传递它们

windows - 有没有办法缩短 connect_ex() 的超时时间?

java - 基于线性时间搜索字符串对字符串进行排序

c++ - 打开 .doc 文件而不提供其处理程序应用程序 C++ 的路径

python - 在命令行中启动脚本时导入模块

c++ - 如何将备忘录应用于此递归函数?

c# - .NET 的 GUID 结构

ruby - 如何在 Windows 上使用 Ruby 捕获屏幕的一部分?