win32系统编程 什么是句柄表

句柄表是操作系统中用于安全访问内核对象如进程、线程和文件的一种机制。每个进程都有自己的句柄表,避免应用层直接操作内核结构体,防止安全风险。当需要使用内核资源时,内核通过句柄(一个唯一的编号)来标识结构体,而不是直接暴露其地址。这种方式提高了系统的安全性。
摘要由CSDN通过智能技术生成

什么是句柄表?

先要了解什么是内核对象,像线程、进程、文件、互斥体、事件等在内核都有一个对应的结构体,这些结构体由内核负责管理。我们管这样的对象叫做内核对象。

比如你创建进程、线程、和文件,在内核层会有对应的结构体,对进程有疑问的可以看看我前面两篇文章,线程和文件我后面会写文章。
在这里插入图片描述

拿进程举例,我们知道创建进程的时候会在内核层生成结构体,那我们要如何去操作或者管理内核层的结构体呢?

如下图,我们创建进程、线程、和文件,在内核层有结构体被创建,那我们要管理或操作内核层的结构体的话,最简单的办法是不是让内核层的结构体把地址返回给应用层,那我们是不是就可以直接进行操作了,同样的,这样的话就会引发出一个安全问题,如果直接把内核层的地址返回回来给到应用层,那要是在内核层被恶意篡改,那麻烦就大了,那就不同于应用层只是简单的出现无法访问的错误了,所以为了避免这个安全问题,也就延伸出我们的主题,句柄表。

在这里插入图片描述

我们可以把句柄表理解成下面这个例图

重点提一下。句柄表是每一个进程都有一个句柄表,而不是每一个内核层的资源都有一个句柄表。而句柄表的作用是什么呢?就是为了解决我们上面提到的安全问题,有了句柄表了之后,我们就不需要让应用层直接访问内核结构体,而是通过句柄表,当你想要用哪个内核层的资源时(内核层结构体)。你就把句柄表里的编号返回回去,比如1这个索引编号对应的就是进程在内核层中的结构体、

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值