SafeSEH基本概念+ 从堆区绕过SafeSEH学习

本文介绍了SafeSEH的基本原理,它在VS2003及后续版本默认启用,通过安全异常处理表来防止非法异常处理函数执行。在VS2008的release版本中,可以使用dumpbin /loadconfig查看此机制。SafeSEH主要检查异常处理链是否在栈中,以及函数指针是否指向栈。尽管存在检查,但若shellcode位于堆区,仍能被调用执行,因此绕过SafeSEH的关键在于将shellcode放入堆区。
摘要由CSDN通过智能技术生成

SafeSEH 原理:在程序调用异常处理函数前,对要调用的的异常处理函数进行一系列的有效性检测

VS2003后续版本  默认启用的

编译器将所有的额SEH中所有的异常处理函数的值提取出来编入一张安全SEH 表

将这张表放到程序的映像中

当程序调用异常处理的时候会将函数地址与安全SEH表进行匹配 检查调用的异常处理函数是否位于安全SEH表

VS2008 命令行:

好像只有release版本能行

dumpbin /loadconfig 程序



SfeSEH机制 保护:

检查的重点是

1在加载模块中 ,是否存在  Load Configuration Directory  如果没有就可以执行

2是否在加载模块地址范围之外,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值