从虚拟地址,到物理地址(开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的,也就是说如果在用户态的进程中 ...
随机推荐
- web开发调用百度地图API + AK申请
web开发调用百度地图API + AK申请 要使用百度地图的API我们首先需要在我们的html页面引入js----`` 如何获取百度地图ak: 1.登陆百度地图开发者平台 2.注册百度开发者账号并登陆 ...
- 【SVN】提交报错:×××文件is not under version control
解决方法:1.删除出错的文件,然后在出错文件所在文件夹执行还原操作 2.VS中可将文件先排除在项目外,再包含在项目内,即可正常提交
- new delete
malloc/free是标准的库函数,而new/delete是操作符 匹配使用原则:malloc(calloc/realloc)和free 以及new/new[] 和delete/delete[]; ...
- 7-vim-移动命令-02-行数跳转和上下翻页
1.行数跳转 命令 英文 功能 gg go 文件顶部 G GO 文件尾部 数字gg 移动到数字对应行数 数字G 移动到数字对应行数 :数字 移动到数字对应行数 2.屏幕移动 命令 英文 功 ...
- python--reflect
一.反射 python 中用字符串的方式操作对象的相关属性,python 中一切皆对象,都可以使用反射 用eval 有安全隐患,用 反射就很安全 1.反射对象中的属性和方法 class A: a_cl ...
- js进阶之路,关于UI资源的优化(转载)
以下场景往往由于事件频繁被触发,因而频繁执行DOM操作.资源加载等重行为,导致UI停顿甚至浏览器崩溃. 1. window对象的resize.scroll事件 2. 拖拽时的mousemove事件 3 ...
- ubuntu配置阿里云源
换成国内最快的阿里云源 第一步:备份原来的源文件 cd /etc/apt/ 然后会显示下面的源文件sources.list 输入命令 sudo cp sources.list sources.list ...
- idea中添加mysql驱动jia包的方法
1 将相关jar包拷贝到自己所建的lib 文件夹下 如下图所示 2 选中自己的module 接着选择Project Structure 如下图 3 接着如下图继续操作 如上图完成后 那么我们 ...
- PHP headers_sent() 函数
定义和用法 headers_sent() 函数检查 HTTP 报头是否发送/已发送到何处. 如果报头已发送,该函数返回 TRUE,否则返回 FALSE. 语法 headers_sent(file,li ...
- cookie中文转码
//cookie中文转码 var GB2312UnicodeConverter = { //转码 ToUnicode: function(str) { //中文转unicode return esca ...