能力值:
( LV3,RANK:20 )
|
-
-
2 楼
4、handle->eprocess
暂未发现直接转换的方法,可由handle->pid->eprocess。
这个我来完善吧.
st = ObReferenceObjectByHandle (ProcessHandle,
PROCESS_TERMINATE,
PsProcessType,
KeGetPreviousModeByThread(&Self->Tcb),
&Process,
NULL);
6、eprocess->handle
暂未发现直接转换的方法,可由eprocess->pid->handle。
这个也完善下.
Status = ObOpenObjectByPointer(
Process,
Attributes,
&AccessState,
0,
PsProcessType,
PreviousMode,
&Handle
);
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
嗯,这个要是能有个系统的总结还是对我等菜鸟比较有帮助的
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
留个记号...
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
标记,以后学习
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
很好 很实用 哈哈
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
lz很体贴啊
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
这个很有用
mark一下
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
好东西 学习下
|
能力值:
( LV3,RANK:20 )
|
-
-
10 楼
根据pid可以从pspcidtable中找到eprocess
根据handle可以使用ObReferenceObjectByHandle找到eprocess,或者自己实现ObRef,直接从进程HandleTable里边找到eprocess
|
能力值:
( LV3,RANK:20 )
|
-
-
11 楼
嗯,感谢楼上几位的补充,我也学习了~
|
能力值:
( LV4,RANK:50 )
|
-
-
12 楼
OBJECT_ATTRIBUTES 这个结构里成员
PUNICODE_STRING ObjectName
这个ObjectName指的是什么? xx.exe吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
记一下。这个是好东西。还是新手
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
mark.....
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
我也谈谈我对以上内容的理解。
这是句柄、句柄表、对象三者间的关系。
PspCidTable是全局的句柄表,用来存放进程、线程对象体,通过进、线程的pid作为索引可以在PspCidTable句柄表中找到pid所属进、线程的对象体(既EPROCESS或ETHREAD)。
其次,在进程内部,以handle作为索引,可以在进程的句柄表(ObjectTable)中找到handle代表的对象头,对象头+0x18就可得到对象体。
以上内容全部可以通过在windbg下验证。
|
能力值:
( LV5,RANK:70 )
|
-
-
16 楼
留下脚印...
|
能力值:
( LV5,RANK:60 )
|
-
-
17 楼
标记,以后来看。。谢谢
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
标记,以后用
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
不错学习了......
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
不错。加油。mark
|
能力值:
( LV4,RANK:50 )
|
-
-
21 楼
MARK一个 呵呵 会用得着的。
|
|
|