学了好久好久,但是好久好久都没有用过,今天突然要用,都快忘了怎么玩了,

这里记录一下吧。

如何检测PAE

r cr4

第5位如果是1,则开了PAE,否则没开

切入目标进程

查找一个自己关注的字符串
s -u (start) L(len) ""
得到地址

得到地址
kd> db 01014dd4
01014dd4 31 00 32 00 33 00 34 00-35 00 36 00 37 00 38 00 1.2.3.4.5.6.7.8.
01014de4 39 00 30 00 31 00 32 00-33 00 00 00 00 00 00 00 9.0.1.2.3.......
01014df4 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
01014e04 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
01014e14 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
01014e24 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
01014e34 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
01014e44 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

获取CR3
kd> r cr3
cr3=02b80480

看内存中的页表信息
kd> !dd 02b80480
# 2b80480 11868801 00000000 080e9801 00000000
# 2b80490 0c96a801 00000000 083e7801 00000000
# 2b804a0 0749f801 00000000 124a0801 00000000
# 2b804b0 18d61801 00000000 15e5e801 00000000
# 2b804c0 f8c63320 00000000 1fe11801 00000000
# 2b804d0 1d8d2801 00000000 1baa7801 00000000
# 2b804e0 f8c63540 00000000 12a48801 00000000
# 2b804f0 098c9801 00000000 09ba6801 00000000

切分虚拟地址,有PAE的情况
01014dd4
2 9 9 12
0 0x8 0x14 0xDD4

在第0个页,所以得到了这个地址,是16位的
12到位35是内存页基地址的高24位,低12位不用(页属性)
kd> !dq 11868000
#11868000 00000000`0830c867 00000000`1cf62867
#11868010 00000000`14948867 00000000`00000000
#11868020 00000000`135a6867 00000000`1a369867
#11868030 00000000`00000000 00000000`00000000
#11868040 00000000`03ec7867 00000000`00000000
#11868050 00000000`00000000 00000000`00000000
#11868060 00000000`00000000 00000000`00000000
#11868070 00000000`00000000 00000000`00000000

!dq 11868000+8*8

12到位35是内存页基地址的高24位,低12位不用(页属性)
kd> !dq 03ec7000
# 3ec7000 80000000`1e99b025 00000000`05fc2025
# 3ec7010 00000000`0c7fb025 00000000`00000000
# 3ec7020 00000000`10e7d025 00000000`12abe025
# 3ec7030 00000000`18d7f025 00000000`15380025
# 3ec7040 00000000`0e481025 00000000`03778025
# 3ec7050 00000000`0fa39025 00000000`1163a025
# 3ec7060 00000000`00000000 00000000`00000000
# 3ec7070 00000000`00000000 00000000`00000000
# 3ec7080 00000000`00000000 00000000`19bb7025
# 3ec7090 00000000`1c938025 00000000`11bf9025
# 3ec70a0 80000000`1acb1867 80000000`14cee867
# 3ec70b0 80000000`1ec48025 00000000`00000000
# 3ec70c0 00000000`00000000 00000000`00000000
# 3ec70d0 80000000`1e30d025 80000000`1550e025
# 3ec70e0 80000000`0818f025 80000000`1ab10025
# 3ec70f0 80000000`05a11025 00000000`00000000

!dq 03ec7000+0x14*8

12到位35是内存页基地址的高24位,低12位不用(页属性)
kd> !db 1acb1dd4
#1acb1dd4 31 00 32 00 33 00 34 00-35 00 36 00 37 00 38 00 1.2.3.4.5.6.7.8.
#1acb1de4 39 00 30 00 31 00 32 00-33 00 00 00 00 00 00 00 9.0.1.2.3.......
#1acb1df4 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
#1acb1e04 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
#1acb1e14 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
#1acb1e24 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
#1acb1e34 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
#1acb1e44 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

从虚拟地址,到物理地址(开PAE)的更多相关文章

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

      34 注册:2013-10 帖子:2013 精华:34 --> [原创]启用PAE后虚拟地址到物理地址的转换 安于此生 2013-11-3 20:54 16073 由常规的两级页表转换得不到 ...

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

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

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

                                                                                                        ...

  4. x86 分页机制——虚拟地址到物理地址寻址

    x86下的分页机制有一个特点:PAE模式 PAE模式 物理地址扩展,是基于x86 的服务器的一种功能,它使运行 Windows Server 2003, Enterprise Edition 和 Wi ...

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

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

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

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

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

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

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

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

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

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

  10. 浅析Linux 64位系统虚拟地址和物理地址的映射及验证方法

    虚拟内存 先简单介绍一下操作系统中为什么会有虚拟地址和物理地址的区别.因为Linux中有进程的概念,那么每个进程都有自己的独立的地址空间. 现在的操作系统都是64bit的,也就是说如果在用户态的进程中 ...

随机推荐

  1. socket模拟通信

    import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java ...

  2. Echart使用js进行封装成函数

    Echart使用js进行封装成函数 主要是对 json 串的封装,使用 js 进行对 json 的解析.之间用的最多是循环取出数组中的值,如果拿去使用可直接修改 json 就好. 上一篇把二维的封装好 ...

  3. VMware Workstation 无法打开内核设备:\\Global\\vmx86

    解决方法:win10系统,打开“服务”后右击选择使用管理员打开.然后在一大串服务中找到vm开头的服务项,全部都启动.重新启动vm就ok了(vm需要以管理员身份打开).不用复杂的代码!!

  4. 树莓派安装omv

    1.Win32DiskImager写入光盘镜像 2.进入omv页面 设置 ip 端口号 ,设置时间,设置ssh打开,设置会话超时时间 ××××设置 dns  很重要!! #这里用的是阿里云的DNS服务 ...

  5. Java多态的本质

    今天复习了java多态,感觉收获颇多.多态的实现方式有两种,继承父类和实现接口.本质体现在重写上,不同的类重写时体现出不同的特征.编译时和运行时的不同上.编译时只能调用父类的方法,如果调用了子类独有的 ...

  6. PAT_A1121#Damn Single

    Source: PAT A1121 Damn Single (25 分) Description: "Damn Single (单身狗)" is the Chinese nickn ...

  7. Organizing Containers of Balls

    题目 David has several containers, each with a number of balls in it. He has just enough containers to ...

  8. sersync/lsyncd实时同步

    第一章 sersync/lsync实时同步 1.1 实时同步服务原理/概念 1)需要部署好rsync守护进程服务,实现数据传输 2)需要部署好inotify服务,实现目录中数据变化监控 3)将rsyn ...

  9. 【学术篇】SPOJ FTOUR2 点分治

    淀粉质入门第一道 (现在个人认为spoj比bzoj要好_(:з」∠)_ 关于点分治的话推荐去看一看漆子超的论文>>>这里这里<<< 之前一直试图入点分治坑, 但是因 ...

  10. DOM——事件详解

    事件 事件:触发-响应机制 事件三要素 事件源:触发(被)事件的元素 事件名称: click 点击事件 事件处理程序:事件触发后要执行的代码(函数形式) 事件的基本使用  var box = docu ...