x64内核研究04_分页_BiliBili-x64内核研究04_分页
热门回复:
- 比屋定·真帆:这是我见过的定位随机化页表基址的第N种方法了,hzqst在看雪的一个帖子总结了两种。tendasat在MmGetVirtualForPhysical内特征定位页表基址,腾讯用指向当前cr3的pml4e index通过计算得到页表基址(页表自映射)。另外还有某位不方便透露名字的大神在MmIsAddressValid内特征定位,应该和tendasat的方法大同小异。而这几种方法是经过广泛使用得到验证,基本可靠的。UP主的方法看起来是通过搜索在NT模块搜索页表基址出现的位置,用MmMapViewInSystemCache或别的api(只要api引用了页表基址)来特征定位,这个和之前两种特征定位的原理应该还是大同小异,而通过NT模块+固定偏移来定位,似乎又是一种新方法了
- 十年伦哥粉不请自来:请教各位大神
kd> !pte 0
VA 0000000000000000
PXE at FFFF954AA552A000 PPE at FFFF954AA5400000 PDE at FFFF954A80000000 PTE at FFFF950000000000
kd> !pte FFFF950000000000
VA 0000000000000000
PXE at FFFF954AA552A000 PPE at FFFF954AA5400000 PDE at FFFF954A80000000 PTE at FFFF950000000000
如果把0地址的PTE当成普通虚拟地址,用!pte解析,结果怎么是一模一样的,不应该是FFFF950000000000的PTE是FFFF954A80000000么???
- madderr:这玩意在MmIsAddressValid这个函数里有,而且里面也有一套微软自己的算法,算PTE的,里面那个很大的立即数就是pte_base
- mydvdf:日常打卡[黑洞]