一种WORD中嵌套文件的解析方法、系统及设备[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 202011045167.1
(22)申请日 2020.09.28
(71)申请人 中孚安全技术有限公司
地址 250101 山东省济南市高新区新泺大
街1166号奥盛大厦2号楼2530室
申请人 中孚信息股份有限公司 
北京中孚泰和科技发展股份有限公
司 
南京中孚信息技术有限公司
(72)发明人 苗功勋 杜永盟 王金国 张雷 
(74)专利代理机构 济南舜源专利事务所有限公
司 37205
代理人 赵阳
(51)Int.Cl.
G06F  8/41(2018.01)
(54)发明名称
一种WORD中嵌套文件解析方法、系统及设
(57)摘要
本发明提出的一种WORD中嵌套文件的解析
方法、系统及设备,通过分析复合文档结构,从二
进制角度解析WORD中的嵌套文档,可以方便快速
的分离出复合文档中的嵌套文件。本发明摆脱了
对OFFICE组件和具体系统架构的依赖,用户可以
用任意编程语言、在任意平台实现嵌套文档解
析,可以广泛应用在文档机密检测、文档归属判
断、
商业信息安全保障等领域。权利要求书2页  说明书5页  附图2页CN 112256268 A 2021.01.22
C N  112256268
A
1.一种WORD中嵌套文件的解析方法,其特征在于,包括如下步骤:
S1:根据Microsoft工具的Compound File Binary File Format标准对DOC文档分离出对应的数据流
S2:判断数据流中是否含有以ObjectPool Storage为前缀的目录,若有,转到步骤S3,若没有,直接退出;
S3:读取每个以ObjectPool Storage为前缀的目录中的003ObjInfo文件,并提取出003ObjInfo文件中一个定义为ODT的数据结构;
S4:读取定义为ODT的数据结构中的cf字段,判断cf字段的值是否为0x0003,若是,则转到步骤S5,若否,直接退出;
S5:通过识别以ObjectPool Storage为前缀的目录下的数据流,确定嵌套的文件格式,并按照预定义的流标准输出嵌套的文件。
2.根据权利要求1所述的WORD中嵌套文件的解析方法,其特征在于,所述步骤S5包括:
识别以ObjectPool Storage为前缀的目录下的数据流,若所述数据流包括:
CompObj、ObjInfo、DocumentSummaryInformation、SummaryInformation、1Table、Data、WordDocument,则嵌套的文件为DOC文件;
按照MS-CFB定义的流标准,取出目录如下的复合文件流ObjectPool/_N,其中N为该文件具体编号,按照文件类型为DOC文件组合成单一文件输出。
3.根据权利要求1所述的WORD中嵌套文件的解析方法,其特征在于,所述步骤S5包括:
识别以ObjectPool Storage为前缀的目录下的数据流,若所述数据流包括:
CompObj、ObjInfo、DocumentSummaryInformation、SummaryInformation、1Table、Data、PowerPoint Document,则嵌套的文件为PPT文件;
按照MS-CFB定义的流标准,取出目录如下的复合文件流ObjectPool/_N,其中N为该文件具体编号,按照文件类型为PPT文件组合成单一文件输出。
4.根据权利要求1所述的WORD中嵌套文件的解析方法,其特征在于,所述步骤S5包括:
识别以ObjectPool Storage为前缀的目录下的数据流,若所述数据流包括:
CompObj、ObjInfo、DocumentSummaryInformation、SummaryInformation、1Table、Data、Workbook,则嵌套的文件为XLS文件;
按照MS-CFB定义的流标准,取出Workbook所在的目录流,查Workbook所在目录中的偏移量,并取消sheet表在嵌套文件中的隐藏状态;
将sheet表的扩展名修改为XLS,并输出。
5.根据权利要求4所述的WORD中嵌套文件的解析方法,其特征在于,所述查Workbook 所在目录中的偏移量时:从0字节开读取,每次读1字节直到0x3D为止。
6.根据权利要求4所述的WORD中嵌套文件的解析方法,其特征在于,所述取消sheet表在嵌套文件中的隐藏状态具体为:到sheet表所在的grbit,设置grbit第1位为false。
7.根据权利要求1所述的WORD中嵌套文件的解析方法,其特征在于,所述步骤S5包括:
识别以ObjectPool Storage为前缀的目录下的数据流,若所述数据流包括:
CompObj、ObjInfo、DocumentSummaryInformation、SummaryInformation、1Table、Data、Package、Ole10Native,则嵌套的文件为单一文档;
通过读取Package的头部信息判断该文件类型;
将Package加上对应文件类型的扩展名,完成嵌套的文件输出。
8.一种WORD中嵌套文件的解析系统,其特征在于,包括:
分离单元,用于根据Microsoft工具的Compound File Binary File Format标准对DOC 文档分离出对应的数据流;
第一判定单元,用于判断数据流中是否含有以ObjectPool Storage为前缀的目录;
读取单元,用于读取每个以ObjectPool Storage为前缀的目录中的003ObjInfo文件,并提取出003ObjInfo文件中一个定义为ODT的数据结构;
第二判定单元,用于读取定义为ODT的数据结构中的cf字段,判断cf字段的值是否为0x0003;
识别输出单元,用于通过识别以ObjectPoolStorage为前缀的目录下的数据流,确定嵌套的文件格式,并按照预定义的流标准输出嵌套的文件。
9.一种WORD中嵌套文件的解析设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述WORD中嵌套文件的解析方法步骤。
一种WORD中嵌套文件的解析方法、系统及设备
技术领域
[0001]本发明涉及文件检测技术领域,更具体的说是涉及一种WORD中嵌套文件的解析方法、系统及设备。
背景技术
[0002]随着企业信息化工作的开展,以及互联网技术的进步,企业越来越关注自有知识产权的保护和内部办公文档的安全问题。嵌套文档,即办公文档中通过插入附件对象的形式添加的文档。WORD作为当前最常用的办公软件,WORD嵌套文档的安全问题就变的至关重要。
[0003]当前,针对WORD中嵌套文件的安全检查,通常需要借助OFCCICE的组件分离出WORD 文档中的嵌套文件,进而实现嵌套文件的解析,识别机密信息文件是否嵌入到文档中,避免出现机密信息外泄的情况。但是,WORD中嵌套文件的解析完全依赖于OFFICE组件,一旦当前系统中没有预装OFFICE组件,或者当前的平台不支持OFFICE组件,WORD中的嵌套文件便无法进行解析,严重影响了文件安全检测工作的进度。
发明内容
[0004]针对以上问题,本发明的目的在于提供一种WORD中嵌套文件的解析方法、系统及设备,能够从二进制角度解析WORD中的嵌套文档,摆脱了对OFFICE组件的依赖。
[0005]本发明为实现上述目的,通过以下技术方案实现:一种WORD中嵌套文件的解析方法,包括如下步骤:
[0006]S1:根据Microsoft工具的Compound File Binary File Format标准对DOC文档分离出对应的数据流;
[0007]S2:判断数据流中是否含有以ObjectPool Storage为前缀的目录,若有,转到步骤S3,若没有,直接退出;
[0008]S3:读取每个以ObjectPool Storage为前缀的目录中的003ObjInfo文件,并提取出003ObjInfo文件中一个定义为ODT的数据结构;
[0009]S4:读取定义为ODT的数据结构中的cf字段,判断cf字段的值是否为0x0003,若是,则转到步骤S5,若否,直接退出;
[0010]S5:通过识别以ObjectPool Storage为前缀的目录下的数据流,确定嵌套的文件格式,并按照预定义的流标准输出嵌套的文件。
[0011]进一步,所述步骤S5包括:
[0012]识别以ObjectPool Storage为前缀的目录下的数据流,若所述数据流包括:CompObj、ObjInfo、DocumentSummaryInformation、SummaryInformation、1Table、Data、WordDocument,则嵌套的文件为DOC文件;
[0013]按照MS-CFB定义的流标准,取出目录如下的复合文件流ObjectPool/_N,其中N为该文件具体编号,按照文件类型为DOC文件组合成单一文件输出。
[0014]进一步,所述步骤S5包括:
[0015]识别以ObjectPool Storage为前缀的目录下的数据流,若所述数据流包括:CompObj、ObjInfo、DocumentSummaryInformation、SummaryInformation、1Table、Data、PowerPoint Document,则嵌套的文件为PPT文件;
[0016]按照MS-CFB定义的流标准,取出目录如下的复合文件流ObjectPool/_N,其中N为该文件具体编号,按照文件类型为PPT文件组合成单一文件输出。
[0017]进一步,所述步骤S5包括:
[0018]识别以ObjectPool Storage为前缀的目录下的数据流,若所述数据流包括:CompObj、ObjInfo、DocumentSummaryInformation、SummaryInformation、1Table、Data、Workbook,则嵌套的文件为XLS文件;
[0019]按照MS-CFB定义的流标准,取出Workbook所在的目录流,查Workbook所在目录中的偏移量,并取消sheet表在嵌套文件中的隐藏状态;
[0020]将sheet表的扩展名修改为XLS,并输出。
[0021]进一步,所述查Workbook所在目录中的偏移量时:从0字节开读取,每次读1字节直到0x3D为止。
[0022]进一步,所述取消sheet表在嵌套文件中的隐藏状态具体为:到sheet表所在的grbit,设置grbit第1位为false。
[0023]进一步,所述步骤S5包括:
[0024]识别以ObjectPool Storage为前缀的目录下的数据流,若所述数据流包括:CompObj、ObjInfo、DocumentSummaryInformation、SummaryInformation、1Table、Data、Package、Ole10Native,则嵌套的文件为单一文档;
[0025]通过读取Package的头部信息判断该文件类型;
[0026]将Package加上对应文件类型的扩展名,完成嵌套的文件输出。
[0027]相应的,本发明还公开了一种WORD中嵌套文件的解析系统,包括:
[0028]分离单元,用于根据Microsoft工具的Compound File Binary File Format标准对DOC文档分离出对应的数据流;
[0029]第一判定单元,用于判断数据流中是否含有以ObjectPool Storage为前缀的目录;
[0030]读取单元,用于读取每个以ObjectPool Storage为前缀的目录中的003ObjInfo文件,并提取出003ObjInfo文件中一个定义为ODT的数据结构;
[0031]第二判定单元,用于读取定义为ODT的数据结构中的cf字段,判断cf字段的值是否为0x0003;
[0032]识别输出单元,用于通过识别以ObjectPool Storage为前缀的目录下的数据流,确定嵌套的文件格式,并按照预定义的流标准输出嵌套的文件。
[0033]相应的,本发明还公开了一种WORD中嵌套文件的解析设备,包括:
[0034]存储器,用于存储计算机程序;
[0035]处理器,用于执行所述计算机程序时实现如上文任一项所述WORD中嵌套文件的解析方法步骤。
[0036]对比现有技术,本发明有益效果在于:本发明提供了一种WORD中嵌套文件的解析

本文发布于:2024-09-21 10:33:48,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/463159.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:文件   文档   解析   数据流   用于   目录
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议