首页
社区
课程
招聘
[求助] NtQuerySystemInformation 获取系统句柄问题
2020-5-24 19:30 4879

[求助] NtQuerySystemInformation 获取系统句柄问题

2020-5-24 19:30
4879

NtQuerySystemInformation SystemHandleInformation 获取系统句柄发现有些进程没有信息,进程PID都没有,有遇到过这样的问题没?


[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞0
打赏
分享
最新回复 (10)
雪    币: 4119
活跃值: (1500)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
Boring勇哥 2020-5-24 19:32
2
0
要看进程权限的
雪    币: 17
活跃值: (278)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
叁毛 1 2020-5-24 21:59
3
0
获取下调试特权
雪    币: 158
活跃值: (339)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lg好人 2020-5-24 23:21
4
0


我用了提权的 ,但是还是一样的效果

win10 64 系统

最后于 2020-5-24 23:22 被lg好人编辑 ,原因:
雪    币: 1790
活跃值: (2879)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
拍拖 2 2020-5-25 09:25
5
0
我记得好像是SYSTEM_HANDLE_INFORMATION返回的子结构SYSTEM_HANDLE_TABLE_ENTRY_INFO里的USHORT UniqueProcessId等在新的系统下会导致数值超出。好像会导致遍历时返回的ID有问题。
早ProcessHacker的源码里特别针对该问题在自己的驱动里重新实现了该功能。
雪    币: 158
活跃值: (339)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lg好人 2020-5-25 10:13
6
0

发现 进程ID 大于 65535 就不能获取,咋会这样呢

怎么获取所有进程呢?

最后于 2020-5-25 10:15 被lg好人编辑 ,原因:
雪    币: 12837
活跃值: (8998)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
hzqst 3 2020-5-25 10:32
7
0
lg好人 发现 进程ID 大于 65535 就不能获取,咋会这样呢怎么获取所有进程呢?
上驱动,具体参考ProcessHacker
雪    币: 158
活跃值: (339)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lg好人 2020-5-25 11:07
8
0
hzqst 上驱动,具体参考ProcessHacker
r3有办法解决没
雪    币: 12837
活跃值: (8998)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
hzqst 3 2020-5-25 12:19
9
1
lg好人 r3有办法解决没
typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX {    
	PVOID Object;    
	ULONG_PTR UniqueProcessId;    
	ULONG_PTR HandleValue;    
	ULONG GrantedAccess;    
	USHORT CreatorBackTraceIndex;    
	USHORT ObjectTypeIndex;    
	ULONG HandleAttributes;    
	ULONG Reserved;    
} SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX, *PSYSTEM_HANDLE_TABLE_ENTRY_INFO_EX;    
typedef struct _SYSTEM_HANDLE_INFORMATION_EX {    
	ULONG_PTR NumberOfHandles;    
	ULONG_PTR Reserved;    
	SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX Handles[1];    
} SYSTEM_HANDLE_INFORMATION_EX, *PSYSTEM_HANDLE_INFORMATION_EX;


最后于 2020-5-25 12:22 被hzqst编辑 ,原因:
雪    币: 4119
活跃值: (1500)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
Boring勇哥 2020-5-25 12:31
10
0
PSYSTEM_HANDLE_INFORMATION_EX shi = nullptr;
DWORD tmp = 0; size = 0; NTSTATUS stat;
while (true) {
   if ((stat = NtQuerySystemInformation(SystemExtendedHandleInformation, shi, size, &tmp)) != STATUS_INFO_LENGTH_MISMATCH)
       break;
   if (shi)delete[] reinterpret_cast<LPVOID>(shi);
   size = tmp + sizeof(SYSTEM_HANDLE_INFORMATION_EX) * 50;
   shi = reinterpret_cast<PSYSTEM_HANDLE_INFORMATION_EX>(new char[size]);
}

//获取失败
if (!NT_SUCCESS(stat)) {
    if (shi)delete[] reinterpret_cast<LPVOID>(shi);
    return;
}
//成功




雪    币: 158
活跃值: (339)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lg好人 2020-5-25 13:11
11
0
现在 可以了,谢谢
游客
登录 | 注册 方可回帖
返回