首页
社区
课程
招聘
[讨论]获取指定进程里的所有线程
发表于: 2008-6-18 15:12 8321

[讨论]获取指定进程里的所有线程

2008-6-18 15:12
8321
要想获取指定进程里的所有线程,除用Toolhelp实现还有什么其它的方法没?
附Toolhelp实现:
        HANDLE hSnapshot = CreateToolhelp32Snapshot(
                TH32CS_SNAPTHREAD, dwProcessID);

        if (hSnapshot != INVALID_HANDLE_VALUE) {

                THREADENTRY32 te = { sizeof(te) };
                BOOL fOk = Thread32First(hSnapshot, &te);
                for (; fOk; fOk = Thread32Next(hSnapshot, &te)) {

                        if (te.th32OwnerProcessID == dwProcessID) {

                                HANDLE hThread = OpenThread(THREAD_SUSPEND_RESUME,
                                        FALSE, te.th32ThreadID);
                                }
                                CloseHandle(hThread);
                        }
                }
                CloseHandle(hSnapshot);
        }

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 375
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
用驱动
遍历一下KPROCESS里面的ThreadListHead就可以了。
2008-6-18 20:09
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
3
顶LS的
2008-6-18 20:33
0
雪    币: 288
活跃值: (112)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
4
psapi...
2008-6-18 20:39
0
雪    币: 8599
活跃值: (5065)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
PSAPI好像不可以哦。
2008-6-19 09:27
0
雪    币: 375
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
6
那就去枚举csrss的句柄表。
得到线程句柄之后,用NtQueryInformationThread,THREAD_INFORMATION_CLASS
用ThreadBasicInformation,在得到的THREAD_BASIC_INFORMATION结构中比较ClientId
里面的进程ID就可以了。

理论上可以,我没实践,不知道实际情况如何。
2008-6-19 12:51
0
游客
登录 | 注册 方可回帖
返回
//