首页
社区
课程
招聘
[讨论]"SSDT Hook的妙用-对抗ring0 inline hook"之疑问
发表于: 2008-3-17 19:35 9161

[讨论]"SSDT Hook的妙用-对抗ring0 inline hook"之疑问

2008-3-17 19:35
9161
在"堕落天才"的"SSDT Hook的妙用-对抗ring0 inline hook"一文提到的,修改原来NtOpenProcess的地址指针指向自己的函数然后再转回去,其中提到要先去内存保护,即要将CR0的位16(WP)置0。

我的问题是:

1.每个描述符都有自己的"读/写"或"是/否代码段"属性,那么描述SSDT段的描述符属性如何,难道改了WP后所有段都可以随意"写"了吗?

2.在用Windbg调试内核时如何查看任意一个段的描述符?

3.(想到再加)

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 451
活跃值: (78)
能力值: ( LV12,RANK:470 )
在线值:
发帖
回帖
粉丝
2
难道改了WP后所有段都可以随意"写"了吗
正确

在用Windbg调试内核时如何查看任意一个段的描述符?
那个是PAE PDE的部分 资料自己找吧
2008-3-17 20:21
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
3
LS的猪哇牛已经解释得很清楚了~~~~

PAE PDE是 "操作系统" 的基本知识,网上资料很多~

也可用 MDL
2008-3-17 21:56
0
雪    币: 213
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
感谢两位哥哥.
我觉得太不可思仪了,改变WP就改变了整个世界,感觉描述符的属性低4位成了摆设.
如果是386的CR0的WP根本就是保留,那该怎么去内存保护呢?
2008-3-17 23:38
0
雪    币: 213
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
所有吗?包括0段0偏移吗?(有点牛角尖),乱"写"当然系统会崩溃,只是写入是可以实现的吧.
2008-3-17 23:45
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
6
缺页应该会中断吧,写存在的、被保护的页面时WP可以无视
2008-3-18 00:06
0
雪    币: 213
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
给你弄糊涂了,按你的意思SSDT没被保护起来?
2008-3-18 00:10
0
雪    币: 451
活跃值: (78)
能力值: ( LV12,RANK:470 )
在线值:
发帖
回帖
粉丝
8
当你改了WP以后 系统的写保护就关闭了
SSDT默认所在的内存标记为不可写入 关闭WP就相当于取消系统的写保护功能
当然是全内存生效

如果你直接把SSDT所在的PAE改改 那么就是这里生效 其他地方还是保护

汗  0段0偏移是个无效内存 你可以写 不过写了直接BSOD
WP是写保护的意思,就是说这个内存只读 明白?

缺页应该会中断吧,写存在的、被保护的页面时WP可以无视

forgot的意思是说 写无效内存 就是缺页 fault page 肯定会bsod
只要被写页面存在在内存 就可以写了

简单点说 关了WP以后你可以写任何内存 当然必须是有效的(至少关WP之前可以读取)

如果是386的CR0的WP根本就是保留,那该怎么去内存保护呢

也许386下面没有这个保护或者在其他地方?
偶不知道 大牛指点把
2008-3-18 07:58
0
雪    币: 213
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
结贴,谢谢各位
2008-3-18 15:12
0
游客
登录 | 注册 方可回帖
返回
//