PTE_Addr 证明
来源:互联网 发布:淘宝如何入驻特色卖家 编辑:程序博客网 时间:2024/04/27 23:00
最近在看 Windows 2000 secrete 是遇到一个公式 PTE_Addr = (VirtualAddr >> 12) * 4 + 0xC0000000
通过查找网络资料之后得到如下证明:
因为1024个页表被映射在0xC0000000 - 0xC03FFFFF地址中,这样就可以得到一个关系,页目录索引n指向的页表就等于0xC0000000 + n * 页表大小,一个页表的大小是1024 * 4 = 4096 = 2的12次方,得到了页表,在加上页表索引就可以得到页表项(PTE)的地址了,
PTE_Addr=((VA&0xffc00000)>>22)*4096+((VA&0x3ff000)>>12)*4+0xc0000000
=(((VA&0xffc00000)>>22)<<12)+(((VA&0x3ff000)>>12)<<2)+0xc0000000
=((VA&0xffc00000)>>10)+((VA&0x3ff000)>>10)+0xc0000000
=((VA&0xffc00000)+(VA&0x3ff000)>>10)+0xc0000000
=((VA&(0xffc00000|0x3ff000))>>10)+0xc0000000
=((VA&0xfffff000)>>10)+0xc0000000
=(((VA&0xfffff000)>>12)<<2)+0xc0000000
=((VA&0xfffff000)>>12)*4+0xc0000000
其中 (VA&0xffc00000)>>22)*4096 是 查找第 n个页表。
(VA&0x3ff000)>>12)*4 是在找到第n个页表的情况下,查找第m个页表项。
- PTE_Addr 证明
- 证明
- 开证明
- 受益人证明
- 方程证明
- 信贷证明
- 勾股定理证明
- Dijkstra 证明
- 证明周期
- 证明题
- 证明题
- gcd 证明
- SPV证明
- 一些证明
- 实践证明
- 不等式证明
- SPV证明
- NPC证明
- CSDN的博客缓冲很厉害哦,我编辑后根本不管用
- IBM R&D 热招职位 2009.07.08
- linux 开发软件列表
- 去掉php框架CI默认url中的index.php
- 买不起书的,就下吧,超级经典
- PTE_Addr 证明
- CQ的记录类型的关联动作之间的脚本执行情况
- “烫烫烫烫屯屯屯”的原因
- 动态规划的状态表示(一)
- 为啥页目录的地址为什么是C0300000H
- MSDN Webcast预告 - .NET 4.0中的新特性系列课程(4):.NET 4.0 安全模型介绍(Level 200)
- java 调用存储过程
- 解决DCOM Server Process Launcher错误
- qt4:英文字符的比较问题