PDE_PTE(下)
无处不在的缺页异常
1:)在VC6中定义一个字符串常量,通过另一个线性地址修改这个常量的值
与前面做的实验都很相似,先放检验代码和结果
老样子用!process 0 0查看进程的cr4
用101012分页分解0x42301c为
分解完后在去查看对应的物理页
但在查看pte的时候可以发现
其属性是025,根据属性w/r属性没有置1,所以修改为26b91027
再接着下一步打印出来后,发现已经修改完了
2:)修改0x8003f00c这个地址的PDE PTE属性 使之可以在3环访问
先贴代码和结果
分解0x8003f00c为
然后查看对应的pde和pte两个表的属性
这里我先前实验的时候有失误(原本是163),发现仅仅把u/s位改为1还是不能访问的,这里g位为1,目前还不知道意思,所以我把他改为了867,跟我在3环的属性一模一样的,才成功的
改成867后,在查看一下8003f00c是什么
运行后
思考题:)一个线性地址如果可以访问,一定要填上正确的PDE和PTE,但PDE与PTE是物理地址,如果我们想填充,那又必须要通过线性地址才能去访问,谁为访问PDE与PTE的线性地址填充争取的PDE与PTE呢?
3:)创建两个进程,以页为代码拆分0-4G线性地址。
PDT:0xc0300000