win10 x64全局句柄表

x64全局句柄表

原理

PspCidTable:地址是一个结构体 HANDLE_TABLE—>TableCode指向一张全局句柄表。
TableCode:地址的低2位记录这个表是一级句柄表,还是二级或者三级;00表示一级,01表示二级,10表示3急;
如果是一级:那么TableCode指向的表直接是内核地址;
如果是二级:那么TableCode指向的是一个一个的句柄表地址,再由句柄表地址指向–>内核地址.
如果是三级:则一层一层下去。一般不会不存在三级。

示例

第一:用WINDBG先看下当前TableCode后二位来确定为几级句柄表
在这里插入图片描述第二:利用PspCidTable来查找一下某进程的EPROCESS内核对象
在这里插入图片描述
Registry pid = 72;
先进行换算:72/4 = (10进制)18 =0x12(16进制)
第一:18/512 = 一级句柄表的索引;1页=4096字节/8 = 512项。
第二:拿到索引取一级句柄表下面地址;指向二级句柄表
在这里插入图片描述
第三:二级句柄表地址 + 0x12*0x10;每一项16字节
在这里插入图片描述
找到EPROCESS ->5a8处为进程名:
在这里插入图片描述
至此找到了该进程的EPROCESS内核对象

总结

下次用驱动程序来实现一遍。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值