能力值:
( LV3,RANK:20 )
|
-
-
2 楼
V大语录]:
Quote:
killvxk的驱动查进程:
1.native api获得进程表a
2.通过activelist获得进程表b
3.通过pspCidTable获得进程表c
4.通过handletablelisthead获得进程表d
5.通过csrss的handletable用2种方法枚举获得进程表e和f
6.通过扫描当前进程的handletable获得进程表g
7.遍历表c的每一个进程的SessionProcessLinks获得进程表h
8.遍历表c的每一个进程Vm.WorkingSetExpansionLinks获得进程表i
9.通过Typelist分别取process和thread的表j和表k
10.通过表k得到进程表l
11.搜索内存中的threadobject和processobject得到进程表m
12.通过Wait/Dispatch得到进程表n
13.如果系统是Win2003以上遍历表c的每一个进程的MmProcessLinks得到表o
14.综合上面的进程表得到表p
15.对表p每一个进程做HandleTable,Vm.WorkXX,MmProcessXX,SessionProcessList扫描得到表q
16.枚举HWNDHandle得到进程表r
17.枚举JobObject得到表s
18.综合得表t,此时枚举结束~~
动态部分:
KiReadyThread
和KiSwapContext的钩子
还有KiService钩子
还有CreateProcessNotifyRoutine和CreateThreadNotifyRoutine
NtCreateThread钩子
动态维护一张表,静态枚举结束后综合两表~
这些方法找eprocess,如果是句柄的则ObRef一下得到eprocess,然后把链接到相应位置就行了吧?
其实就是枚举的方法的问题.
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
你在这贴的时候
http://bbs.pediy.com/showthread.php?t=119113
我就说过方法了.
只是你第一个参数写错了.建议仔细看一下我原帖的描述.
Ps:PsActiveProcessHead其实很好得到.因为它就是SYSTEM进程的前一个.
|
|
|