另外对于开启PAE下的分页机制与普通的分页机制除了在计算上的差别,还有一点很重要的差别就是利用页表项的第63位即最高位作为代码执行权的标准。这个位置1,表示此页不可执行。没有置位,
表示此页可以执行。即页的执行权要依据条件了。
XP SP2中的DEP技术就是利用这一点来完成的,这在MSDN中有所体现,对于PAGE_READONLY和
PAGE_READWRITE 在MSDN中都有这么一句话“If Data Execution Prevention is enabled, attempting to execute code in the committed region results in an access violation.“
但是PAGE_EXECUTE却没有这一句,原文是这样说的”An attempt to read from or write to the committed region results in an access violation. “我认为还是需要借助于PAE来实现的,于是我测验了一下,环境是XP sp3 没有开启PAE
代码如下: