- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内核句柄表与创建句柄.doc
进程句柄表与创建句柄表
我们编写Windows程序中经常使用到内核对象,特别是句柄这个概念,通过句柄可以对内核对象进行访问,那句柄到底是什么?本文将会从内核来说明这个概念。
Windows采取了面向对象设计,内核中有一个的模块来管理内核对象,有很多资料都是说是“对象管理器”,本文也采用这个概念。对象管理器用来管理内核对象信息和记录内核对象的使用情况,包括引用计数。
每个进程都要创建一个句柄列表,这些句柄指向各种系统资源,比如信号量,线程,和文件等,进程中的所有线程都可以访问这些资源性),如下图所示,进程和资源:
1.进程与句柄表数据关系
在用户模式下如果调用CloseHanele( )表示不再使用这个对象,在内核中进程便会删除句柄(释放对象引用);对象管理器也会将内核对象的引用计数也会减一,当对象的句柄引用为0时,对象管理器便会释放这个对象。
句柄表最基本作用就是句柄与目标对象之间的映射表,下图是进程与句柄的简化模型图(有些数据域要经过处理):
_HANDLE_TABLE是句柄表的信息的结构体,在内核中句柄是句柄表中表项的索引,在这里可以简单的理解,由索引(句柄)在句柄表中查找到进程引用的内核对象.
在Windbg中查看_HANDLE_TABLE(这里例出部分有意义的项)
kd dt _HANDLE_TABLE
nt!_HANDLE_TABLE
+0x000 TableCode : Uint4B //指向第一层局部表,并记录层数
+0x004 QuotaProcess : Ptr32 _EPROCESS //指向进程_EPROCESS块
+0x008 UniqueProcessId : Ptr32 Void //进程ID
+0x03c HandleCount : Int4B //句柄计数,当前使用句柄个数
kd dt _EPROCESS //进程_EPROCESS块信息
nt!_EPROCESS
+0x084 UniqueProcessId : Ptr32 Void //进程ID
+0x0c4 ObjectTable : Ptr32 _HANDLE_TABLE //指向_HANDLE_TABLE结构
2.句柄的数据结构
内核与SDK中定义句柄都为: typedef void *HANDLE; 表明句柄是一个无符号整数,实际上有效句柄的值时有范围的,大家想想如果采用数组来存储句柄需要耗费很大的内存,Windows句柄表使用了稀疏数组.
2.1XP/2003句柄表项:
先看下句柄表中存放的是什么?句柄表主要是存放的是对象的地址与属性信息,当然还要存放句柄表相关一些信息(审计,空闲项),每个句柄表项是由_HANDLE_TABLE_ENTRY 描述的,_HANDLE_TABLE_ENTRY占8字节,定义如下:
kd dt _HANDLE_TABLE_ENTRY
nt!_HANDLE_TABLE_ENTRY
+0x000 Object : Ptr32 Void //对象指针
+0x000 ObAttributes : Uint4B
+0x000 InfoTable : Ptr32 _HANDLE_TABLE_ENTRY_INFO
+0x000 Value : Uint4B
+0x004 GrantedAccess : Uint4B
+0x004 GrantedAccessIndex : Uint2B
+0x006 CreatorBackTraceIndex : Uint2B
+0x004 NextFreeTableEntry : Int4B
由于_HANDLE_TABLE_ENTRY有些联合体,不好理解,源码定义如下:
typedef struct _HANDLE_TABLE_ENTRY {
union {
PVOID Object; //对象指针
ULONG ObAttributes; //对象属性
PHANDLE_TABLE_ENTRY_INFO InfoTable;
ULONG_PTR Value; //值
};
union {
union {
ACCESS_MASK GrantedAccess; //访问掩码
struct {
USHORT GrantedAccessIndex;
USHORT CreatorBackTraceIndex;
};
您可能关注的文档
- 中华人民共和国电力工业部《电缆线路施工验收规范GB50168-92》.doc
- 中华人民共和国行业标准备案公告(2013年第12号).-福建省质量技术.doc
- 公务轿车采购规范.doc
- 中南国家计量测试中心.doc
- 公告学员.doc
- 中国催化三十年进展-大连化学物理研究所.doc
- 公开收购制度介绍及实务探讨.doc
- 公所成立之调解名义将进行强制执行催告之存证信函.doc
- 中国广州分析测试中心检测项目能力表.doc.doc
- 中国建设银行手机银行andriod客户端安装手册.doc
- 2024年国家开放大学《形势与政策》大作业:中华民族现代文明有哪些鲜明特质?建设中华民族现代文明的路径是什么?[附4份答案]供参考.docx
- 2024年《形势与政策》大作业(含2份答案):中华民族现代文明有哪些鲜明特质?建设中华民族现代文明的路径是什么?.docx
- 中华民族现代文明有哪些鲜明特质?建设中华民族现代文明的路径?2024年秋国家开放大学《形势与政策》大作业附4份答案【供参考】.docx
- 2024年秋国家开放大学《形势与政策》大作业:理论联系实际,结合材料进行深入分析中华民族现代文明有哪些鲜明特质?建设中华民族现代文明的路径是什么?【附4篇答案】供参考.docx
- 2024年《形势与政策》大作业:中华民族现代文明有哪些鲜明特质?建设中华民族现代文明的路径?附答案2份.docx
- 2024年秋国开大作业【附4份答案】:中华民族现代文明有哪些鲜明特质?建设中华民族现代文明的路径?.docx
- 2024年大作业:中华民族现代文明有哪些鲜明特质?建设中华民族现代文明的路径是什么? 【二份答案】.docx
- 理论联系实际,结合材料进行深入分析2024年秋国家开放大学《形势与政策》大作业:中华民族现代文明有哪些鲜明特质?建设中华民族现代文明的路径是什么?【附4篇答案】供参考.docx
- 2024年秋国家开放《形势与政策》大作业:中华民族现代文明有哪些鲜明特质?建设中华民族现代文明的路径?(含4篇参考答案).docx
- 2024年秋国开形势与政策大作业【附4份答案】:中华民族现代文明鲜明特质有哪些?建设中华民族现代文明的路径?.docx
文档评论(0)