osx – 逆向工程iWork ’13格式

osx – 逆向工程iWork ’13格式,第1张

概述Apple的iWork套件的以前版本使用了非常简单的文档格式: >文件是资源捆绑(文件夹,压缩或不压缩) > bundle包含一个index.apxl [z]文件,该文件以专有但相当容易理解的模式描述文档结构 iWork ’13已经完全重新格式化了.文档仍然是捆绑包,但是索引XML文件中的内容现在被编码在一组二进制文件中,后缀为.iwa包装到Index.zip中. 例如,在Keynote中有以下i Apple的iWork套件的以前版本使用了非常简单的文档格式:

>文件是资源捆绑(文件夹,压缩或不压缩)
> bundle包含一个index.apxl [z]文件,该文件以专有但相当容易理解的模式描述文档结构

iWork ’13已经完全重新格式化了.文档仍然是捆绑包,但是索引XML文件中的内容现在被编码在一组二进制文件中,后缀为.iwa包装到Index.zip中.

例如,在Keynote中有以下iwa文件:

AnnotationAuthorStorage.iwaCalculationEngine.iwadocument.iwadocumentStylesheet.iwaMasterSlIDe-{n}.iwaMetadata.iwaSlIDe{m}.iwathemeStylesheet.iwaVIEwState.iwatables/DataList.iwa

对于MasterSlIDes 1 … n和幻灯片1 … m

每个这些的命名从他们的命名是很清楚的.这些文件甚至显示为未压缩,基本上所有内容文本直接作为二进制blob中的字符串可见(尽管有些类似RTF / NSAttributedString /可读ASCII字符之间的类似相关的垃圾).

我已经发布了一个简单的例子的未打包的索引Keynote文档在这里:https://github.com/jrk/iwork-13-format.

但是,整体文件格式对我来说是不明显的.苹果公司使用简单的平台标准格式,如pList来编码大部分文档,但在文件开头没有明确的类型标签,对我来说这些iwa文件是不明显的.

这些文件是否响铃?有证据表明他们有一些合理可理解的序列化格式吗?

通过Keynote应用程序运行时和通过F脚本进行类转储,我发现的唯一证据是在似乎用于iWork的序列化类中使用协议缓冲区,例如:https://github.com/nst/iOS-Runtime-Headers/blob/master/PrivateFrameworks/iWorkImport.framework/TSPArchiverBase.h.

通过protoc –decode_raw快速管道几个文件,第一个0 … 16个字节被丢弃,没有任何明显的可用性.

解决方法 我做了一些逆向工程的工作,并发表了我的结果 here.我写了一个 description的格式,并提供了一个示例项目.

基本上,.iwa文件是使用Snappy压缩的Protobuf流.

希望这可以帮助!

总结

以上是内存溢出为你收集整理的osx – 逆向工程iWork ’13格式全部内容,希望文章能够帮你解决osx – 逆向工程iWork ’13格式所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1030571.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存