>文件是资源捆绑(文件夹,压缩或不压缩)
> 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格式所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)