Windows进程描述符

时间:2009-07-20 10:53:35

标签: windows device-driver kernel

对于双链接进程列表,存在Flink和Blink(前向链接和后向链接)。有一个进程标识符。所有这些都打包在一个引用为PEPROCESS或_KPROCESS的结构中。但是这些结构在哪里以及其他元素是什么?

或者,如果答案既不简短也不简单,如果不在文档或头文件中,哪里可以找到引用? (这是我看过的地方,可能忽略了一些东西。)

3 个答案:

答案 0 :(得分:2)

EPROCESS reference

  

EPROCESS结构是不透明的   作为过程的结构   一个过程的对象。

     

一些例程,例如   PsGetProcessCreateTimeQuadPart,使用   EPROCESS识别流程   操作。司机可以使用   PsGetCurrentProcess例程获取   指向进程对象的指针   目前的流程可以使用了   ObReferenceObjectByHandle例程   获取指向进程对象的指针   与指定的相关联   处理。 PsInitialSystemProcess   全局变量指向该过程   系统过程的对象。

     

请注意,进程对象是一个   对象管理器对象。司机应该   使用对象管理器例程,如   ObReferenceObject和   ObDereferenceObject维护   对象的引用计数。

这意味着,您不应该关心流程结构的成员。然而,有一些资料详细说明了工艺结构的布局。

book更详细地描述了各个成员的身份。

答案 1 :(得分:0)

EPROCESS结构记录在windows调试符号中。

使用windbg连接到内核时,假设您已正确设置调试符号,发出命令“dt nt!_EPROCESS”应该为您提供特定于您附加到的内核版本的EPROCESS结构的布局

答案 2 :(得分:0)

EPROCESS结构特别不透明,只能通过检查构建调试符号导出的数据类型在每个构建中找到。

所以你可以做到以下几点:

  1. 下载volatility here
  2. 如果您愿意,可以在其中一个示例内存转储或您自己的转储上运行volatility
  3. 使用volshell.py插件运行

    dt('_EPROCESS')

  4. 这将产生EPROCESS结构的输出和Windows内核中的各种其他结构

    或者你可以看到结构内容here

    This也可能有用