首页
社区
课程
招聘
关于detours的问题
发表于: 2011-1-1 23:54 3551

关于detours的问题

2011-1-1 23:54
3551
刚刚开始看detours有一个问题想请交达人,通过detours可以拦截一个文件中的函数,但是如果有这个一个情况该如何处理? 我有一个exe文件它load了一个dll,这个dll里面又调用了另外一个dll而我想拦截的函数在最后一个dll里面,请问这个该如何去处理?望达人指点

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我来学的  但是是我需要钱啊!
2011-1-2 00:34
0
雪    币: 168
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
自己顶一下 不要让他沉了
2011-1-2 03:28
0
雪    币: 168
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
没有人回答啊
2011-1-4 09:16
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
5
不太明白你想问什么,也没有用过detours。

简单说一下,在PE文件中有一个导入表,里面记录了文件运行所需的函数,在文件加载的时候,会有加载器负责将导入表中对应函数所需的dll加载进内存,并以实际地址替换文件中的地址。而通过LoadLibrary和GetProcAddress获得地址的函数在导入表中没有记录。
在一个dll中调用另外一个dll文件,一般为两种情况,一种是在导入表中有该函数,那么直接调用就行了,否则就需要用LoadLibrary和GetProcAddress来获得函数地址,通过函数地址来调用。
思想很简单,就是说函数实际上对应一段代码,而这段代码要运行必须加载进内存,而要调用函数,就必须知道函数代码的位置。
说一般情况,是因为只要能理解函数的调用,可以通过各种非常规的方法调用一个函数。
2011-1-4 10:00
0
游客
登录 | 注册 方可回帖
返回
//