首页
课程
问答
CTF
社区
招聘
看雪峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
看雪峰会
看雪商城
证书查询
社区
付费问答
发新帖
0
0
[旧帖]
[求助]DLL被不同进程加载后,它的IAT输入表是否是同一份
0.00雪花
发表于: 2012-3-22 14:46
1596
[旧帖]
[求助]DLL被不同进程加载后,它的IAT输入表是否是同一份
0.00雪花
wangfengkx
2012-3-22 14:46
1596
不同进程加载同一个DLL,
DLL的输入表是否每个进程都有一份,还是共享一份IAT
[课程]Linux pwn 探索篇!
收藏
・
0
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
最新回复
(
7
)
ronging
雪 币:
113
活跃值:
(100)
能力值:
( LV4,RANK:50 )
在线值:
发帖
18
回帖
451
粉丝
0
关注
私信
ronging
2
楼
你说的是进程的输入表吧。DLL的输入表引入的是其它的DLL。
2012-3-22 15:50
0
wangfengkx
雪 币:
3
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
9
回帖
22
粉丝
0
关注
私信
wangfengkx
3
楼
我说的是不同进程加载同一个DLL的时候,
这个DLL的输入表只有一份,还是多份
是DLL的输入表,不是进程的输入表
多个进程1.exe 2.exe 3.exe 加载同一个my.dll
windows把my.dll加载到内存后,my.dll的IAT输入表只有一份,
还是 不同EXE都有一份自己的my.dll的 IAT输入表的拷贝
2012-3-22 16:13
0
evilor
雪 币:
297
活跃值:
(235)
能力值:
( LV4,RANK:55 )
在线值:
发帖
34
回帖
660
粉丝
2
关注
私信
evilor
4
楼
dll呗加载到物理内存再映射到不同进程的地址空间
应该是一样的吧
2012-3-22 16:59
0
wangfengkx
雪 币:
3
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
9
回帖
22
粉丝
0
关注
私信
wangfengkx
5
楼
我刚在XP下测试,DLL的IAT在多个进程加载后,会产生多个拷贝,不是同一个
不知其它版本的WINDOWS是否一样。。。
具体分析,求指点
2012-3-22 17:38
0
hackerlzc
雪 币:
1689
活跃值:
(379)
能力值:
( LV15,RANK:440 )
在线值:
发帖
33
回帖
613
粉丝
16
关注
私信
hackerlzc
10
6
楼
LZ 不知道是否了解 COPY ON WRITE 机制?这些东西在windows核心编程里都有。。。。。。。
2012-3-22 19:44
0
kenikehan
雪 币:
83
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
2
回帖
18
粉丝
0
关注
私信
kenikehan
7
楼
不是同一份吧。
不同进程的主dll所依赖的若干子dll在内存中只有一份物理实体,一份子dll物理实体通过映射到不同进程地址空间来进行加载,其base就不同了。
如进程A加载主DLL: kenel32.dll . 进程B加载主DLL:kenel32.dll
而kenel32.dll依赖并加载nt.dll kenelbase.dll等
A B两进程的nt.dll kenelbase.dll kenel32.dll在内存中只有一份物理实体,但nt.dll kenelbase.dll 映射进A B 进程时base就不同了,其导出给不同进程中kenel32.dll的函数地址就不同了,那么A B进程中各自的kenel32.dll中的IAT就不同了吧
纯粹个人理解
2012-3-22 19:56
0
ronging
雪 币:
113
活跃值:
(100)
能力值:
( LV4,RANK:50 )
在线值:
发帖
18
回帖
451
粉丝
0
关注
私信
ronging
8
楼
PE文件通常使用内存映射的方式在使用,copy on write是个基本的原则。对于DLL来说,一份DLL可能被多个进程使用,绝大多数情况下该DLL都是共享的,除非有需要修改的地方,比如说某个进程加载DLL的时候发生了地址冲突,那么进程把DLL加载到了不同于它的预先定义的首地址的地方。DLL的IAT部分也是如此,可以共享,如果被修改了就成为了独立的一份。
2012-3-25 10:49
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
wangfengkx
9
发帖
22
回帖
10
RANK
关注
私信
他的文章
[求助]操作系统的 内存\显存 碎片化问题
1148
文件过滤驱动 捕获内存映射的preRead
3353
向DLL注入一个DLL
10869
[求助]向DLL文件注入代码
1604
[求助]DLL 加载顺序
986
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
返回
顶部