全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
内核对象和句柄泄漏 1 什么是内核对象? 内核对象是操作系统分配的一个内存块,该内存块是一个数据结构,用于管理对象的各种信息。当应用程序要与系统设备进行交互的时候,将使用到内核对象,出于安全的考虑,进程是不能直接访问内核对象的,操作系统提供了对应的函数来对它们进行访问。存取符号对象、事件对象、文件对象、作业对象、互斥对象、管道对象、等待计时器对象等都是内核对象。我们在编程时经常要创建、打开和操作它们。内核对象由内核拥有,并不是进程所拥有,每个内核对象都有一个计数器来存储有多少个进程在使用它的信息。进程调用时,计数器增1,调用结束,计数器减1,内核对象计数器为零时,销毁此内核对象.内核对象有安全描述符的保护,安全描述符描述了谁创建了该对象以及谁能够使用该对象。用于创建内核对象的函数几乎都有一个指向SEC URITY_ATTRIBUTES 结构的指针作为其参数。大多数应用程序通过传NULL值创建具有默认安全性的对象。如果想限制别人对对象的访问,就需要单独创建一个SECURITY_ATTRIBUTES对象并对其初始化。2 什么是句柄? 通俗的概念:句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。当应用程序访问内核对象时,将返回一个标示内核对象的东东,这些则是句柄。内核对象的“句柄”,可以惟一地标志对象。当应用创建内核对象时,返回的就是句柄。此内核对象进程的所有线程都可以利用这个句柄访问内核对象。3 内核对象创建? 当利用creat*函数如creatfilemapping来创建内核对象时,调用该函数的时候内核就为该对象分配一个内存块,并进行初始化,然后内核再扫描该进程的句柄表,初始化一条记录并放在句柄表中。所谓的句柄表是指每个进程在被初始化的时候,将被分配一个句柄表,该句柄表将存储内核对象的句柄,该句柄表包含三个内容:内核对象句柄,内核对象句柄地址,访问屏蔽标志。 4 关闭内核对象 无论进程怎样创建内核对象,在不使用该对象的时候都应当通过Bool CloseHandle(HANDLE hobj)来向操作系统声明结束对该对象的访问。 这里有一个问题:为什么结束进程能释放所有占用的资源? 是因为进程在运行时有可能出现内存泄露。在进程终止运行时,系统会自动扫描进程的句柄表。若表中拥有任何无效项目(进程终止前没关闭的对象),系统将关闭这些对象的句柄。对象的计数器被置0,内核便会撤销这些对象。5 如何发现和分析句柄泄露? 经上面的了解知道当应用程序使用完内核对象之后需要释放资源关闭内核对象。如果没用CloseHandle,那么将可能导致当前进程无法再打开对应的内核对象,而从系统层面上来说将会大量占用内存,导致系统变慢。所以有时候发现应用程序进程本身占用内存不多,但是系统内存占用却很高,可能就因为句柄泄露导致。下面简单介绍两种判断句柄泄露的方法:1)、打开任务管理器:选择菜单:查看选择列,勾上“句柄数“,如下图: 此时任务管理器中多了一列句柄数,如果你发现一个进程句柄数在不断增加,那么可能该进程就存在内存泄露了。2)使用工具Process Explorer,该工具能够非常明了的看到进程所正在使用的内核对象,当存在句柄对象时,它能够协助你分析找到原因。下面以一个存在句柄泄露的简单程序为例:该程序在访问1.txt这个文件的时候,没有关闭句柄,导致文件不断被打开。从这里你还可以看到有GDI handles和USER Handles的概念,我理解为这些handle可以统称为内核对像的handle,只是对应了不同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 急诊科急性休克抢救规范培训方案
- 吸入疗法医学知识培训课件
- 心电图表现医学知识专题讲座培训课件
- 2025年企业人力资源管理师之三级人力资源管理师真题练习试卷A卷附答案
- 2025技术合作合同范本版
- 2025家用健身器材产品加工合同
- 2025年版货物运输保险合同示范文本
- 2025仓储合同 货物仓储
- DB31-T 1351-2022 公务用车通.用物品配置规范
- 综合管理部竞聘演讲大纲
- 《金色的草地》素养课件(第二课时)
- 2025吉林省国资委监管企业集中招考1214人联合考试笔试备考试题及答案解析
- 2025北京市公安局平谷分局第四季度招聘勤务辅警20人笔试考试参考试题及答案解析
- 2025至2030电动气动阀门定位器行业产业运行态势及投资规划深度研究报告
- 2025-2030智慧餐饮行业市场分析及投资前景研究报告
- 跑步体能训练讲座
- 别墅物业费代缴合同协议2025年规定
- 2025年妇产科妇科超声检查技巧操作考核试题及答案
- 医疗废弃物相关知识培训课件
- 2024-2025学年湖北省武汉市常青联合体高二(上)期中地理试卷
- 紧急输血专家共识课件
评论
0/150
提交评论