使用Dependency Walker分析x86可执行文件在Windows 7 x64上挂起

时间:2012-01-12 09:46:30

标签: windows-7-x64 dependency-walker

在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查看器(download link),因为它是一个不需要安装的简单.exe

4 个答案:

答案 0 :(得分:16)

根据@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:

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

这是Dependency Walker版本2.2.10011内置2015-10-29 x86 version

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

答案 1 :(得分:3)

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

答案 2 :(得分:1)

Dependency Walker的最新当前已知版本似乎是2015年10月29日的2.2.10011(下面的链接)。

它已经与Windows 10的某些Windows开发工具包一起部署,但是它所包含的版本不再可以从Microsoft Pages获得,并且所有未知的版本都不再包含它。

可能是因为最新版本还存在Dynamic-Link Library Redirection方面的问题或其他性能问题。 (与以前的Windows版本相比,在Windows 10下使用Dependency Walker似乎要慢很多,但仍然是完成此工作的好工具)

可用以下版本:

潜在的替代物:

对于简单的任务,Github项目lucasg/Dependencies可能值得签出。但是它目前不支持像depends.exe那样对正在运行的应用程序进行性能分析来调试破坏的运行时依赖项。

答案 3 :(得分:0)

我不得不改用GitHub项目:Dependencies

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