从虚拟地址,到物理地址(开PAE)
学了好久好久,但是好久好久都没有用过,今天突然要用,都快忘了怎么玩了,
这里记录一下吧。
如何检测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)的更多相关文章
- 启用PAE后虚拟地址到物理地址的转换
34 注册:2013-10 帖子:2013 精华:34 --> [原创]启用PAE后虚拟地址到物理地址的转换 安于此生 2013-11-3 20:54 16073 由常规的两级页表转换得不到 ...
- X64下的虚拟地址到物理地址的转换
https://bbs.pediy.com/thread-203391.htm 早就知道传上来排版会全乱掉,把pdf直接传上来吧 x64结构体系寻址.pdf 发现安大的关于x86启用PAE下的虚拟 ...
- Windows虚拟地址转物理地址(原理+源码实现,附简单小工具)
...
- x86 分页机制——虚拟地址到物理地址寻址
x86下的分页机制有一个特点:PAE模式 PAE模式 物理地址扩展,是基于x86 的服务器的一种功能,它使运行 Windows Server 2003, Enterprise Edition 和 Wi ...
- cpu为什么使用虚拟地址到物理地址的空间映射,解决了什么样的问题?
当处理器读或写入内存位置时,它会使用虚拟地址.作为读或写操作的一部分,处理器将虚拟地址转换为物理地址.通过虚拟地址访问内存有以下优势: 程序可以使用一系列相邻的虚拟地址来访问物理内存中不相邻的大内存缓 ...
- Linux虚拟地址和物理地址的映射
➤背景 一般情况下,Linux系统中,进程的4GB内存空间被划分成为两个部分------用户空间和内核空间,大小分别为0~3G,3~4G.用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核 ...
- Linux驱动虚拟地址和物理地址的映射
一般情况下,Linux系统中,进程的4GB内存空间被划分成为两个部分------用户空间和内核空间,大小分别为0~3G,3~4G. 用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核空间. ...
- [置顶] Linux 虚拟地址与物理地址的映射关系分析【转】
转自:http://blog.csdn.net/ordeder/article/details/41630945 版权声明:本文为博主(http://blog.csdn.net/ordeder)原创文 ...
- Linux 虚拟地址与物理地址的映射关系分析【转】
转自:http://blog.csdn.net/ordeder/article/details/41630945 版权声明:本文为博主(http://blog.csdn.net/ordeder)原创文 ...
- 浅析Linux 64位系统虚拟地址和物理地址的映射及验证方法
虚拟内存 先简单介绍一下操作系统中为什么会有虚拟地址和物理地址的区别.因为Linux中有进程的概念,那么每个进程都有自己的独立的地址空间. 现在的操作系统都是64bit的,也就是说如果在用户态的进程中 ...
随机推荐
- jsp+servlet中文乱码问题
jsp+servlet中文乱码问题 servlet想要获得前台传来的值 String strName=new String(request.getParameter("name") ...
- jsp2自定义标签+属性
前面说过jsp2自定义标签如果要加入属性需要设置属性的getter和setter方法.代码如下: public class GetParam extends SimpleTagSupport { pr ...
- rmq +二分暴力 hdu 5726
参考博客 题意:n 个数字的数列,有m个询问:求出 L 到 R 的 gcd(最大公约数 ),然后问这整个序列中有多少个区间的 gcd 和这个一样. 分析:L 到 R的gcd直接用RM ...
- 矢量切片应用中geoserver与geowebcache分布式部署方案
在进行GIS项目开发中,常使用Geoserver作为开源的地图服务器,Geoserver是一个JavaEE项目,常通过Tomcat进行部署.而GeoWebCache是一个采用Java实现用于缓存WMS ...
- 一键抓取Android的Locat Log
很多小伙伴在做App测试时,一遇到Cash,开发同学最常说的一句话,就是抓下Locat日志,很多小伙伴一听到这个抓取日志就会觉得有点烦. 主要有2点: 1.是这个bug可能不好 ...
- VUE 中 使用 iview Form组件 enter键防止页面刷新
<Form :label-width="100" inline label-position='left' @keydown.native.enter.prevent =&q ...
- dubbo源码学习(四):暴露服务的过程
dubbo采用的nio异步的通信,通信协议默认为 netty,当然也可以选择 mina,grizzy.在服务端(provider)在启动时主要是开启netty监听,在zookeeper上注册服务节点, ...
- pandas读书笔记、重新索引
重新索引 pandas对象的一个重要方法是 reindex ,其作用是创建一个适应新索引的新对象. #reindex函数的参数 reindex(index,method,fill_value, ...
- Burnside引理&Pólya定理
Burnside's lemma 引例 题目描述 一个由2*2方格组成的正方形,每个格子上可以涂色或不涂色, 问共有多少种本质不同的涂色方案. (若两种方案可通过旋转互相得到,称作本质相同的方案) 解 ...
- LoadRunner模拟REST接口的json请求
LoadRunner模拟REST接口的json请求 现在很多手机应用的性能测试,REST接口调用通过json格式,在用loadrunner模拟这些json请求时,需要开发提供 1.供接口地址 2.提交 ...