• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

EPROCESS 进程/线程优先级 句柄表 GDT LDT 页表 《寒江独钓》内

mysql 搞代码 4年前 (2022-01-09) 26次浏览 已收录 0个评论

在学习笔记(1)中,我们学习了IRP的数据结构的相关知识,接下来我们继续来学习内核中很重要的另一批数据结构: EPROCESS/KPROCESS/PEB。把它们放到一起是因为这三个数据结构及其外延和windows中进程的表示关系密切,我们在做进程隐藏和进程枚举的时候一定会涉

在学习笔记(1)中,我们学习了IRP的数据结构的相关知识,接下来我们继续来学习本文来源gao.dai.ma.com搞@代*码#网内核中很重要的另一批数据结构: EPROCESS/KPROCESS/PEB。把它们放到一起是因为这三个数据结构及其外延和windows中进程的表示关系密切,我们在做进程隐藏和进程枚举的时候一定会涉及到这3类数据结构,所以这里有必要及时做一下总结,做个学习笔记,理清思路。

《windows 内核原理与实现》 — 潘爱民

《深入解析windows操作系统(第4版,中文版)》 — 潘爱民

《Windows核心编程(第四版)》中文版

首先我们来看一张windows的内核分布图,我们之后要讲的执行体和内核层都在上面。

每个windows进程都是由一个执行体进程块(EPROCESS)块来表示的。”EPROCESS块中除了包含许多与进程有关的属性之外,还包含和指向许多其他的相关数据结构”(这也是为什么能利用EPROCESS进行进程枚举的原因)。例如,每个进程都有一个或多个线程,这些线程由执行体线程块(ETHREAD)来表示。EPROCESS块和相关的数据结构位于系统空间中,不过,进程环境块(PEB)是个例外。它位于进程地址空间中(因为它包含一些需要由用户模式代码来修改的信息)。

除了EPROCESS块以外,windows子系统进程(Csrss.exe)为每个windows进程维护了一个类似的结构。而且,windows子系统的内核部分(Win32k.sys)有一个针对每个进程的数据结构(KPROCESS),当一个线程第一次调用windows的USER或GDI函数(它们在内核模式中实现的)时,此数据结构就会被创建。在学习的一开始,我们对这些数据结构在windows系统的层级位置和大致的作用有一个了解很关键。接下来,我们来详细了解这些数据结构。

一 . EPROCESS

EPEOCESS(执行体进程块,E是Execute的意思,注意和KPROCESS区分开来)位于内核层之上(KPROCESS就内核层,我们之后会学习到KPROCESS),它侧重于提供各种管理策略,同时为上层应用程序提供基本的功能接口。所以,在执行体层的进程和线程数据结构中,有些成员直接对应于上层应用程序中所看到的功能实体。

我们使用winDbg来查看windows XP下的EPROCESS数据结构(winDbg双机调试的方法在《寒江独钓》第一章以及网上有很多成熟的使用说明)。

我们接下来的例子都以windows XP下的notepad.exe作为实验材料。首先,启动winDbg后,找到notepad.exe这个进程(你在虚拟机里要先启动notepad.exe哦)

!process <span>0</span> <span>0</span>    <span>//</span><span>查看当前进程 </span><span>....PROCESS 823e5490  SessionId: </span><span>0</span><span>  Cid: 0af0    Peb: 7ffd5000  ParentCid: 02b8    DirBase: 0f200340  ObjectTable: e283dc30  HandleCount: </span><span>106</span><span>.    Image: alg.exePROCESS 824a7020  SessionId: </span><span>0</span>  Cid: 00a0    Peb: 7ffda000  ParentCid: <span>0668</span><span>    DirBase: 0f2001a0  ObjectTable: e292f898  HandleCount:  </span><span>44</span><span>.    Image: notepad.exe...</span>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:EPROCESS 进程/线程优先级 句柄表 GDT LDT 页表 《寒江独钓》内

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址