首页
社区
课程
招聘
[原创]在三环下获取指定进程中所有的句柄信息,并列出内核对象地址
发表于: 2023-5-20 13:16 8420

[原创]在三环下获取指定进程中所有的句柄信息,并列出内核对象地址

2023-5-20 13:16
8420
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <Windows.h>
#include <winternl.h>
 
#define SystemHandleInformation 0x10
#define SystemHandleInformationSize 1024 * 1024 * 20
 
using fNtQuerySystemInformation = NTSTATUS(WINAPI*)(
    ULONG SystemInformationClass,
    PVOID SystemInformation,
    ULONG SystemInformationLength,
    PULONG ReturnLength
);
 
// handle information
typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO
{
    USHORT UniqueProcessId;
    USHORT CreatorBackTraceIndex;
    UCHAR ObjectTypeIndex;
    UCHAR HandleAttributes;
    USHORT HandleValue;
    PVOID Object;
    ULONG GrantedAccess;
} SYSTEM_HANDLE_TABLE_ENTRY_INFO, *PSYSTEM_HANDLE_TABLE_ENTRY_INFO;
 
// handle table information
typedef struct _SYSTEM_HANDLE_INFORMATION
{
    ULONG NumberOfHandles;
    SYSTEM_HANDLE_TABLE_ENTRY_INFO Handles[1];
} SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION;
 
int main()
{
    ULONG returnLength = 0;
    fNtQuerySystemInformation NtQuerySystemInformation = (fNtQuerySystemInformation)GetProcAddress(GetModuleHandle(L"ntdll"), "NtQuerySystemInformation");
    PSYSTEM_HANDLE_INFORMATION handleTableInformation = (PSYSTEM_HANDLE_INFORMATION)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, SystemHandleInformationSize);
    NtQuerySystemInformation(SystemHandleInformation, handleTableInformation,SystemHandleInformationSize, &returnLength);
 
    for (int i = 0; i < handleTableInformation->NumberOfHandles; i++)
    {
        SYSTEM_HANDLE_TABLE_ENTRY_INFO handleInfo = (SYSTEM_HANDLE_TABLE_ENTRY_INFO)handleTableInformation->Handles[i];
        //指定进程的PID, 16进制的形式
        if (handleInfo.UniqueProcessId == 0x1234)
        {
            printf_s("Handle 0x%x at 0x%p, PID: %x\n", handleInfo.HandleValue, handleInfo.Object, handleInfo.UniqueProcessId);
        }
        else
        {
            break;
        }
    }
 
    return 0;
}

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

最后于 2023-5-20 21:59 被nb_cracker编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 3535
活跃值: (31016)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2023-5-20 16:13
1
雪    币: 7457
活跃值: (4186)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
怎么这么像CHATGPT的文章
2023-5-20 18:33
0
雪    币: 3663
活跃值: (4841)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
htpidk 怎么这么像CHATGPT的文章
不是像,就是
2023-5-20 18:48
0
雪    币: 6124
活跃值: (4716)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
5
你这个代码是有问题的,不像是验证过的
2023-8-27 04:07
0
雪    币: 281
活跃值: (704)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
nb cracker 
2023-8-27 10:26
0
游客
登录 | 注册 方可回帖
返回
//