


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
内核对象和句柄泄漏 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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 管网工程钢筋施工方案(3篇)
- 2025【标准合同】电子产品批发采购合同
- 锅炉天然气知识培训总结课件
- 2025煤炭购销合同标准范本
- 2025年石英玻璃管(棒)项目立项申请报告模范
- 暑雨季砌筑工程方案(3篇)
- 工程隧道防水施工方案(3篇)
- 大规模工程土方运输方案(3篇)
- 2025年工字钢项目申请报告模板
- 2025年电商平台内容营销与种草经济案例分析及市场拓展
- 信息网络安全考题「附答案」
- 2025年反诈骗知识竞赛问答试题及答案
- 矿井建设工程课件
- 消防设备设施操作讲解培训课件P
- 2025年执业医师考试-中医师承及确有专长考核历年参考题库含答案解析(5卷单选一百题)
- 2025年中储粮储运有限公司招聘考试真题+答案
- 蝴蝶粘土儿童课件教学
- 氨水氨气培训课件
- 第9课《天上有颗“南仁东星”》课件 2025-2026学年统编版八年级语文上册
- 早读的好处教学课件
- 2025年生态与环境保护的法律法规考试题及答案
评论
0/150
提交评论