- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Apple iWork 套件的早期版本使用非常简单的文档格式:
index.apxl[z]
文件,以专有但相当容易理解的模式描述文档结构iWork '13 完全重做了格式。文档仍然是 bundle ,但索引 XML 文件中的内容现在编码在一组二进制文件中,类型后缀为 .iwa
,并打包到 Index.zip
中。
例如,在 Keynote 中,有以下 iwa
文件:
AnnotationAuthorStorage.iwa
CalculationEngine.iwa
Document.iwa
DocumentStylesheet.iwa
MasterSlide-{n}.iwa
Metadata.iwa
Slide{m}.iwa
ThemeStylesheet.iwa
ViewState.iwa
Tables/DataList.iwa
对于 MasterSlide
s 1...n 和 Slide
s 1...m
从它们的命名中可以清楚地看出它们的用途。这些文件甚至看起来未压缩,基本上所有内容文本都直接可见为二进制 blob 中的字符串(尽管在可读 ASCII 字符中存在一些类似 RTF/NSAttributedString/类似相关的垃圾)。
我在这里发布了一个简单示例主题文档的解压Index
:https://github.com/jrk/iwork-13-format .
但是,整体文件格式对我来说并不明显。 Apple 长期以来一直使用简单的平台标准格式(例如 plists)来对其大部分文档进行编码,但文件开头没有明确的类型标记,而且对我来说这些 iwa< 的含义并不明显
文件是。
这些文件有任何提示吗?是否有证据表明它们采用某种合理可理解的序列化格式?
通过 F-Script 翻查 Keynote 应用程序运行时和类转储,我发现的唯一证据是在似乎用于 iWork 的序列化类中使用了 Protocol Buffer ,例如:https://github.com/nst/iOS-Runtime-Headers/blob/master/PrivateFrameworks/iWorkImport.framework/TSPArchiverBase.h .
通过 protoc --decode_raw
快速传输一些文件,并删除前 0…16 个字节,没有产生任何明显可用的内容。
最佳答案
我已经完成了一些对格式进行逆向工程的工作并发布了我的结果 here 。我写了一个description格式并提供了示例项目。
基本上,.iwa 文件是使用 Snappy 压缩的 Protobuf 流。
希望这有帮助!
关于macos - 逆向工程 iWork '13 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19571787/
我有 *.ipa 文件,它是 iphone 应用程序。 是否可以在该 ipa 中使用逆向工程并提取代码..? 最佳答案 嗯,这不是真正的黑客攻击,但它确实可以帮助您识别 UI 的某些部分...请执行以
我一直在尝试对游戏的功能进行逆向工程,但我有点困惑。我对逆向工程还很陌生(顺便说一句,我正在使用 ollydbg),所以我还不太了解所有的技巧和细节。 无论如何这是我的问题。当您在游戏中拾取任何元素时
我被要求抓取一个 Flash 网站,该网站似乎正在通过 AMF 协议(protocol)使用某种服务器端调用。我完全不熟悉这个协议(protocol),但找到了这个库(http://www.pyamf
我的问题是我正在使用一个巨大的网络应用程序(学校系统),没有内部逻辑的文档。我需要对特定值进行批量更新,但我不知道MySQL数据库中的哪些表包含要更新的相关数据。该应用程序是从 php 自行运行的。有
我正在学习如何逆向一个程序,我想知道..如果我用调试信息编译: gcc -g .... 这对逆向过程有什么帮助吗?如果我这样做,我会提供额外的信息吗?我找不到有关该主题的任何信息。 最佳答案 它通过将
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 5 年前。
今天我决定使用 IDA Pro 反编译一个用 Visual C++ 编写的简单“Hello world”程序。 根据我以前的知识,我确定我不会在可执行文件入口点找到对 printf 的立即调用,我是对
我正在使用 PowerDesigner 为我的 SQL Server 数据库建模。我使用逆向工程选项来导入我的数据库。我的问题是表中的默认数据未导入。 有人知道如何导入表格中的数据吗? 最佳答案 我们
我一直在分析一些 230V 通信并试图找出协议(protocol)的校验和算法。从我了解到的通信结构如下: 第一个 block 总是相同的,必须是某种开始结构(910hex) 然后嵌套5个 block
在 AmigaOS 中的 Devs:Monitors 中找到的文件,它们包含什么? 它们的内部格式是什么?您如何修补一个或从头开始创建一个? 最佳答案 Amiga 程序 MonEd ( http://
我正在使用 VS2013 更新 3 的“逆向工程”模型优先功能从现有数据库开发 EF 模型。不幸的是,我无法完全控制数据库架构,它使用表和列前缀(例如 tblPerson , cFirstName,
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在尝试对 APK 文件进行逆向工程。 我尝试了 apk2jar 来获取类和资源文件。但我无法解压缩 Assets 。 有人可以帮忙吗? 最佳答案 使用 apktool。它将对所有布局、值、 Ass
我正在尝试解码由 Android instagram 应用程序发送到 graph.instagram.com 的帖子数据。该问题与此处发现的问题类似: Reverse Engineer HTTP re
我想查明用 C/C++ 编写的应用程序究竟在哪里失败。我无法直接调试应用程序,既不使用 gdb/lldb 也不使用 IDE,因为应用程序是由程序启动的(它是 webots 机器人模拟软件的机器人 Co
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是
我有一个最初用 VS2005 编写的小实用程序。 我需要做一点小改动,但是其中一个 dll 的源代码在某处丢失了。 是否有免费或价格合理的工具将 dll 反向工程回 C++ 代码。 最佳答案 Hex-
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我想知道是否有人知道如何对 Access 数据库进行逆向工程。我希望能够生成用于创建数据库表并将所有记录插入表中的 SQL 代码。换句话说,我想创建类似于 MySQL 转储文件的内容。 任何想法都会很
String.GetHashCode 的行为取决于程序架构。所以它将在 x86 中返回一个值,在 x64 中返回一个值。我有一个必须在 x86 上运行的测试应用程序,它必须预测必须在 x64 上运行的
我是一名优秀的程序员,十分优秀!