首页
社区
课程
招聘
[求助]禁用 safeseh
发表于: 2016-7-18 11:50 6234

[求助]禁用 safeseh

2016-7-18 11:50
6234
问题:
1、在win7环境下,使用vc6++(我使用的是 破解版vc6++),可否禁用 safeseh?如果可以,如何操作?
2、在win7环境下,可否绕过 safeseh?

注:
最近调试《0day 安全 软件漏洞分析技术(第2版)》,到了第6章,内存技术里有关利用异常植入shellcode,所有的调试都是按照预期的,但到了执行异常处理函数是发现执行的是 rtldispatchexception()。查了一下资料,应该是涉及到了 safeseh.......

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

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 101
活跃值: (41)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
用cl.exe来编译就行了,上网查下,加上/SafeSEH:no编译选项
现在的SafeSEH里面包含了SEHOP,可以绕过的,参考灰帽黑客里面绕过windows内存保护那一章
2016-7-18 12:53
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
3
VC6本身就不支持SafeSEH编译选项,所以用VC6编译出来的程序都是没有开启SafeSEH的
在VS2003之后才支持该选项,如果要关闭的话,按2楼说的加上/SafeSEH:no编译选项就可以了
这主要是跟编译器有关,从XP SP2开始都支持SafeSEH,所以跟你是不是Win7没有关系

至于SafeSEH和SEHOP具体怎么绕过,也比较复杂,有一些文章可以参考,看你能不能实现了
2016-7-18 13:15
0
雪    币: 74
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
/SafeSEH:no,这个在 vc6++ 破解版里面哪里加上去?
2016-7-18 15:21
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
5
你都不看的吗?跟你说了vc6根本不支持safeseh,你需要禁用一个本来就不支持的功能吗?
2016-7-18 15:41
0
雪    币: 74
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
........
如果vc6++没有使用 safeseh,那发生异常时为何会转去调用 rtldispatchexception()?
2016-7-18 15:55
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
7
呵呵,因为Windows所有的应用层异常都是经由ntdll!RtlDispatchException处理的啊……
这跟你用不用SafeSEH根本没关系好吗?
2016-7-18 17:42
0
雪    币: 74
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
楼上,
你的意思是即使使用的是win2000或winxp,在出现异常时也是调用 rtldispatchexception()来处理吗?
2016-7-18 17:50
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
9
明确告诉你,从Win2000到Win10,都是这个函数,SEH的大框架其实一直没有变过,后来只不过增加了VEH,以及SafeSEH、SEHOP、CFG这些安全机制而已~
如果你想自己研究的话,可以反汇编一下ntdll!KiUserExceptionDispatcher这个函数,这是异常到达用户层的第一站

我的话你可以不信,想反驳我就自己研究拿出证据来。我看不惯的情况有两种:
一是那种视力不太好或者语文不及格,看不清、看不懂别人在说什么的人
二是那种只管问东问西自己没有一点探索和实践精神的人
2016-7-18 18:33
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
学习了
2017-11-1 23:57
0
游客
登录 | 注册 方可回帖
返回
//