《windows内核情景分析》句柄和句柄表

    每个进程都有个句柄表,在EPROCESS结构的0xc4偏移处的ObjectTable,类型为_HANDLE_TABLE,用来指向本进程的句柄表

  第一项TableCode是个指针数组,对应为HANDLE_TABLE_ENTRY数据结构,每个有效的句柄都对应着(某个)句柄表中的一个表项

    表项的第一项Object指向某个对象的头部,而该表项在句柄表中的位置则取决于句柄的值。

    在Windows内核中句柄表是个三维稀疏数组。HANDLE_TABLE_ENTRY大小为8个字节,由2个32bit组成。如果第一个32bit值不为0,那么第一个32bit就可以转换成一个指向对象头的指针。HANDLE_TABLE_ENTRY第一个32bit的最高位用作标志。当把一个HANDLE_TABLE_ENTRY第一个32bit转换成对象头的指针时,需要把低3bit设为0,最高位设为1。

    每当创建或者打开了一个对象,要为之创建句柄并将其插入句柄表的时候,就为其准备一个临时的HANDLE_TABLE_ENTRY数据结构,使其

指向这个对象的头部,然后通过ExCreateHandle()将其安装到句柄表中

    ObpKernelHandleTable是ntdll中的一个全局变量,指向系统初始进程SYSTEM的句柄表

   PsInitialSystemProcess是一个全局变量,类型为EPROCESS,为系统初始进程SYSTEM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值