• 启用PAE后虚拟地址到物理地址的转换


     
    34

    [原创]启用PAE后虚拟地址到物理地址的转换

    安于此生 2013-11-3 20:54 16073

    由常规的两级页表转换得不到物理地址的引发的思考?
    可能你会发现一个郁闷的事情--按照通常的两级页表的转化得不到正确物理地址,到底是哪个环节出了问题咧,其实一切都是PAE惹的祸!

    PAE是神马?
    PAE:全称Phyiscal Address Extension,物理地址扩展.
    如何判断PAE是否开启了PAE.
    一般两个特点:
    我的电脑=》属性=》常规面板中有物理地址扩展的字样。



    CR4寄存器的第5位为1说明开启了PAE

    说明当前系统启用了PAE.

    新的转化规则
    转换示意图


    规则:
    每个项的长度为8
    VA为
    2位:(30—31)页目录指针表的索引
    9位:(21—29)页目录表索引
    9位:(12—20)页表索引
    12位:(0—11)页内偏移
    例如:开启PAE的情况下将计算器进程的入口点0x01012475转化为物理地址


                             页目录指针表的索引    页目录表索引  页表索引       页内偏移
    0x01012475 《=》         00                     000001000   000010010   010001110101
                             0x0                       0x8         0x12           0x475

    1.!process 0 0获取计算器进程的信息

    页目录指针表物理地址:0x17f02c0
    2.定位页目录指针表并获取页目录表物理页地址

    页目录指针表项的下标为0,所以就是0x06d13801,因此0x06d13000是页目录表物理页面的首地址。
    3.定位页表项

    0x4250867就是要找的页目录表项,因此页表物理内存页面首地址为0x4250000.
    4.定位物理页面

    0x56b7000就是物理页面首地址,0x457是偏移,所以0x056b7475就是我们要转化的物理地址了。

    正好就是虚拟地址对应的内容。

    修改物理地址处首字节对比虚拟地址处显示内容


    虚拟地址处内容也随之改变了。


    快讯:[快讯]十年后再版!《加密与解密(第4版)》京东开始预售!

    上传的附件:
    • jpg 改 rar 
     
  • 相关阅读:
    C# 小算法1
    函数 y=x^x的分析
    随机数
    对拍
    Cube Stack
    Permutation
    一笔画问题
    康托展开&&康托逆展开
    待完成
    小错误 17/8/10
  • 原文地址:https://www.cnblogs.com/kuangke/p/9397642.html
Copyright © 2020-2023  润新知