首页
社区
课程
招聘
[讨论]IoGetCurrentProcess和PsLookupProcessByProcessId取得的EPROCESS的区别
发表于: 2011-12-26 14:52 9949

[讨论]IoGetCurrentProcess和PsLookupProcessByProcessId取得的EPROCESS的区别

2011-12-26 14:52
9949
为什么在PsSetCreateProcessNotifyRoutine的callback里面使用IoGetCurrentProcess得到的EPROCESS总是EXplorer的EPROCESS,而使用PsLookupProcessByProcessId得到的EPROCESS却是正确的,

而在文件过滤驱动的那些处理IRP的函数里面却是使用IoGetCurrentProcess得到EPROCESS


[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 49
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
CurrentProcess
一个是ByProcessId
2011-12-26 17:58
0
雪    币: 136
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
求大牛指点
2011-12-26 20:02
0
雪    币: 287
活跃值: (578)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
CurrentProcess的你要看是调用CurrentProcess获取EPROCESS的是那个线程是属于哪个进程。
系统当中有一张表,每个进程ID号和线程ID都是这表中的索引,这个表记录的就是指向EPROCESS和ETHREAD的对象头,这也是系统中所有的进程和线程不同ID的原因,PsLookupProcessByProcessId就是通过ID索引在这张表中找到对象的
2011-12-26 21:01
0
雪    币: 75
活跃值: (623)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
PsSetCreateProcessNotifyRoutine设置的回调 实在 NtCreateProcess里面调用, NtCreateProcess都是创建进程的父进程调用的。。直接用IoGetCurrentProcess获取的是父进程的EPROCESS,而不是被创建的子进程的EPROCESS
2011-12-27 11:31
0
雪    币: 12
活跃值: (767)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
3Q
2011-12-27 13:10
0
游客
登录 | 注册 方可回帖
返回
//