Dependency Walker是一款专业的软件和程序依赖性分析工具,可以扫描任何32位或64位的Windows模块,如exe,dll,ocx,sys等文件,并支持构建所有相关模块的分层树形图,可帮助用户解决与加载和执行模块相关的系统错误。
另外,Dependency Walker功能丰富多样,主要功能如下:查看PE模块的导入模块;查看PE模块的导入和导出函数;动态剖析 PE 模块的模块依赖性;解析C++函数名称。有需要的朋友欢迎免费下载使用。
ps:这里带来的是Dependency Walker绿色版,此版本无需安装,下载解压后双击启动即可使用。
软件特色
1、可以扫描任何32位或64位的Windows模块(exe,dll,ocx,sys等)并构建所有相关模块的分层树形图。
2、对于解决与加载和执行模块相关的系统错误非常有用。
3、可以在Windows 95、98、Me、NT、2000、XP、2003、Vista、7和8上运行。
4、完全免费使用。但是,您不得从其分销中获利,也不得将其与另一种产品捆绑销售。
Dependency Walker使用方法
1、打开Dependency Walker,直接拖入目标exe文件或者dll文件(也可以点击菜单栏上的File,通过Open对话框来打开目标文件),运行界面如下:
圈选部分为TestDll.exe的依赖关系,它依赖MyDll.dll、MSVCP1400.DLL等,其各自又依赖其他DLL。
从中可以看出其依赖的深度较大,一般只需要查看最顶层的三次依赖即可。
2、单击MyDll.dll,运行界面如下:
3、界面右侧的Function下的函数签名不太清晰,可以右键函数名,选择Undecorate C++ Functions,将函数签名转换成更为易读的形式:
4、转换后的形式如下:
上部的圈选部分是MyDll.dll的引用对象(也即TestDll.exe)使用的导出函数,下部的圈选部分是MyDll.dll所有的导出函数。从图中可以看出,MyDll提供了4个函数而TestDll只使用了其中的int Minus(int, int)和int Mutiply(int, int)。
另外,注意下其中的颜色标识, 上部的引用函数,如果在动态库中存在,显示为绿色;如果不存在显示为红色。下部的导出函数,如果被引用,显示成深蓝色;如果未被引用,显示成灰色。
5、函数缺失
如果将MyDll中的函数int Minus(int, int)删除,重新生成MyDll.dll,然后再次查看TestDll.exe的依赖关系,显示如下:
此时,TestDll.exe引用的两个函数:int Minus(int, int)在MyDll.dll中已不存在,所有显示成红色;而int Multiply(int, int)依旧存在,显示成绿色。这时运行TestDll.exe,会报错显示如下:
常见问题
1、Dependency Walker似乎只显示了我的应用程序的一些依赖项。为什么不全部显示出来?
当您第一次在Dependency Walker中打开一个模块时,它只显示隐式、转发和延迟加载依赖关系。许多依赖项是动态加载的,直到您从Dependency Walker中分析应用程序时才会被检测到。如需详细资讯,请参阅相依性Walker处理的相依性类型和使用应用程式分析来侦测动态相依性。
2、为什么我在很多应用程序中看到MPR.DLL在SHLWAPI.DLL下以红色显示,因为它缺少一个名为WNetRestoreConnectionA的函数?我还收到一条“警告:由于延迟加载相关模块中缺少导出函数,至少有一个模块有未解析的导入”消息。
SHLWAPI.DLL的某些版本(如Windows XP上的版本)对MPR.DLL的函数WNetRestoreConnectionA有延迟加载依赖。只要调用DLL准备好处理这种情况,丢失延迟加载函数就不是问题。Dependency Walker标记所有潜在的问题,因为它无法检测应用程序是否打算处理该问题。在SHLWAPI.DLL的情况下,这不是一个问题,因为它不要求WNetRestoreConnectionA存在,并在运行时处理缺失的函数。可以忽略此警告。有关更多详细信息,请参见帮助中的“如何解释Dependency Walker中的警告和错误”部分。
3、为什么MSJAVA.DLL显示为黄色(缺少模块),而我得到一条“警告:至少有一个延迟加载依赖模块没有找到”的消息?
与Windows XP SP2和Windows 2003 SP1一起发布的MSHTML.DLL模块具有对MSJAVA.DLL的延迟加载依赖性。只要调用DLL准备好处理丢失的模块,丢失延迟加载依赖项就不是问题。Dependency Walker标记所有潜在的问题,因为它无法检测应用程序是否打算处理该问题。在这种特殊情况下,MSJAVA.DLL是一个可选模块,MSHTML.DLL准备处理它。可以忽略此警告。有关更多详细信息,请参见帮助中的“如何解释Dependency Walker中的警告和错误”部分。
更新日志
v2.2.6000版本
- 移至新的HTML帮助系统并更新了帮助文本。
- 添加了对MSDN 8.0外部帮助的支持,并更新了在线帮助URL。
- 处理DLL清单和app.exe.local文件的改进的并行支持。
- 更新了有关已知操作系统版本、内部版本号和Vista RC1内部版本标志的内部信息。
发表评论
0条评论软件排行榜
热门推荐
- dotCover 2024官方版 v2024.2.549.78M / 多国语言
- python最新版本2024 v3.12.3官方版25.2M / 简体中文
- 微软visual c++运行库合集包 v3.0.22.0317官方版85.82M / 简体中文
- dwin dgus(开发配置工具) v5.04官方版6.87M / 简体中文
- RegEx Tester(正则表达式调试工具) v3.2.0.0绿色版26K / 英文
- Report Builder v3.0官方版32.16M / 简体中文
- Convert.NET(代码翻译器) v8.4.6675.71官方版4.48M / 多国语言[中文]
- msys2(类Linux开发环境) v2016.10.25官方版100.11M / 简体中文
- node.js安装包 v18.12.127.76M / 简体中文
- APKSign(APK签名工具) v1.0官方版292K / 简体中文