DW翻译系列:Dependency Walker处理的模块类型

文章网址:http://www.dependencywalker.com/help/html/dependency_types.htm


有以下几种模块依赖类型:

1. 隐式依赖(也叫加载时依赖,有时也不当地称为静态依赖):模块A在编译、链接期间隐式地与模块B中的a.lib链接,那么模块A的源码就调用了B中的一个或多个函数。模块B就是模块A的加载时依赖。不管A在运行期间有没有调用B中的函数,B都会被加载进内存。模块B将会被列在模块A的导入表中。


2. 延迟加载依赖:模块A在编译、链接期间延迟与模块B中的a.lib链接,那么模块A的源码就调用了B中的一个或多个函数。模块B就是一个动态依赖,只有当A在运行时调用了B时,B才被加载。模块B列在了A的延迟加载导入表中。


3. 前向依赖:模块A在编译、链接期间与模块B中的a.lib链接,那么模块A的源码就调用了B中的一个或多个函数。而其中的函数实际上又调用了模块C中的函数。那么B,C都是A的依赖,但是只有模块B被列进了A的导入表中。


4. 显式依赖(也称为动态依赖或运行时依赖):模块A没有在编译、链接期间隐式地与模块B链接。A在运行时通过调用LoadLibrary类型的函数调用了B,则B就成了A的运行时依赖,但不被列在A的任何人表中。这种类型的依赖在OCXs,COM对象和Visual Basic程序常见。


5. 系统钩子依赖(也叫注入依赖):当另一个程序在进程中抛出了一个特定事件(像鼠标事件)时,这种依赖就产生了。当进程去处理那个事件时,操作系统就往进程注入了这个模块去处理事件。被注入的模块实际上不是任何其它模块的依赖,但它确实驻留在进程的地址空间中。


DW完全支持以上几种技术加载的模块。在DW中打开一个模块,就能检测出1、2、3三种类型的模块。4、5两种类型的依赖需要在运行时被解析,这也是DW2.0的新特性。关于解析,参考使用应用程序解析检测动态依赖一节。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值