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

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

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

我的问题是:

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

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

3.(想到再加)

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (8)
雪    币: 451
活跃值: (78)
能力值: ( LV12,RANK:470 )
在线值:
发帖
回帖
粉丝
zhuwg 11 2008-3-17 20:21
2
0
难道改了WP后所有段都可以随意"写"了吗
正确

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

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

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

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

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

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

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

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

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

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