(实验)修改PDE、PTE属性读取高2G地址

10-10-12 分页实验

在代码中直接读取高2G的内存地址会报错,当然我们可以通过调用门、中断门等提权读取,不过今天我们直接修改页的属性,在3环环境中也可以直接读取

在这里插入图片描述

拆分地址0x8003F00C : PDI(0x200) PTI(0x03F) 物理页偏移 (0x00C)

在这里插入图片描述

当代码执行到getchar()的时候,可以WinDbg中修改该对应页的属性值 : U/S 位改为 1 G位改为 0 (防止TLB缓存,不改这个也可以成功,但是有概率会失败的哦~~~)
return 0 的地方记得下断点,不然打印的值你看不到了

在这里插入图片描述

winDbg执行g,回到代码按F5向下执行,发现可以获取值

在这里插入图片描述

2-9-9-12 分页实验(PAE)

需要修改C盘下boot.ini文件
execute是10-10-12分页模式,noexecute是2-9-9-12分页模式,修改后需要重新启动电脑才会生效

在这里插入图片描述

如果你使用的是Oracle VM VirtualBox ,还需要勾上该选项

在这里插入图片描述

2-9-9-12 模式拆分地址
拆分地址0x8003F00C : PDPTI(0x2) PDI(0x0) PTI(0x03F) 物理页偏移 (0x00C)

PDPTE结构

在这里插入图片描述

PDE结构

在这里插入图片描述

PTE结构

在这里插入图片描述

==因为PAE分页模式的每个表项都是8个字节,使用winDbg修改的时候需要 x 8 ==

在这里插入图片描述
winDbg执行g,回到代码按F5向下执行,发现可以获取值

在这里插入图片描述

动手做实验才能够体会,光看是没有用的哦~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值