34

注册:2013-10

帖子:2013

精华: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 
 

启用PAE后虚拟地址到物理地址的转换的更多相关文章

  1. X64下的虚拟地址到物理地址的转换

    https://bbs.pediy.com/thread-203391.htm   早就知道传上来排版会全乱掉,把pdf直接传上来吧 x64结构体系寻址.pdf 发现安大的关于x86启用PAE下的虚拟 ...

  2. Page (computer memory) Memory segmentation Page table 虚拟地址到物理地址的转换

    A page, memory page, or virtual page is a fixed-length contiguous block of virtual memory, described ...

  3. Windows虚拟地址转物理地址(原理+源码实现,附简单小工具)

                                                                                                        ...

  4. x86虚拟地址到物理地址的映射学习

    这里只谈分页管理的机制,也是目前最重要的内存管理机制. 最初的设计想法: 结构图如下: 页的尺寸是4KB,虚拟地址的前20位用于指定一个物理页,后12位用于访问页内偏移. 页表项的结构: 各个位的含义 ...

  5. Linux虚拟地址和物理地址的映射

    ➤背景 一般情况下,Linux系统中,进程的4GB内存空间被划分成为两个部分------用户空间和内核空间,大小分别为0~3G,3~4G.用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核 ...

  6. Linux驱动虚拟地址和物理地址的映射

    一般情况下,Linux系统中,进程的4GB内存空间被划分成为两个部分------用户空间和内核空间,大小分别为0~3G,3~4G. 用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核空间. ...

  7. cpu为什么使用虚拟地址到物理地址的空间映射,解决了什么样的问题?

    当处理器读或写入内存位置时,它会使用虚拟地址.作为读或写操作的一部分,处理器将虚拟地址转换为物理地址.通过虚拟地址访问内存有以下优势: 程序可以使用一系列相邻的虚拟地址来访问物理内存中不相邻的大内存缓 ...

  8. resultMap 表示转换字段后 resultType 表示没·有转换字段

    resultMap 表示转换字段后 resultType 表示没·有转换字段

  9. [置顶] Linux 虚拟地址与物理地址的映射关系分析【转】

    转自:http://blog.csdn.net/ordeder/article/details/41630945 版权声明:本文为博主(http://blog.csdn.net/ordeder)原创文 ...

随机推荐

  1. 2014年第五届蓝桥杯C/C++B组省赛题目解析

    一.啤酒和饮料 啤酒每罐2.3元,饮料每罐1.9元.小明买了若干啤酒和饮料,一共花了82.3元. 我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒. 注意:答案是一个整数.请通过浏览器提交答 ...

  2. 第三百七十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现我的搜索以及热门搜索

    第三百七十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现我的搜索以及热门 我的搜素简单实现原理我们可以用js来实现,首先用js获取到 ...

  3. 第三百五十七节,Python分布式爬虫打造搜索引擎Scrapy精讲—利用开源的scrapy-redis编写分布式爬虫代码

    第三百五十七节,Python分布式爬虫打造搜索引擎Scrapy精讲—利用开源的scrapy-redis编写分布式爬虫代码 scrapy-redis是一个可以scrapy结合redis搭建分布式爬虫的开 ...

  4. nodejs基础 -- 多进程

    Node.js 多进程 我们都知道 Node.js 是以单线程的模式运行的,但它使用的是事件驱动来处理并发,这样有助于我们在多核 cpu 的系统上创建多个子进程,从而提高性能. 每个子进程总是带有三个 ...

  5. tracert

    TRACERT命令 编辑 Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP数据包访问目标所采取的路径.Tracert 命令使用用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确 ...

  6. 每天一个linux命令:mkdir命令

    linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1.命令格式: mkdir [选项] 目录... 2.命令 ...

  7. shell特殊符号cut命令 sort_wc_uniq命令 tee_tr_split命令 shell特殊符号

    shell特殊符号cut命令 特殊符号 *  通配符,任意个任意字符 ? 任意一个字符 # 注释字符 \  脱义字符 c=\$a\$b echo  $c | 管道符 cat  1.txt |less ...

  8. [Learn AF3]第六章 App Framework 3.0中的内置矢量图标

    AF3的内置矢量图标 介绍:要使用af3中的图标,必须首先引入icon.css,由于文件中已经内置了字体文件数据,因此不需要引入字体文件支持. <link rel="styleshee ...

  9. MyEclipse如何恢复删掉的文件

    今天一不小心删了项目里的两个包,心里那个痛啊,一想MyEclipse这么强大,应该会有恢复文件的功能吧,要不就太坑了啊. 果不其然让我找到了方法: 如图:右击项目选择 然后在弹出的页面勾选需要恢复的文 ...

  10. [转]jmeter 自定义测试脚本

    http://blog.csdn.net/kash_chen007/article/details/37690411 http://wangym.iteye.com/blog/731729 1.创建一 ...