首页
社区
课程
招聘
[原创]简单的早期"EAC将bigpools导出以寻找可能映射的驱动程序"利用清空
发表于: 2025-1-24 13:36 7376

[原创]简单的早期"EAC将bigpools导出以寻找可能映射的驱动程序"利用清空

2025-1-24 13:36
7376

内存区域划分布局已有资料表述

PoolBigPageTable 是 Windows 操作系统内核中一个非常重要的数据结构,它用来管理和跟踪大页内存(Big Pages)的分配和使用情况。
以下均以WIN10 21H2为例
图片描述
如上图所示
在IDA中 "ExFreeHeapPool"函数有关于PoolBigPageTable"表中"对于指定地址如何查找其在表中的位置.

代码中myself_expoolTag为实验假设开辟的内存,PoolBigPageTableSize_val为系统全局变量大小
通过如上代码运算可以得到指定index 之后根据上述微软的计算过程
以及对应每一块"内存包"的结构体:

上述代码左侧的式子得到之后,便与自己开辟的地址进行比较如果不一样则index+1亦或者左侧代码+0x18到下一个正常2次循环便可以得到指定地址

如果不按照2次及以下查找也可以像上述代码一样暴力.在此利用不再赘述
最后你便可以选择抹去此表中的信息块

注意:算法在不同的微软系统版本不同,请自行查阅.

index = (((0x9E5F * (unsigned __int64)(unsigned int)((ULONG64)myself_expoolTag >> 0xC)) >> 0x20) ^
    (0x9E5F * (unsigned __int64)(unsigned int)((ULONG64)myself_expoolTag >> 0xC))) & (unsigned int)(*(ULONG64*)PoolBigPageTableSize_val - 1);
index = (((0x9E5F * (unsigned __int64)(unsigned int)((ULONG64)myself_expoolTag >> 0xC)) >> 0x20) ^
    (0x9E5F * (unsigned __int64)(unsigned int)((ULONG64)myself_expoolTag >> 0xC))) & (unsigned int)(*(ULONG64*)PoolBigPageTableSize_val - 1);
// 定义 Pool_Info 结构体
typedef struct _Pool_Info {
    volatile ULONGLONG Va;                                                  //0x0
    ULONG Key;                                                              //0x8
    ULONG Pattern : 8;                                                        //0xc
    ULONG PoolType : 12;                                                      //0xc
    ULONG SlushSize : 12;                                                     //0xc
    ULONGLONG NumberOfBytes;
} Pool_Info, * pPool_Info;
// 定义 Pool_Info 结构体
typedef struct _Pool_Info {
    volatile ULONGLONG Va;                                                  //0x0
    ULONG Key;                                                              //0x8
    ULONG Pattern : 8;                                                        //0xc
    ULONG PoolType : 12;                                                      //0xc
    ULONG SlushSize : 12;                                                     //0xc
    ULONGLONG NumberOfBytes;
} Pool_Info, * pPool_Info;
*(_QWORD *)(PoolBigPageTable_buffer + 24i64 * (unsigned int)index) != memory_viraddress
*(_QWORD *)(PoolBigPageTable_buffer + 24i64 * (unsigned int)index) != memory_viraddress
ULONG64 End_PoolBigPageTable = *(ULONG64*)PoolBigPageTable_val + *(ULONG64*)PoolBigPageTableSize_val * 0x18;
                fix_pool = *(ULONG64*)PoolBigPageTable_val;
                while (fix_pool < End_PoolBigPageTable)
                {
                     
                    tempPoolInfo = (pPool_Info)fix_pool;
                    if (tempPoolInfo->Va == 0)
                    {
                        fix_pool += 0x18;
                        continue;
                    }
                    if (tempPoolInfo->Va == (ULONG64)myself_expoolTag)
                    {
                        DbgPrint("找到匹配的修复信息地址,地址为: %llx\r\n", fix_pool);
                        isFound = true;
                        break;
                    }
                    fix_pool += 0x18;
                }
ULONG64 End_PoolBigPageTable = *(ULONG64*)PoolBigPageTable_val + *(ULONG64*)PoolBigPageTableSize_val * 0x18;
                fix_pool = *(ULONG64*)PoolBigPageTable_val;
                while (fix_pool < End_PoolBigPageTable)

[注意]看雪招聘,专注安全领域的专业人才平台!

收藏
免费 56
支持
分享
最新回复 (31)
雪    币: 1899
活跃值: (4998)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
牛逼牛逼
2025-1-24 23:57
0
雪    币: 2055
活跃值: (511)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
1
2025-1-25 06:07
0
雪    币: 914
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
111
2025-1-25 09:53
0
雪    币: 3034
活跃值: (4229)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢你分享这么好的资源!
2025-1-25 12:50
0
雪    币: 105
活跃值: (4895)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
666666666666666666666
2025-1-28 00:46
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
tyty
2025-1-29 12:59
1
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
66666666666666666
2025-2-3 00:11
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
2
2025-2-5 10:32
0
雪    币: 675
活跃值: (1390)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
66666666……
2025-2-6 04:38
0
雪    币: 1021
活跃值: (1553)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
66666666……
2025-2-6 10:26
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
我来看看!!
2025-2-6 15:16
0
雪    币: 115
活跃值: (975)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
感谢你分享这么好的资源!
2025-2-6 15:52
0
雪    币: 8
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
我来看看!!
2025-2-6 15:56
0
雪    币: 325
活跃值: (256)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
666-999
2025-2-6 20:48
0
雪    币: 213
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
我来看看!!
2025-2-7 09:49
0
雪    币: 402
活跃值: (4201)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
我来看看!!
2025-2-7 16:00
0
雪    币: 122
活跃值: (331)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
具体看看思路!
2025-2-7 20:09
0
雪    币: 32
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
学习下
2025-2-7 20:12
0
雪    币: 5
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
20
学习下
2025-2-7 21:49
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
21
学习下
6天前
0
雪    币: 7
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
1
4天前
0
雪    币: 74
活跃值: (833)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
学习下
4天前
0
雪    币: 1110
活跃值: (1630)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
看看!
4天前
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
看看吧
4天前
0
游客
登录 | 注册 方可回帖
返回