Depends.exe 是一款功能强大的VC程序反编译工具,用户通过该程序可以查看PE模板中的相关参数,可帮助开发者导入模板或导入导出函数等操作,通常我们会使用该工具分析DLL连接的正确性,并且支持查看DLL以及DLL中的函数参数,需要的朋友不妨试试看!
所需环境
近期很多兄弟们问怎么样打包程序,如何获取所需dll的信息,这就需要使用VC所带的Depends软件,该软件在VC6安装目录下的tools文件夹里面D:/Microsoft Visual Studio/Common/Tools,直接
双击执行,然后打开exe文件即可,它主要有下面几个注意事项:
1)所编的软件所需的Dll文件,可以得到相应的Dll路径,版本,属性等。
2)窗口分四部分:
左上角是Dll信息窗口,显示你程序所需的Dll模块,
右边第一个窗口是所选的Dll模块所使用的函数,
右边第二个窗口是所选Dll模块的所有的导出函数,
下面窗口是所有需要的Dll模块的属性
3)右边两个窗口出现四个标签:序号,提示,函数,入口点
如果利用导出是函数,那么出现函数名,如果导出的是序号,那么函数项就是N/A(无法显示)
出现红色提示表示不正常,一般为没有该导出函数
4)该工具得到的是你软件中隐式链接的Dll库,也就是用lib关联的Dll模块,
无法显示显式链接的Dll模块,也就是用LoadLibrary函数导入的Dll函数。(切记切记!)
5)无法提供Borland C++ Builder所提供的Dll文件,无法提供vxd软件的调用。
软件功能
该工具得到的是你软件中隐式链接的Dll库,也就是用lib关联的Dll模块,无法显示显式链接的Dll模块,也就是用LoadLibrary函数导入的Dll函数
查看 PE 模块的导入模块
查看 PE 模块的导入和导出函数
动态剖析 PE 模块的模块依赖性
解析 C++ 函数名称
使用方法
1. 双击depends.exe ,运行该程序。
2. 将可执行文件拖到该窗口中。稍等片刻,出现depends 分析结果。
3. 左侧的树控件,显示了该exe 包含哪些module(dll),下面的列表是可能用到的dll 总表。因为子dll又包含孙dll, 孙dll又包含... 总之dll 不超过这么多了。不过这个列表用途不大。
4.点击树形控件的子dll,在又测得两个窗口中有相应的信息。其中下面的窗口显示的是该dll 的导出信息。如ordinal,hint,funtion-name,entry-point 等,上面窗口为导入表列表最后一下entry Point 往往写着not found. 是因为hint 值与下面导出表的hint,function 不一致。不过这没有关系。因为导入表hint 是用的链接时开发环境的dll, 而现在导出表是你系统中正使用的dll, 不一致也正常,反正运行时是根据dll函数名称进行定位的。
∨ 展开