吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2948|回复: 19
收起左侧

[C&C++ 转载] win7sp1x64内存管理

[复制链接]
b917893200 发表于 2020-9-22 12:27
以下数据来源于 cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso (3.19 GB)
pte 起始地址 ffff f680 0000 0000 (逆向MmIsAddresseValid)
ffff f680 0000 0000 >> 12 =f ffff 6800 0000
(x(pte的虚拟地址)-ffff f680 0000 0000) / 8 *0x1000 = VA(此进程任意一个虚拟地址)

x64的进程都有2^64虚拟地址空间
页表的作用就是表明进程空间中可用的虚拟地址被映射在哪片物理地址

原理:(x-ffff f680 0000 0000)/8*0x1000 = (ffff f680 0000 0000&0xffffffffffff) 前16位清0
算出映射pte的地址(即pde起始地址)用 (一开始用计算器移位,没注意输入的位数是16进制的,希望大家注意一下)
公式:
_PTE_BASE =(((虚拟地址 & 0xffffffffffff) >> 12)) << 3) + g_PTE_BASE)

g_PDE_BASE=(((虚拟地址 & 0xffffffffffff) >> 21)) << 3) + g_PDE_BASE)

g_PPE_BASE=(((虚拟地址 & 0xffffffffffff) >> 30)) << 3) + g_PPE_BASE)

g_PXE_BASE=(((虚拟地址 & 0xffffffffffff) >> 39)) << 3) + g_PXE_BASE)
按上述方法依次得到
存储 PTE  的页面:FFFFF680`00000000

存储 PDE 的页面:FFFFF6FB`40000000

存储 PPE 的页面:FFFFF6FB`7DA00000

存储 PXE 的页面:FFFFF6FB`7DBED000

参考https://www.cnblogs.com/xuanyuan/p/5260871.html

.text:00000001400BB670 MiIsAddressValid proc near              ; CODE XREF: MmAccessFault-78AFA↑p
.text:00000001400BB670                                         ; MiDeprioritizeVARange+D6↑p ...
.text:00000001400BB670                 mov     rax, rcx
.text:00000001400BB673                 sar     rax, 48
.text:00000001400BB677                 inc     rax
.text:00000001400BB67A                 cmp     rax, 1
.text:00000001400BB67E                 ja      loc_1400BB713   ; 根据前16位简单判断一下地址的有效性(0000或ffff)
.text:00000001400BB684                 mov     rax, rcx
.text:00000001400BB687                 mov     rdx, 0FFFFF6FB7DBED000h
.text:00000001400BB691                 shr     rax, 39         ; 取pml4的偏移
.text:00000001400BB695                 and     eax, 1FFh       ; 低9位不变,高位全部置0
.text:00000001400BB69A                 test    byte ptr [rdx+rax*8], 1 ; 判断最后一位,P位
.text:00000001400BB69E                 jz      short loc_1400BB713 ; P位为0,也就是页面置换在文件中,直接返回0
.text:00000001400BB6A0                 mov     rax, rcx
.text:00000001400BB6A3                 mov     rdx, 0FFFFF6FB7DA00000h
.text:00000001400BB6AD                 shr     rax, 27         ; 取pdpt的偏移
.text:00000001400BB6B1                 and     eax, 1FFFF8h
.text:00000001400BB6B6                 test    byte ptr [rax+rdx], 1
.text:00000001400BB6BA                 jz      short loc_1400BB713
.text:00000001400BB6BC                 mov     rdx, 904C0000000h
.text:00000001400BB6C6                 mov     rax, rcx
.text:00000001400BB6C9                 shr     rax, 18         ; 取pdt的偏移
.text:00000001400BB6CD                 and     eax, 3FFFFFF8h
.text:00000001400BB6D2                 sub     rax, rdx
.text:00000001400BB6D5                 mov     rdx, [rax]
.text:00000001400BB6D8                 test    dl, 1
.text:00000001400BB6DB                 jz      short loc_1400BB713
.text:00000001400BB6DD                 test    dl, dl
.text:00000001400BB6DF                 js      short loc_1400BB716
.text:00000001400BB6E1                 shr     rcx, 9
.text:00000001400BB6E5                 mov     rax, 7FFFFFFFF8h
.text:00000001400BB6EF                 and     rcx, rax
.text:00000001400BB6F2                 mov     rax, 98000000000h
.text:00000001400BB6FC                 sub     rcx, rax
.text:00000001400BB6FF                 mov     rax, [rcx]
.text:00000001400BB702                 test    al, 1
.text:00000001400BB704                 jz      short loc_1400BB713
.text:00000001400BB706                 mov     r8b, 80h
.text:00000001400BB709                 and     al, r8b
.text:00000001400BB70C                 cmp     al, r8b
.text:00000001400BB70F                 setnz   al
.text:00000001400BB712                 retn

免费评分

参与人数 2吾爱币 +6 热心值 +1 收起 理由
上帝无法宽恕我 + 1 估计石沉大海,毕竟不是什么问题都会给到满意回复,甚至不回复。阿门
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
上帝无法宽恕我 发表于 2020-10-22 15:36
提示: 作者被禁止或删除 内容自动屏蔽
EnterpriseSolu 发表于 2020-10-27 07:49
上帝无法宽恕我 发表于 2020-10-22 15:36
楼主你好,我的计算机配置是 内存4G,i3-2120,2010年底时候买的,,目前用的是 win7sp1 x64。

  最近 ...

C盘空间少了的,可以用diskgenius删除其它的磁盘分区,分配给C盘扩充空间
剩余10G,休眠文件4G,再加一点缓存4G,(内存容间的倍数),C盘几乎没什么空间了
4G内存是足够的,虚拟内存之类的用系统默认设定就可以了,不必要纠结,另外现在都是Ultimate版的满天飞,考虑更新家庭版为Ultimate版,也可能关系不大
我其实更倾向于整个硬盘一个分区,方便快速,分区是DOS时代的产物,方便检索,现在index服务都有了,检索很快,实在不行还有everything,也是秒级检索

免费评分

参与人数 1热心值 +1 收起 理由
上帝无法宽恕我 + 1 谢谢关心啊。。现在正在尝试中,看效果了。。。

查看全部评分

ekanshao 发表于 2020-9-22 13:14
披荆斩棘天使翼 发表于 2020-9-22 13:15
看不懂  学习了
ly847846556 发表于 2020-9-22 13:17
不明觉厉!顶一下  看不懂  学习了
不退伍的兵 发表于 2020-9-22 14:02
学习了一下!不太懂!
酒神chao 发表于 2020-9-22 14:04
先收藏,学习一下!!
fordland 发表于 2020-9-22 14:27
看不懂,不明觉厉!顶一下
plwt 发表于 2020-9-22 14:36

也看不懂,不明觉厉!顶一下
豫与遇 发表于 2020-9-22 14:49
不耻下问,敢问大佬,作用何在?
风吹淡淡凉 发表于 2020-9-22 14:51
很不明觉厉 系统下载了 这是谁做的 ?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 23:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表