首页
社区
课程
招聘
[讨论]CR0,CR3寄存器
发表于: 2011-11-15 17:21 11785

[讨论]CR0,CR3寄存器

2011-11-15 17:21
11785
驱动在hook系统函数的时候通常要将只读属性暂时的屏蔽掉,主要有两种方法
1.修改CR0寄存器的WP位,使只读属性失效(这是网上用的最多的方法)
2.只读的虚拟地址,通过CR3寄存器中的页目录物理地址找到页目录项继而找到页表项,然后修改页表项中的W位来进行修改

网上说第一种方法不安全,应该是说他使所有只读属性都失效

不知道我这样理解是不是对的?

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 405
活跃值: (2230)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
还有第3种方法,在页表里新找一项,将其对应的物理地址改为,你要修改那页的物理地址,页属性为可写。然后操作那页即可。X86体系的缺点是可以保护虚拟地址,但不能保护物理地址。
2011-11-16 09:24
0
雪    币: 88
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
一般来说在 使用方法1的时候再修改完自己需要的东西后,要立即将CR0改回来。
2011-11-16 10:37
0
雪    币: 75
活跃值: (688)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
是这样吧..用了马上就改回来.随便用啦..
2011-11-16 11:20
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
在arm环境下,没有这个CR0寄存器,怎么办?
ARM下是否也需要修改只读属性这一套东西?
2012-2-10 09:55
0
游客
登录 | 注册 方可回帖
返回
//