首页
论坛
课程
招聘
[求助]Win7 64 MiIsAddressValid函数的疑问
2022-6-22 23:06 3307

[求助]Win7 64 MiIsAddressValid函数的疑问

2022-6-22 23:06
3307

今天在看MiIsAddressValid函数时碰到一奇怪的地方
看它计算PXE的偏移时一切正常 右移39位 得到PXE的Index(内核地址还有FFFF) 然后使用1FF 把头部的FFFF给去掉保留index 之后index×8+PXEbase 得到PXE的线性地址
然后在看计算PPE的时候就奇了怪了
先右移27位(>>30 ×8) 头部保留了FFFF(如果是内核地址) 完事直接and 1ffff8
这个8可以想到是为了对齐*8后计算出的偏移 那么往前在推8位得到pxe的偏移(ff8) 那么剩余的这个1ff该如何理解呢? 这边计算的不应该是PPE的offset么? 为什么会and 1ffff8 而不是ff8 呢?
图片描述


[2022冬季班]《安卓高级研修班(网课)》月薪两万班招生中~

收藏
点赞2
打赏
分享
最新回复 (1)
雪    币: 25
活跃值: 活跃值 (337)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
fdgs 活跃值 2022-6-22 23:29
2
0
好像知道咋回事了 这个base不是某个线性地址求出来的base  而是某个进程整体上的base  从一开始就想错了
游客
登录 | 注册 方可回帖
返回