10-10-12分页限制

10-10-12分页因为页表PEB只有四个字节所以只能访问2^32 = 4GB物理地址空间,现在的物理内存都大于4GB为了能访问到更多的物理内存2-9-9-12将PEB的大小增加到了8个字节,其中36位用来表示物理页基地址,这样就可以访问到2^36 = 64GB物理地址空间。因为一个物理页大小一般为4kb,为了增加页表中PEB的大小,所以页表长度就减小了(10减到9)。

2-9-9-12分页

线性地址的2是页目录指针表PDTPT的索引,9是页目录表PDT的索引,下一个9是页表PTT的索引,下一个12是页内偏移地址。

PDTPT,PDT,PTT的每一项都是八个字节。CR3现在指向的是PDTPT页目录表指针表,0-4位忽略后0-31位表示PDTPT表物理基地址。

PDTPE是页目录指针表项,其0位依然是P有效位,0-35位指向PDT页目录表(0-11位置0)。

PDE的PS位如果为1,表示物理页大小为2^ 21 (9 + 12)= 2MB,最高位XD(NX)位为不可执行位,如果此位为1则此地址的数据不能作为代码执行。G位是全局位(此线性地址为高2GB地址)只有当其PS位为1时才有G位否则无G位,如果为1那么当CR3变化时,不会清除TLB表中此地址对应的项,提高效率。

PTE也有XD不可执行位和G位全局位,注意只要PDE和PTE中其中一个的XD位为1就可以使此地址对应的数据无法执行。其他位都需要与一下。

在3环读写高2GB地址内存

printf("0x%x", (*(DWORD*)0x8003f048));
(*(DWORD*)0x8003f048) = 0x12345678;
printf("0x%x", (*(DWORD*)0x8003f048));

我们在windbg中查看地址0x8003f048线性地址对应的物理地址等信息。

我们在windbg中将PDE和PTE的的U/S位设为1即可读取此高地址的内存

2-9-9-12分页机制(xp)的更多相关文章

  1. 10-10-12分页机制(xp)

    虚拟地址到物理地址 虚拟地址空间就是32位系统的那4GB,这4GB空间的地址称为虚拟地址.虚拟地址经过分段机制后转化为线性地址,一般虚拟地址都等于线性地址,因为大多数段寄存器的基地址都为0,只有FS段 ...

  2. ASM:《X86汇编语言-从实模式到保护模式》第16章:Intel处理器的分页机制和动态页面分配

    第16章讲的是分页机制和动态页面分配的问题,说实话这个一开始接触是会把人绕晕的,但是这个的确太重要了,有了分页机制内存管理就变得很简单,而且能直接实现平坦模式. ★PART1:Intel X86基础分 ...

  3. Linux的分段和分页机制

    1.分段机制 80386的两种工作模式  80386的工作模式包括实地址模式和虚地址模式(保护模式).Linux主要工作在保护模式下. 分段机制  在保护模式下,80386虚地址空间可达16K个段,每 ...

  4. Linux内存寻址之分页机制

    在上一篇文章Linux内存寻址之分段机制中,我们了解逻辑地址通过分段机制转换为线性地址的过程.下面,我们就来看看更加重要和复杂的分页机制. 分页机制在段机制之后进行,以完成线性—物理地址的转换过程.段 ...

  5. linux x86内核中的分页机制

    Linux采用了通用的四级分页机制,所谓通用就是指Linux使用这种分页机制管理所有架构的分页模型,即便某些架构并不支持四级分页.对于常见的x86架构,如果系统是32位,二级分页模型就可满足系统需求: ...

  6. Linux分页机制之分页机制的实现详解--Linux内存管理(八)

    1 linux的分页机制 1.1 四级分页机制 前面我们提到Linux内核仅使用了较少的分段机制,但是却对分页机制的依赖性很强,其使用一种适合32位和64位结构的通用分页模型,该模型使用四级分页机制, ...

  7. Linux分页机制之分页机制的演变--Linux内存管理(七)

    1 页式管理 1.1 分段机制存在的问题 分段,是指将程序所需要的内存空间大小的虚拟空间,通过映射机制映射到某个物理地址空间(映射的操作由硬件完成).分段映射机制解决了之前操作系统存在的两个问题: 地 ...

  8. Linux分页机制之概述--Linux内存管理(六)

    1 分页机制 在虚拟内存中,页表是个映射表的概念, 即从进程能理解的线性地址(linear address)映射到存储器上的物理地址(phisical address). 很显然,这个页表是需要常驻内 ...

  9. [转帖]Linux分页机制之分页机制的演变--Linux内存管理(七)

    Linux分页机制之分页机制的演变--Linux内存管理(七) 2016年09月01日 20:01:31 JeanCheng 阅读数:4543 https://blog.csdn.net/gatiem ...

  10. [转帖]Linux分页机制之概述--Linux内存管理(六)

    Linux分页机制之概述--Linux内存管理(六) 2016年09月01日 19:46:08 JeanCheng 阅读数:5491 标签: linuxkernel内存管理分页架构更多 个人分类: ┈ ...

随机推荐

  1. Python中面向对象的概念

    1.语言的分类 1)面向机器 抽象成机器指令,机器容易理解.代表:汇编语言. 2)面向过程 做一件事,排除步骤,第一步做什么,第二步做什么,如果出现A问题,做什么处理,出现b问题,做什么处理.问题规模 ...

  2. 解决linux sudo apt-get install xx是2出现无法定位软件包方法

    解决办法: 在etc/apt/sources.list最后一行添加 deb http://archive.ubuntu.com/ubuntu/ trusty main universe restric ...

  3. ch1_6_2求解删除公共字符问题

    输入两个字符串,从第一字符串中删除第二个字符串中所有的字符.例如,输入"They are students."和"aeiou",则删除之后的第一个字符串变成&q ...

  4. effective解读-第八条 避免使用finalizer和Cleaner

    java9之前finalizer,java9使用cleaner代替了finalizer.相比finalizer,cleaner(它存在于一个独立类Cleaner中,需要时候注入到对应类中即可)不会污染 ...

  5. 20182217刘洪宇EXP3_免杀原理

    免杀 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. 要做好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工作的.AV(Anti-virus)是很大一个产业.其中主 ...

  6. Linux常用命令-基础部分

    Linux介绍 Linux是一款开源的操作系统,免费,开源,安全,高效,处理高并发非常强悍,很多企业级开发项目都部署在Linux/UNIX上. 创始人:Linus Torvalds 林纳斯 Linux ...

  7. UnitFourSummary

    目录 第四单元架构设计 taskOne taskTwo taskThree 四个单元架构设计与OO方法理解的演进 四个单元架构设计 UnitOne UnitTwo UnitThree UnitFour ...

  8. [Vue warn]: Unknown custom element: <terminal-process> - did you register the component correctly? For recursive components, make sure to provide the "name" option.

    Vue组件注册报错问题 import 不要加{},排查出如果页面引用单个组件的时候不要加上{}中括号,引入多个组件时才能派上用场,中括号去除问题即可解决.

  9. HUAWEI AppGallery Connect获得SOC国际权威认证,多举措保护信息和隐私安全

    近日,华为应用市场AppGallery Connect(简称AGC)一次性成功通过国际权威标准组织"美国注册会计师协会(AICPA)"认定的SOC1 Type2.SOC2 Type ...

  10. Mybatis3源码笔记(一)环境搭建

    1. 源码下载 地址:https://github.com/mybatis/mybatis-3.git. 国内访问有时确实有点慢,像我就直接先fork.然后从git上同步到国内的gitte上,然后在i ...