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

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

2022-6-22 23:06
5732

今天在看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 呢?
图片描述


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

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