Office文件结构解析 |
您所在的位置:网站首页 › doc是一种什么格式 › Office文件结构解析 |
文章目录
Office文件Office2007之前的版本Office2007及之后的版本OOXML = OPC + \*MLOPC*ML
docx文件的解析流程
Office文件
之前在项目开发过程中,进行文件类型判断时,发现doc和docx文件的结构是不同的,很是好奇,特来深究一番。 doc和docx、xls和xlsx、ppt和pptx的不同,其原理都是一样的。 doc是Office 2007之前的版本;docx是Office 2007之后的版本。下面详细介绍一下: 参考文档: Office恶意文件解析与混淆研究 - 知乎 (zhihu.com) Office 文件解析入门 - 柯幽 - 博客园 (cnblogs.com) Office2007之前的版本可以看作二进制文件,文件前八个字节为 D0 CF 11 E0 A1 B1 1A E1。 OffVis下载地址: http://go.microsoft.com/fwlink/?LinkId=158791 CLSID:ClassID,类标识符,用作特定COM类的唯一标识符。是一个128位(16字节)的整数。 在原有Office文件格式的基础上加入了XML文件格式,这种新的文件格式称为OOXML(Office Open XML),相比于之前的Office文档结构更加清晰。 文件前四个字节为 50 4B 03 04,即PK…,PK代表ZIP算法的发明者(Phil Katz)。 OPC:一种基于zip+xml定义的文件存储格式。一个OPC文件,不管文件后缀是什么,本质上就是一个zip文件,可以用任何常见的解压软件进行解压。 XML:Extensible Markup Language,可扩展标记语言,和HTML很像。不过XML被用来传输和存储数据,而HTML是被用来显示数据。 上面的docx文件本质上就是一个OPC文件,我们将一个其后缀改成zip,然后解压,解压后的文档目录如下: docProps下有两个文件:app.xml和core.xml word下的文件如图: 示例中_rels\\.rels的内容如下: ![]() 可以发现有两种标签:Default 和 Override。Default 指明了拥有文件后缀名和文件类型的对应关系,Override 指明了某一个文件的文件类型。 以第一句Default为例,它表示,所有后缀是png的文件都是image/png类型的文件。 在OPC中,不建议根据文件后缀名来判断一个文件的类型,而应该根据ContentTypes文件中记录的信息来判断。 *ML*ML:* Markup Language,标记语言,是一种用XML来描述数据的语言。 *ML全名说明PMLPresentation Markup LanguagePPT 中各种数据的描述WMLWordprocessing Markup LanguageWord 中数据的描述SMLSpreadsheet Markup LanguageExcel 中数据的描述DMLDrawing Markup LanguageOffice 所有格式中都可以使用,用来描述矢量图形,图表等SharedMLShared Markup Language描述了文档属性,音视频,图片,文档主题等内容,它被所有Office文件使用 docx文件的解析流程 读取 [Content_Types].xml 文件,获得所有文件的类型;读取 _rels\.rels 这个Relationship 文件,获取 document.xml 文件的位置,即 word\document.xml;读取 word\document.xml 文件以及其关联的 Relationship 文件 wprd\_rels\document.xml.rels,得到该Word所有文件的存储位置,如word中插图所在文件夹为word\media。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |