一、回顾

前面的课程中,我们学习了P位和R/W位,P决定物理页是否有效,RW决定了物理页的读写权限。
本节,将依次介绍U/S、PS、A、D位的含义。

二、U/S

U/S=0 表示特权用户可访问;
U/S=1 表示普通用户可访问。

回想一下之前学习段的时候,我们可以通过调用门,中断门,任务门等方式将CPL提升到0,从而可以读写高2G内存。学习了U/S位后,我们可以不提权也能访问高2G,只需要将想访问的物理页对应的PDE PTE的U/S位改写为1即可。

下面是一个小实验:

// PDE_PTE_US.cpp : Defines the entry point for the console application.
//#include "stdafx.h"
#include <Windows.h>int _tmain(int argc, _TCHAR* argv[])
{PDWORD p = (PDWORD)0x8003f00c;DWORD addr = (DWORD)p;printf("线性地址:0x%08x, 4*0x%x 4*0x%x 0x%x\n", addr, addr>>22,(addr>>12)&0x000002FF,addr&0x00000FFF);getchar();printf("读高2G内存地址:%x\n", *p);return 0;
}

我在程序中已经把线性地址拆分好了,接下来只需要找到PDE PTE,将U/S改成1即可。


修改U/S位:

继续执行程序:

总结:

1、2G以上是内核才能访问的原因是U/S位的设置问题,如果将内核的某个页
设置为1 就可以在R3访问了

2、0 1 2是系统环 可以访问系统页和用户页 0环是特权级环 1、2环虽然不
是特权级环 但是是系统环 3环是用户环 可以访问用户页

三、PS

PS是PDE的第8位,PS是PAGE SIZE 的意思。我们之前遇到的PDE PS位大部分都是0;当PS=1,则PDE直接指向物理页,以 0x8043f00c 为例,分析PS=1的情况。

拆分 8043f00c
‭10 0000 0001 0x201
00 0011 1111 0x3f
00000000 1100‬ 0xc

随便找一个进程的CR3,notepad.exe CR3=0ddb5000

查得PDE=004001e3

看看 8043f00c 的拆分结果,前10位是PDT的下标,通过它找到了PDE,后22位是物理页偏移。
‭10 0000 0001 0x201
00 0011 1111 0x3f
0000 0000 1100‬ 0xc

PDE指向大小为4MB的物理页,即物理页地址是 0x00400000,页内偏移22位来自 0x8043f00c 的低22位,即 00 0011 1111 0000 0000 1100 ,十六进制是 0x3f00c

所以 0x8043f00c 物理地址是 0x0043f00c,验证如下:

四、A

是否被访问(读或者写)过 ,访问过置1,即使只访问一个字节也会导致PDE PTE置1。

五、D

脏位 是否被写过 0没有被写过 1被写过

六、关于G位,PWT位,PCD位

学完控制寄存器域TLB才能讲,此处略过。

七、有效位

有效位在发生缺页时(PTE的P=0)使用。关于这部分知识,等以后学习了内存管理的缺页异常就知道了,这里简单介绍一下。

