登录  | 立即注册

游客您好!登录后享受更多精彩

查看: 171|回复: 2

x64 windows从MmPfnData中枚举进程以及真实CR3

[复制链接]

68

主题

2

回帖

91

积分

网站编辑

积分
91
发表于 2024-12-23 20:27:16 | 显示全部楼层 |阅读模式
大概的思路:
当涉及到DirectoryTableBase的PTE Address时,可以通过计算得出。根据页表自映射的信息,很容易确定对应的PTE Address是PXE加上自映射页表的索引乘以8所得。
1
static const uint64_t cr3_ptebase = self_mapidx * 8 + pxe_base;

我们的目标是比较每个pfn的pte address。如果相等,那就意味着该pfn是CR3所对应的物理地址。
1
if (cur_mmpfn->pte_address != cr3_ptebase) continue;

此外,根据前辈们的文章,可以得知MMPFN的第一项是经过加密处理的Eprocess
1
auto decrypted_eprocess = ((cur_mmpfn->flags | 0xF000000000000000) >> 0xd) | 0xFFFF000000000000;

有此得出EPROCESS和Dirbase
951184_PZFCRSUANZSKGQX.jpg

90

主题

9

回帖

407

积分

管理员

积分
407
发表于 2024-12-24 20:08:24 | 显示全部楼层
回复

使用道具 举报

90

主题

9

回帖

407

积分

管理员

积分
407
发表于 2024-12-24 22:29:10 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|断点社区 |网站地图

GMT+8, 2025-1-18 19:00 , Processed in 0.084728 second(s), 29 queries .

Powered by XiunoBBS

Copyright © 2001-2025, 断点社区.

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