首页
社区
课程
招聘
[求助]user32.dll地址空间的属性到底是怎么样的?
发表于: 2009-2-17 16:36 4240

[求助]user32.dll地址空间的属性到底是怎么样的?

2009-2-17 16:36
4240
我这样试验,不知道是不是对的,在那边给人嘲笑了。

1,我用一个进程,我把一些数据user32.dll地址空间的几个字节里面,本身进程退出后,修改过的就没了,原因是朋友提醒的copy on write原因。

2。然后我用windbg查看了下修改的那几个字节的地址的PTE标志位,却发现bit9并没有设置成1。

这个标志位是根据jiurl大牛内存共享那一文章里面提到的

哪位帮我理直下,谢了

可以肯定是copy on write了,那windows核心编程那例子效率还真不太好,

既然是copy on write的话,那为啥那个PTE的bit9不是1????

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
2
绕过Copy-On-Write机制安装全局Hook
http://www.xfocus.net/articles/200510/830.html
2009-2-17 16:46
0
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢,看到了,可是为什么我用windbg查看0X7XXXXXXX那块空间的属性,发现里面bit9还是没被置位??
2009-2-17 16:55
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
4
2楼的文章太老了,RING0绕过copyonwrite只要将cr0第16位置0就可以了
2009-2-17 17:05
0
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼上的是MJ吧,能帮我解释是原因吗????/

我刚刚已经测试出点东西了,我把一个区段的属性设置为RW,注意:没S的

这个时候我用windbg发现这个区段里面的bit9就被设置为1,就是说这个时候才有写时复制的属性

但为什么系统的dll的空间内存属性这一位并没有 设置成1呢??求解!

如果说每个进程都有自己独有的一份,这时候就算合理(但并不是因为写时复制作用,而是真真实实的每个人都加载一份)
2009-2-17 17:15
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
6
写内存时跟踪一下kitrap0e 就知道啦
2009-2-17 17:16
0
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
-_-,,,,,我说我没写过hello word驱动,你会不会爆汗

饿死了,先吃饭
2009-2-17 17:25
0
游客
登录 | 注册 方可回帖
返回
//