首页
社区
课程
招聘
[求助]如何HOOK加载DLL时静态加载的DLL函数?
发表于: 2010-8-13 12:33 6452

[求助]如何HOOK加载DLL时静态加载的DLL函数?

2010-8-13 12:33
6452
我想把程序使用的DLL都转到程序自己目录下,所以把LoadLibrary4个函数全HOOK了,
这样,如果是我自己加载的,以及其它程序主动加载的DLL,都能顺利转到自己目录下

但是,如果是其它DLL静态加载的DLL,就无法HOOK到,可能不是在进程内调用LoadLibrary实现的,就会加载出错

比如:程序加载1.dll,HOOK到本地了,1.dll主动加载2.dll,也能HOOK到本地,但2.dll链接到的3.DLL无法HOOK到,会加载到其它地方的3.dll

系统在处理依赖的DLL的时候,是用什么函数加载模块的?

要解决这个问题其实有个办法,就是加载2.dll时,使用LOAD_WITH_ALTERED_SEARCH_PATH参数,能实现加载本地的3.dll

我主要是问,依赖的DLL使用的什么函数加载的,(程序是普通用户模式的)

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
贴代码出来吧
2010-8-13 13:11
0
雪    币: 174
活跃值: (620)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
主要是原理和机制问题,与代码无关吧,就是HOOK LoadLibrary嘛
2010-8-13 13:27
0
雪    币: 998
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
ntdll!LdrpLoadImportModule
2010-8-13 14:21
0
雪    币: 75
活跃值: (623)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
楼上正解,推荐看看windows内核情景分析第5章的 dll加载和链接 小节
2010-8-13 15:04
0
雪    币: 335
活跃值: (140)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
上面说得不错,网上有很多APIHOOK的代码, 你搜一搜,先运行你的程序,勾住 LoadLibraryA/w/Ex...所有函数。剩下的不用教了吧。
2010-8-13 17:57
0
雪    币: 174
活跃值: (620)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
谢谢楼上各位
2010-8-13 18:05
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
你要先搞清楚函数调用的顺序,在进行HOOK
2010-8-15 00:15
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
ntdll.LdrLoadAlternateResourceModule
2010-8-15 20:12
0
游客
登录 | 注册 方可回帖
返回
//