首页
社区
课程
招聘
[原创]x64 windows从MmPfnData中枚举进程以及真实CR3
发表于: 2023-8-18 12:41 18224

[原创]x64 windows从MmPfnData中枚举进程以及真实CR3

2023-8-18 12:41
18224

大概的思路:

当涉及到DirectoryTableBase的PTE Address时,可以通过计算得出。根据页表自映射的信息,很容易确定对应的PTE Address是PXE加上自映射页表的索引乘以8所得。

我们的目标是比较每个pfn的pte address。如果相等,那就意味着该pfn是CR3所对应的物理地址。

此外,根据前辈们的文章,可以得知MMPFN的第一项是经过加密处理的Eprocess

有此得出EPROCESS和Dirbase

完整代码:f22K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6d9P5i4c8Z5L8%4u0F1k6r3!0J5j5h3&6Q4x3V1k6W2L8Y4g2E0i4K6g2X3M7X3g2S2L8q4)9#2k6X3c8A6M7X3u0S2M7$3g2Q4x3V1j5`.


相关引用:


[注意]APP应用上架合规检测服务,协助应用顺利上架!

收藏
免费 2
支持
分享
最新回复 (17)
雪    币: 889
活跃值: (4118)
能力值: ( LV6,RANK:98 )
在线值:
发帖
回帖
粉丝
2
EAC : 更新了个寂寞?
2023-8-18 14:27
0
雪    币: 12857
活跃值: (9217)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
3
EAC:已举办
2023-8-18 22:02
1
雪    币: 2186
活跃值: (4837)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
2023-8-19 19:20
0
雪    币: 4044
活跃值: (31156)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
2023-8-19 20:17
1
雪    币: 46
活跃值: (1755)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我测试了几天,获取cr3不是很准,比如process.cr3=0x3d188000,从上面的代码获取偶尔会0x3d187000或者是0x3d189000,不是很懂。
2023-8-22 13:32
0
雪    币: 3765
活跃值: (4951)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
cheating 我测试了几天,获取cr3不是很准,比如process.cr3=0x3d188000,从上面的代码获取偶尔会0x3d187000或者是0x3d189000,不是很懂。
再找个地址读下数据做个验证就行了
2023-8-23 16:36
0
雪    币: 46
活跃值: (1755)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
syser 再找个地址读下数据做个验证就行了
但是这种验证也不是很准确。
2023-8-23 21:27
0
雪    币: 3809
活跃值: (3247)
能力值: ( LV8,RANK:147 )
在线值:
发帖
回帖
粉丝
9
mark
2023-8-25 18:48
0
雪    币: 46
活跃值: (1755)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
上面我说的那个CR3出错混乱的问题解决了。
2023-8-26 12:40
0
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
cheating 上面我说的那个CR3出错混乱的问题解决了。
怎么解决的
2023-9-11 10:56
0
雪    币: 1832
活跃值: (5387)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
hzqst EAC:已举办
举办恭事?
2023-9-16 11:50
1
雪    币: 1981
活跃值: (4235)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
感谢分享
2023-9-17 12:11
0
雪    币: 2
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
enum_process_dirbase当在被映射的驱动中调用这个方法就无法获取dirbase,很难受,各项参数函数地址都是正确的,可能是MmGetPhysicalMemoryRanges()的返回出了问题,不知道能不能解决
2024-5-21 18:15
0
雪    币: 41
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
auto decrypted_eprocess = ((cur_mmpfn->flags | 0xF000000000000000) >> 0xd) | 0xFFFF000000000000;
这个是从哪个文章了解的,想拜读一下
2024-11-6 17:00
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
蓝屏
2024-12-23 19:54
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
这个是代码在1809上可以跑,22h2就蓝屏,不知道哪里做适配,
uintptr_t get_kernel_base() {
       const auto idtbase = *reinterpret_cast<ULONG64*>(__readgsqword(0x18) + 0x38);
       const auto descriptor_0 = *reinterpret_cast<ULONG64*>(idtbase);
       const auto descriptor_1 = *reinterpret_cast<ULONG64*>(idtbase + 8);
       const auto isr_base = ((descriptor_0 >> 32) & 0xFFFF0000) + (descriptor_0 & 0xFFFF) + (descriptor_1 << 32);
       auto align_base = isr_base & 0xFFFFFFFFFFFFF000;

       for (; ; align_base -= 0x1000) {
               for (auto* search_base = reinterpret_cast<UCHAR*>(align_base); search_base < reinterpret_cast<UCHAR*>(align_base) + 0xFF9; search_base++) {
//不知道这里是什么意思,是要跟不同版本系统做适配吗?
                       if (search_base[0] == 0x48 &&
                               search_base[1] == 0x8D &&
                               search_base[2] == 0x1D &&
                               search_base[6] == 0xFF) {
                               const auto relative_offset = *reinterpret_cast<int*>(&search_base[3]);
                               const auto address = reinterpret_cast<ULONG64>(search_base + relative_offset + 7);
                               if ((address & 0xFFF) == 0) {
                                       if (*reinterpret_cast<USHORT*>(address) == 0x5A4D) {
                                               return address;
                                       }
                               }
                       }
               }
       }
}
2024-12-23 23:36
0
雪    币: 14
活跃值: (857)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
mb_eowrspwy 这个是代码在1809上可以跑,22h2就蓝屏,不知道哪里做适配, uintptr_t get_kernel_base() { const auto idtbase = *reinterpret_ ...
就是获取ntos基址,你换ntquerysysteminformation获取一样的
2025-1-1 18:23
0
游客
登录 | 注册 方可回帖
返回