首页
社区
课程
招聘
未解决 [求助][求助]关于遍历全局句柄表区分进程和线程
发表于: 2023-6-22 19:32 5354

未解决 [求助][求助]关于遍历全局句柄表区分进程和线程

2023-6-22 19:32
5354

问题是这样的,在win11系统下,我想通过PspCidTable遍历全局的句柄表,这里面应该有线程和进程句柄,这个很容易然后我想找到了所有的句柄后想要区分哪个是线程和哪个这个句柄是进程句柄还是线程句柄,我尝试通过Table_Entry检测,可是发现好像有点进程也没有Table_Entry,新手上路求大神指教啊

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
for (i = 0; i < 1024; i++)
{
    if (MmIsAddressValid((PVOID64)((PULONG64)TableLevel2)[i]))
    {
        for (j = 0; j < 512; j++)
        {
             
            if (MmIsAddressValid(((ULONG64)TableLevel2[i][j].Object) >> 0x10 | 0xFFFF000000000000 & 0xFFFFFFFFFFFFFFF0))
            {
 
                HandleAddr = ((ULONG64)TableLevel2[i][j].Object) >> 0x10 | 0xFFFF000000000000 & 0xFFFFFFFFFFFFFFF0;
                if (MmIsAddressValid(*(PULONG64)(HandleAddr + 0x570)))
                {
                    ImageFileName = (PCHAR)((ULONG64)HandleAddr + 0x5a8);
                    DbgPrint("进程镜像名:%s\n", ImageFileName);
                }
                else if (MmIsAddressValid(*(PULONG64)(HandleAddr + 0x220)))
                {
                    ImageFileName = (PCHAR)((ULONG64) * (PULONG64)(HandleAddr + 0x220) + 0x5a8);
                    DbgPrint("----ETHREAD: %x, 所属进程:%s,\n", HandleAddr, ImageFileName);
                }
                else
                {
                    __debugbreak();
                    DbgPrint("不属于任何进程或线程\n");
                }

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

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 268
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
还有我更改ImageFileName的类型但是还是出现有好多名字是乱码
2023-6-22 19:47
0
雪    币: 12876
活跃值: (9342)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
3

Are you looking for: ExEnumHandleTable?

最后于 2023-6-22 23:33 被hzqst编辑 ,原因:
2023-6-22 23:32
0
游客
登录 | 注册 方可回帖
返回