(20)PDE_PTE属性(U/S PS A D 有效位)相关推荐

  1. 20天学会UI设计(PS+AI)入门教程

    PS.AI是UI设计师必不可少的两项技能,对于想要学习UI设计的人来说,首先就是要学会使用PS和AI.如何才能快速学会这两样呢?下面给大家分享20天学会UI设计(PS+AI)入门教程. 课程介绍 本套 ...

  2. 20种处理照片的PS技术

    1 打开图片,执行色像/饱和度(-40)降低饱和度.  2 新建一图层,将图层模式改为柔光,用画笔工具将需要润饰的部分画几下,这里可以利用色板方便的提取颜色  3 图片色彩过渡不够柔和,再执行一下滤镜 ...

  3. 13. PDE_PTE属性

    物理页的属性= PDE属性& PTE属性 (后12位) 4d404063 属性含义 P:有效位.0 表示当前表项无效. R/W: 0 表示只读.1表示可读可写. U/S::0 表示3特权级程序 ...

  4. 20.python-类属性和类方法

    类属性和类方法 目标 类的结构 类属性和实例属性 类方法和静态方法 01. 类的结构 1.1 术语 -- 实例 使用面相对象开发,第 1 步 是设计 类 使用 类名() 创建对象,创建对象 的动作有两 ...

  5. (29)PDE_PTE属性(PWT/PCD位)

    一.CPU缓存(CACHE) CPU缓存是位于CPU与物理内存之间的临时存储器,它的容量比内存小的多 但是交换速度却比内存要快得多. CPU缓存可以做的很大,有几K.几十K.几百K 甚至上M的也有. ...

  6. Linux进程管理之ps的使用

    主题Linux进程管理之ps工具的使用 一ps工具的介绍 ps: process state  进程状态 ps - report a snapshot of the current processes ...

  7. ps如何修改图片大小尺寸_如何查看图片尺寸,大小及如何修改图片尺寸—淘宝美工入门课03...

    上一篇文章给大家分享了一下豆芽常用字体,也提供了下载链接,今天和大家聊聊有关图片尺寸和图片大小相关的问题,主要包含以下这3个方面. 一,如何查看图片的尺寸(像素px) 二,如何改变图片的尺寸 三,了解 ...

  8. OC反射机制获得该类全部属性并创建数据表

    1. 首先我们要知道,这使用的是运行时的反射机制 所以我们需要头文件 runtime.h 1 - (BOOL) createTableByClassAttributes: (id)classModel ...

  9. (转载)js对象原来也有类、实例属性和原型属性

    <html>     <head>     <meta http-equiv="Content-Type"content="text/htm ...

最新文章

  1. 物理学走到尽头了吗?
  2. 乐高ev3搭建图_乐高EV3作品|机械夹子(二)
  3. LinkedBlockingQueue 解析
  4. Hough 检测直线
  5. audio标签不展示_设计标签式PPT:排版简洁明了,强烈信息秩序感,你想试试吗?...
  6. 【题解】luogu P1757 通天之分组背包
  7. 【课题总结】OpenCV 抠图项目实战(1)目录摘要
  8. matlab制作萨克斯音乐,Cmusic Productions SAXBAND Soprano Sax KONTAKT 萨克斯
  9. 如何使用Eclipse开发安卓手机程序在手机上运行并设置真机启动
  10. [1]技术浅谈——小刘对渗透攻击的一些见解
  11. 什么是群发单显和分别发送,有什么区别,发客户邮件忘记群发单显
  12. 在windows 10上编译bitcoin源码
  13. 【计蒜客 - 蓝桥训练】蒜厂年会(循环数列的最大子段和)
  14. Beta周王者荣耀交流协会第五次Scrum会议
  15. Excel 图表与数据透视表制作
  16. 三角定位matlab,基于RSSI校正的三角形质心定位算法
  17. C语言遍历windows目录文件 并对文件进行读写操作
  18. VSCode改主题背景
  19. IP-guard V4 服务器迁移方法
  20. biobakery流程之有参宏基因组分析

热门文章

  1. oracle供需平衡,OracleR12_MRP_功能介绍_V2.ppt
  2. AI:2020年6月23日北京智源大会演讲分享之AI交通专题论坛——11:05-11:35杜博文教授《基于广义时空数据挖掘的交通复杂行为认知-从研究到工业》
  3. 成功解决 cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp” 和 cl: 命令行 error D8021 :无效的数值参数“/Wno-unused-function”
  4. HighNewTech:2019.08.09程序猿界大事件之【你好,我是鸿蒙OS】~【来了,老弟】—技术才是硬道理,开源方能建立新生态!
  5. CV:cv2实现检测几何形状并进行识别、输出周长、面积、颜色、形状类型
  6. Pandas常用I/O(一)------read_csv(),read_table()
  7. Python基础 --- 使用 dict 和 set
  8. js中的arguments 参数
  9. 三、python沉淀之路--列表(list)
  10. 【提权思路】绕过SecureRDP限制远程连接