b917893200 发表于 2020-9-22 12:27

win7sp1x64内存管理

以下数据来源于 ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/
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 , 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 , 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,
.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,
.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

:lol

上帝无法宽恕我 发表于 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,也是秒级检索

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

先收藏,学习一下!!{:1_921:}

fordland 发表于 2020-9-22 14:27

看不懂,不明觉厉!顶一下

plwt 发表于 2020-9-22 14:36


也看不懂,不明觉厉!顶一下

豫与遇 发表于 2020-9-22 14:49

不耻下问,敢问大佬,作用何在?

风吹淡淡凉 发表于 2020-9-22 14:51

很不明觉厉 系统下载了 这是谁做的 ?
页: [1] 2
查看完整版本: win7sp1x64内存管理