关于DEP、ASLR的兼容性问题分析


DEP带来的兼容性问题


一、硬件方面

不具有DEP技术支持的CPU将无法从硬件层面对内存页进行保护从而应用DEP,在此情况下,软件支持的DEP并不能直接阻止在数据页上执行代码。

二、内核方面

32位系统只能通过引导至PAE模式来支持DEP,并不能通过PTE的高双字的最高bit即bit63来实现(PTE的第63位控制着页的可执行属性)。

即这个位置为0,表示此页不可执行;没有置为0,表示此页可以执行。

而32位系统的页目录和页表项只有32个bit,所以不可能提供DEP的这个保护位,因此DEP只有在64bit的PTE上才能实现。

而只有cr4的bit5即PAE启用的时候,PTE才为64bit。

三、功能方面

用于将内存位置标记为不可执行的DEP,会导致32位软件出现兼容性问题。

这是因为DEP阻止了某些程序的运行,可能会导致这些应用程序被挂起而产生无法运行的错误。


ASLR带来的兼容性问题


一、内核方面

在Windows的32位系统与64位系统中,其地址随机化的位数与方式均是不同的。

在32位系统中,Windows只尝试随机化32位地址中的8位,这些是位从16到23,只影响地址的页目录条目和页表条目部分。

原因是操作

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值