启用PAE后虚拟地址到物理地址的转换
-
[原创]启用PAE后虚拟地址到物理地址的转换
- 安于此生 2013-11-3 20:54 16073
帖子:2013
精华:34
-->
可能你会发现一个郁闷的事情--按照通常的两级页表的转化得不到正确物理地址,到底是哪个环节出了问题咧,其实一切都是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后虚拟地址到物理地址的转换的更多相关文章
- X64下的虚拟地址到物理地址的转换
https://bbs.pediy.com/thread-203391.htm 早就知道传上来排版会全乱掉,把pdf直接传上来吧 x64结构体系寻址.pdf 发现安大的关于x86启用PAE下的虚拟 ...
- Page (computer memory) Memory segmentation Page table 虚拟地址到物理地址的转换
A page, memory page, or virtual page is a fixed-length contiguous block of virtual memory, described ...
- Windows虚拟地址转物理地址(原理+源码实现,附简单小工具)
...
- x86虚拟地址到物理地址的映射学习
这里只谈分页管理的机制,也是目前最重要的内存管理机制. 最初的设计想法: 结构图如下: 页的尺寸是4KB,虚拟地址的前20位用于指定一个物理页,后12位用于访问页内偏移. 页表项的结构: 各个位的含义 ...
- Linux虚拟地址和物理地址的映射
➤背景 一般情况下,Linux系统中,进程的4GB内存空间被划分成为两个部分------用户空间和内核空间,大小分别为0~3G,3~4G.用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核 ...
- Linux驱动虚拟地址和物理地址的映射
一般情况下,Linux系统中,进程的4GB内存空间被划分成为两个部分------用户空间和内核空间,大小分别为0~3G,3~4G. 用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核空间. ...
- cpu为什么使用虚拟地址到物理地址的空间映射,解决了什么样的问题?
当处理器读或写入内存位置时,它会使用虚拟地址.作为读或写操作的一部分,处理器将虚拟地址转换为物理地址.通过虚拟地址访问内存有以下优势: 程序可以使用一系列相邻的虚拟地址来访问物理内存中不相邻的大内存缓 ...
- resultMap 表示转换字段后 resultType 表示没·有转换字段
resultMap 表示转换字段后 resultType 表示没·有转换字段
- [置顶] Linux 虚拟地址与物理地址的映射关系分析【转】
转自:http://blog.csdn.net/ordeder/article/details/41630945 版权声明:本文为博主(http://blog.csdn.net/ordeder)原创文 ...
随机推荐
- 使用tomcat搭建centos的yum源
最近在折腾大数据,需要搭建一个yum源.一般的做法是在CentOS中安装httpd,然后将rpm包放入/var/www/html下面,再执行[createrepo .]即可. 不过虚拟机对传文件终归是 ...
- MySQL 先按某字段分组,再取每组中前N条记录
按 gpcode每组 取每组 f4 最大的那条记录: 方法一: select * from calcgsdataflash a where gscode = 'LS_F' and ymd >= ...
- Java如何显示一年的周数?
在Java中,如何查找一年中或一个月中的第几个星期? 以下示例显示年份和月份的第几周. package com.yiibai; import java.util.*; public class Dis ...
- com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method
查看了网友们的错误原因, 需要进行实例化的类没有进行实例化,具体没有实例化的类会在错误信息中显示,在错误信息中搜索“Serializable”即可找到将其实现序列化可消除错误. 是在使用Dubbo提供 ...
- Linux——curl(转)
先介绍curl工具的使用,在其他文章中介绍如何使用curl发送Identity API linux curl是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合传输工具 ...
- Xianfeng轻量级Java中间件平台:基于RBAC模型实现权限控制的原理
首先,白话一下RBAC模型.RBAC是基于角色的访问控制(Role-Based Access Control)的简称.RBAC认为权限授权实际上是Who.What.How的问题.在RBAC模型中,wh ...
- Linux 文件类型及操作
一. 文件类型 1.Linux文件类型如下图所示: 2.Linux文件类型有许多种,不同的文件类型代表特殊意义,使用以下命令可以查看文件类型: [root@VMredhat6 ~]# ls -l ...
- php 统计fasta 序列长度和GC含量
最近php7的消息铺天盖地, 忍不住想尝试下.星期天看了下语法, 写个小脚本练下手: 这个脚本读取fasta 文件, 输出序列的长度和GC含量: <?php $fasta = "tes ...
- The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead [duplicate]
From: http://stackoverflow.com/questions/13944956/the-mysql-extension-is-deprecated-and-will-be-remo ...
- [AngularJS] tips技巧收集
单个参数调用angular.module(),用来取得该模块而不是定义新的 这样就可以在不同的地方定义app的controller而不用通过全局变量 angular.module('myapp') ...