[发明专利]一种独占文件的获取方法和系统在审
申请号: | 201510575152.9 | 申请日: | 2015-09-10 |
公开(公告)号: | CN105243090A | 公开(公告)日: | 2016-01-13 |
发明(设计)人: | 龚建新;王军;顾德仲;姜涛 | 申请(专利权)人: | 北京北信源软件股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 李相雨 |
地址: | 100081 北京市海淀区中关村*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 独占 文件 获取 方法 系统 | ||
技术领域
本发明涉及计算机信息安全技术领域,尤其涉及一种独占文件的获取方法和系统。
背景技术
正常情况下,文件系统不允许独占文件被重复打开,因此无法获取独占文件的属性和内容数据。但是,出于某些需求,信息安全系统需要对这些独占文件的内容进行审计等操作,因此,需要获取相应的独占文件。
现有技术中,独占文件的获取方式主要有以下三种,具体如下:
1)句柄复制方式:如果文件被进程A独占,先在进程A中使用用于查询关于系统内核状态信息的ZwQuerySystemInformation()函数来枚举句柄(HANDLE),若是独占文件,调用复制句柄函数DuplicateHandle()将句柄复制到控制进程,此时可在控制进程中进行读取操作。此方式缺陷比较明显:首先必须知道文件被哪个进程独占;其次使用了较多Windows未公开的内部结构(如HANDLE结构),影响了兼容性;另外某些被System进程独占的文件(如注册表文件)仍然无法获取。
2)借助微软公开的用于获取文件在磁盘上的分配图的函数FSCTL_GET_RETRIEVAL_POINTERS,获取文件在磁盘上,占用的簇位置分布,然后利用磁盘直接读写获取文件数据。此方式和我们目前实现相近,缺陷如下:首先,对于NTFS(NewTechnologyFileSystem,WindowsNT环境的文件系统)下小于1K的文件,数据一般直接存储在MFT(MasterFileTable,主文件表)文件记录中,不存在簇分配,因此无法获取;其次,必须使用读属性函数FILE_READ_ATTRIBUTES方式打开文件,下发FSCTL_GET_RETRIEVAL_POINTERS类型IOCTL。这些过程,容易受制于某些安全软件,导致文件获取失败。
3)其他一些针对文件对象操作的驱动方式,由于稳定性以及兼容性的原因,一般不做考虑。
综上,如何提供一种兼容性好、准确性高且可以有效避免第三方安全设施干扰的独占文件的获取的方法和系统,成为目前急需解决的问题之一,具有重要意义。
发明内容
鉴于上述技术问题,本发明提供一种独占文件的获取的方法和系统,以实现独占文件属性和内容的有效、快速获取,避免现有技术中的兼容问题,提高数据获取的准确性和安全性。
根据本发明的一个方面,提供了一种独占文件的获取方法,该方法包括:
解析磁盘文件系统结构,获取独占文件在磁盘上对应的簇编号列表;
采用RAW分区读取方式,获取所述簇编号列表中各文件簇对应的物理磁盘扇区;
采用ReadFile函数依次读取所述簇编号列表中各文件簇对应的物理磁盘扇区,获取各文件簇中的数据块,并写入预设文件。
其中,对于FAT32文件系统,所述解析磁盘文件系统结构,获取独占文件在磁盘上对应的簇编号列表,具体包括:
解析FAT32文件系统的磁盘分区引导记录DBR和文件分配表,获取根目录文件;
解析所述根目录文件,获取独占文件在磁盘上对应的第一文件索引项;
从所述第一文件索引项中获取独占文件的起始文件簇在所述文件分配表中的编号;
根据所述起始文件簇在所述文件分配表中的编号,获取独占文件在磁盘上对应的簇编号列表。
其中,对于NTFS文件系统,所述解析磁盘文件系统结构,获取独占文件在磁盘上对应的簇编号列表,具体包括:
解析NTFS文件系统的磁盘分区引导记录DBR和主文件表,获取根目录文件;
解析所述根目录文件,获取独占文件在磁盘上对应的第二文件索引项;
从所述第二文件索引项中获取独占文件的文件记录在主文件表中的编号;
根据所述文件记录在主文件表中的编号,获取独占文件在磁盘上对应的簇编号列表。
其中,所述获取独占文件在磁盘上对应的第一文件索引项,具体为:
采用二分法获取独占文件在磁盘上对应的第一文件索引项。
其中,所述获取独占文件在磁盘上对应的第二文件索引项,具体为:
采用B+树算法获取独占文件在磁盘上对应的第二文件索引项。
其中,所述采用ReadFile函数依次读取所述簇编号列表中各文件簇对应的物理磁盘扇区,获取各文件簇中的数据块,并写入预设文件,具体包括:
将各文件簇中的数据块按照文件簇的读取顺序进行组合,得到独占文件组合数据;
根据独占文件的大小属性,将所述独占文件组合数据的尾部数据截除,得到独占文件的文件数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京北信源软件股份有限公司,未经北京北信源软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510575152.9/2.html,转载请声明来源钻瓜专利网。