首页
社区
课程
招聘
[求助]ring3 遍历系统内核线程
发表于: 2008-12-22 12:22 8571

[求助]ring3 遍历系统内核线程

2008-12-22 12:22
8571
通过看windsun兄的360解题代码,从System进程出发,遍历system进程的线程链表获得驱动内核线程。  关于SYSTEM这个内核进程(内核不是没有进程这概念?有资料说内核只是一堆线程集合提供的服务)的资料哪里来的,哪本书上有。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 1262
活跃值: (770)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
自己帮自己顶,自己回答了。
PsCreateSystemThread函数有个可选参数ProcessHandle
ddk定义如下:
Specifies an open handle for the process in whose address space the thread is to be run. The caller’s thread must have PROCESS_CREATE_THREAD access to this process. If this parameter is not supplied, the thread will be created in the initial system process. This value should be NULL for a driver-created thread. Use the NtCurrentProcess macro to specify the current process.
再翻翻wrk看看实现就更清楚了
NTSTATUS PsCreateSystemThread{...
ProcessPointer = NULL;
    if (ARGUMENT_PRESENT(ProcessHandle)) {
        SystemProcess = ProcessHandle;
    } else {
        SystemProcess = NULL;
        ProcessPointer = PsInitialSystemProcess;
    }
PspCreateThread(...)
...}
2009-1-11 14:23
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
3
和ProcessHandle 没任何关系
2009-1-12 00:56
0
雪    币: 354
活跃值: (10)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
4
楼主不懂装懂。。。
2009-1-12 09:20
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
5
支持楼主 bs#4  哈哈~
2009-1-12 11:48
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
6
我是来顶炉子的....
2009-1-12 12:32
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
7
看了三遍也不知道楼主想问什么,
2009-1-12 15:11
0
雪    币: 400
活跃值: (1309)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
http://bbs.pediy.com/showthread.php?t=79949
2009-1-12 16:30
0
游客
登录 | 注册 方可回帖
返回
//