Enterprise Just Builder

Solution for Enterprise Software Architecture

Windows Process 内存组织结构及重要字段解析

Windows 操作系统中的进程,实际上是用位于内核管理层(Executive)的 _EPROCESS 进程块来表示的。_EPROCESS 中不仅包含了进程相关的一些重要的数据结构,同时还包含了进程的环境变量等等东西。_EPROCESS 块的大部分数据存储在操作系统的内核空间,不过进程环境块 PEB 则是位于用户空间。这是因为 PEB 包含了一些用户可能频繁修改的数据,放在内核空间中会导致频繁的模式切换,也不利于安全。 图1-1 源自《Windows Internal》第六章里,它显示了一个完整进程的不同部分,这些部分被分别存放在系统地址空间和进程地址空间之中,以适应不同的操作模式的需要。 在内核调试模式下,我们可以用 Windbg 的 dt 命令列出 _EPROCESS 的结构:(例子基于 Windows 10 Build 10240) WINDBG>dt nt!_eprocess    +0x000 Pcb              : _KPROCESS    +0x2d8 ProcessLock      : _EX_PUSH_LOCK    +0x2e0 RundownProtect   : _EX_RUNDOWN_REF    +0x2e8 UniqueProcessId  : Ptr64 […]

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.