您的位置:首页 > 其它

软件调试笔记10 - Windows概要:进程结构:令牌,PEB,ID, 句柄

2017-11-23 11:49 477 查看
访问令牌

TOKEN字段记录着这个进程的TOKEN结构地址,进程很多与安全有关的信息都在这个结构中。找到TOKEN字段值,然后用!Token命令查看。



也可以用dt nt!_TOKEN加上令牌地址来观察令牌对象。

PEB

PEB即进程环境块,包含了进程的大多数用户态信息。与EPROCESS结构位于内核空间的不同,PEB是在内核态建立后映射到用户空间的,因此在一个系统中,多个进程的PEB地址可能是同一个值。

使用dt _PEB 可以显示PEB的字段及其值。因为PEB位于用户空间,所以内核调试会话中应该用.process命令设置当前的隐含进程。





SessionId:

指该进程所在的WINDOWS会话的ID号。当多个用户同时登录时,WINDOWS会为每个登录用户建立一个会话,每个会话有自己的workstation和桌面。当只有一个用户登录时,用户启动的程序和系统服务都运行在SESSION 0,当切换到另外一个时,系统会建立SESSION 1, 以此类推。

进程ID

Cid即进程ID,又叫client id。进程ID是表示进程的一个整数,很多用户态的函数使用他作为表示进程的参数。内核态主要使用EPROCESS指针来标识一个进程。父进程ID即parent cid,是创建该进程的进程的ID。

页目录基地址

DirBase代表的是该进程的页目录基地址,即切换到该进程时,CR3寄存器的内容。它将虚拟地址转换成物理地址的必须参数。因为页目录是按4KB边界对齐的,所以DIRBASE的低12位总是0. 因为只需要使用高20位的内容,所以DIRBASE的高20位有一个专门的名字,页桢编号Page Frame Number, PFN. 比如DIRBASE值是0X1F350000,那么PFN是0X1F350. 

WINDBG的一些内存命令使用PEN作为参数,比如!ptov扩展命令加上PFN, 就可以列出对应进程中所有物理地址到虚拟地址的映射。

对象表格

ObjectTable是该进程的内核对象和句柄表格。WINDOWS使用这个表格将句柄翻译成指向该内核对象的指针。使用!handle可以查看句柄和对象信息。!object可以进一步查看内核对象的信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