从虚拟地址,到物理地址(开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的,也就是说如果在用户态的进程中 ...
随机推荐
- SSM框架整合思路
SSM框架整合思路 Spring在整合中起到的作用(面试时常问到) Spring管理持久层的mapper. Spring管理业务层的service,service可以调用mapper接口.Spring ...
- jQuery 加载事件
1. jquery加载事件实现 ① $(document).ready(function处理); ② $().ready(function处理); ③ $(function处理); 对第一种加载的封 ...
- upc组队赛2 Master of GCD 【线段树区间更新 || 差分】
Master of GCD 题目描述 Hakase has n numbers in a line. At fi rst, they are all equal to 1. Besides, Haka ...
- redis 配置文件aof配置
redis 配置文件aof配置: bind 127.0.0.1 port 6379 daemonize yes dbfilename dump.rdb dir /new_renpeng/redis/ ...
- yield迭代器的使用
class Program { static void Main(string[] args) { List<Student> students = new List<Student ...
- pytest_fixture-----conftest共享数据及不同层次共享
场景:你与其他测试工程师合作一起开发时,公共的模块要在不同文件中,要 在大家都访问到的地方. 解决:使用conftest.py 这个文件进行数据共享,并且他可以放在不同位置起 着不同的范围共享作用. ...
- Vultr账号被锁定的几个常见原因
很多小伙伴使用都在问Vultr账号为什么又是会出现被锁定的情况,今天我们就来了解一下Vultr账号被锁定的几个常见原因. 1.Vultr主机违规使用 按照Vultr主机商的要求,我们的Vultr主机也 ...
- python 进程与线程 精要
程序与进程 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程. 程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本:进程是程序的一次 ...
- Servlet 上传图片
目录 Servlet 上传图片 预备 需求包 pom 前端代码 Servlet 上传图片 预备 需求包 commons-fileupload -用于上传 jstl -用于jsp页面遍历 servlet ...
- Jmeter-【beanshell处理器】-获取时间
一.通过操作变量