24

在 Windows 7 x64下,当我尝试使用最新版本的 Dependency Walker (2.2.6000) 分析x86可执行文件时,分析过程总是在某个点挂起。大多数情况下,加载的最后一个 DLL 是c:\windows\syswow64\URLMON.DLL,因此该 DLL 中的某些东西似乎导致了问题。在 Windows 7 x86上分析相同的可执行文件可以完美运行。

我已经在谷歌上进行了广泛的搜索,但无法找到解决问题的方法。我发现的一个建议是卸载 IE 8 或 IE 9 并将其替换为 IE 7,但这并没有真正的帮助。我能观察到的唯一效果是,对于 IE 7,分析过程挂在不同的 DLL 上(iertutil.dll如果我没记错的话,也来自系统的syswow64文件夹)。

所以我的问题是:如何让 Dependency Walker 在 x64 Windows 7 上分析 x86 应用程序?当然,如果一开始就知道问题存在的原因也很好:-)

一些最后的笔记:

  • 我正在使用 x86 版本的 Dependency Walker,因为我想分析 x86 可执行文件
  • 以管理员身份运行 Dependency Walker 无济于事
  • 所有标记为“可能在 WOW64 上失败”的分析选项都被禁用
  • 我目前用作重现问题的测试用例的可执行文件是 Sumatra PDF 查看器(下载链接),因为它是一个简单的 .exe,不需要安装
4

4 回答 4

18

根据@Stone Free 的评论更新说明

您需要的下载链接已更改为:

https://www.microsoft.com/en-us/download/details.aspx?id=42273

转到2. 安装 WDK 10部分并选择下载:

从第 2 阶段找到并运行 Wdk 安装程序 ( wdksetup.exe ),然后选择下载选项而不是安装。

完成后找到并运行DownloadLocation\Windows Kits\10\WDK\Installers>"Windows Driver Kit-x86_en-us.msi"

然后你会在以下位置找到 Dependency Walker:

  • C:\Program Files (x86)\Windows Kits\10\Tools\x64\depends.exe用于 64 位版本
  • C:\Program Files (x86)\Windows Kits\10\Tools\x86\depends.exe用于 32 位版本

这是 2015-10-29 构建的 Dependency Walker 版本 2.2.10011 x86 版本

一个方便的工具是使用 https://github.com/juntalis/depends-launcher,它是一个简单的 Dependency Walker 启动器,用于确定 Windows 图像(dll、exe 等)的平台(x86|x64|ia64)和启动适当版本的depends.exe 以查看其依赖项。它的主要目的是在上下文菜单条目中使用以轻松查看图像的依赖项。

于 2016-03-17T00:40:09.950 回答
4

目前已知的最新版本的 Dependency Walker 似乎是 2015-10-29 的 2.2.10011(链接如下)。

它与一些适用于 Windows 10 的 Windows 开发工具包一起部署,但它包含的版本不再可从 Microsoft Pages 获得,并且所有较新的版本不再包含它,原因不明。

可能是因为最新版本也存在 动态链接库重定向或其他性能问题的一些问题。(在 Windows 10 下使用 dependency walker 似乎比以前的 Windows 版本更慢更麻烦 - 但仍然是这项工作的好工具)

以下版本可用:

潜在替代品:

对于简单的任务,Github 项目lucasg/Dependencies可能值得一试。但它目前不支持分析正在运行的应用程序以调试损坏的运行时依赖项depends.exe

于 2019-05-23T12:52:45.007 回答
3

我遇到了同样的问题,我发现它已在最新版本的 Dependency Walker 中修复。我比较了 2.2.6000 和 2.2.8288,前者存在问题,后者不存在。但是,您可能必须等待 Windows 8 WDK 向公众发布才能获得最新版本。

于 2012-03-15T21:15:31.463 回答
3

我不得不改用 GitHub 项目:Dependencies

从 Windows 10 1809 (10.0.17763) 开始,我什至无法运行 10.0.10586.0 WDK 中包含的 depends.exe 版本 2.2.10011。

于 2018-11-05T09:31:40.237 回答