首页
社区
课程
招聘
[求助]书上的一个小问题
发表于: 2014-5-29 15:27 2848

[求助]书上的一个小问题

2014-5-29 15:27
2848
昨天被人提起书上的一个问题,我以为懂了,但是却回答不上,现在请教大家:

0da安全第二版  利用未启用safeseh模块绕过SAFESEH

问题在这里:
书中开始时介绍的SafeSeh 机制说道:
(1)检查异常处理链是否位于当前程序的栈中,如果不在栈中,程序终止异常处理函数的调用
(2)检查hander 是否指向栈中,指向的话,终止

通过后再  调用 RtlIsValidHander() 对异常处理函数的有效性进行验证

那么  后面的实验   利用未启用safeseh模块绕过SAFESEH   都是覆盖了  异常处理链 为\x90\x90\x90\x90了的  虽然它是未启用 SafeSeh 的模块 ,但是已经不满足  (1)了  也就不能执行异常处理函数了,那么为什么还能执行?

利用未启用safeseh模块绕过SAFESEH  是这样介绍的:
发生在未启用 SafeSEH模块中的异常处理函数可以被执行

但是  程序是启用了 SafeSEH 只是  handler 被 未启用 SafeSEH模块的 pop pop ret  然后到 堆栈中运行   

我猜测是  作者在介绍  SafeSeh 机制 时没有说清

看来很白痴的问题,只是不知道怎么回答别人 故此问问大家  

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

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 59
活跃值: (142)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
我来坐第一个················求人回答啊············
2014-5-29 19:27
0
雪    币: 59
活跃值: (142)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
求大神回答啊······························
2014-6-2 17:13
0
游客
登录 | 注册 方可回帖
返回
//