zqw2006
驱动牛犊
驱动牛犊
  • 注册日期2006-07-07
  • 最后登录2009-02-02
  • 粉丝0
  • 关注0
  • 积分430分
  • 威望44点
  • 贡献值0点
  • 好评度43点
  • 原创分0分
  • 专家分0分
阅读:1335回复:3

求助:对进程上下文的困惑.哪位大哥指点一下。

楼主#
更多 发布于:2007-02-06 12:29
  在一个进程上下文 KeAttachProcess 另一进程后,接着 PsGetCurrentProcessId,仍然是原进程的ID,但是PsGetCurrentProcess却是所附加进程的EPROCESS,不知道这该怎么理解。
zqw2006
驱动牛犊
驱动牛犊
  • 注册日期2006-07-07
  • 最后登录2009-02-02
  • 粉丝0
  • 关注0
  • 积分430分
  • 威望44点
  • 贡献值0点
  • 好评度43点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-02-06 23:22
晕了,是我提的问题太初级嗎?没有哪位大哥解答一下。
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2007-02-07 20:50
反汇编一下就清楚了,结合windbg,看一下KTHREAD的结构
PsGetCurrentProcessId() {PsGetCurrentThread()->Cid.UniqueProcess;}
PsGetCurrentProcess(){PsGetCurrentThread()->ApcState.Process;}
KeAttachProcess把ApcState.Process换成了另一个Process,而Cid.UniqueProcess没有改变
所以会有你看到的情况
zqw2006
驱动牛犊
驱动牛犊
  • 注册日期2006-07-07
  • 最后登录2009-02-02
  • 粉丝0
  • 关注0
  • 积分430分
  • 威望44点
  • 贡献值0点
  • 好评度43点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-02-08 09:58
多谢版主大哥亲临指点,使在下知道原因所在。我知道做这个不懂调试,反汇编,永远都是知其然不知其所以然,所以小弟正在对这方面学习之中。
游客

返回顶部