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 

原文地址:https://www.cnblogs.com/pppyyyzzz/p/13842050.html