0

只是为了好玩,我正在尝试破解我保存的 Ghostbusters iPhone 应用程序的游戏数据(AppStore 链接)。

以下网站描述了用Documents/save.dat预先破解的版本替换:

但是,我想自己修改数据。使用我的十六进制编辑器save.dat揭示了以下死胡同:

  1. 我找不到以下任何组合的金额值:(小端,大端),(无符号,有符号),(整数,浮点),(4、6、8、16字节值), (1 到 15 字节偏移)
  2. 任何小的变化(即:物品购买)似乎都会完全重写和更改数据文件。
  3. 以 ASCII 格式快速扫描文件不会发现文件格式的文本线索。 ADD:事实上,文件中的所有 ASCII 字符串看起来都是完全随机的。
  4. linux 命令file只是将文件标识为data.
  5. 压缩文件会放大它,因此文件可能已被压缩或加密。
  6. 我既不是越狱者也不是 iOS 开发者,所以我无法访问应用程序的内部存储器。

该文件如何编码?关于如何手动修改它的任何建议?

4

1 回答 1

1

我做了类似的事情只是为了好玩。在我的例子中,该文件被压缩并包含一个哈希签名和一个由游戏可执行文件生成的盐值。在这种情况下,我使用gdb, 在所有散列函数上设置断点并检查它们的参数。我实际上不确定如何调试 iPhone 应用程序,但我怀疑除非你越狱设备,否则这是不可能的,所以你可能会被困在试图分析文件的过程中。

从下载 HexField(或类似工具)开始,它非常适合这种类型的工作。尝试根据非常小的变化找到一种模式(尽可能少地改变,并确保在改变某些东西后终止游戏)。如果你幸运的话,分数、金钱和诸如此类的东西就会被混淆。

如果不容易在文件中看到模式,我会首先调查已知的压缩,例如 gzip(无标题)、deflate、lzma 等(首先查看符号表并在游戏二进制文件中使用 class-dump 以获得一些想法)。由于该file命令没有给出任何内容,我认为该文件不是简单的 gzip 压缩文件。

否则,您可能会开始怀疑文件已加密(再次查看符号表)。确定文件是压缩还是加密的一个好方法是尝试压缩它。如果没有算法能够进一步压缩它,则很可能该文件已被压缩或加密。

快乐黑客!:)

于 2013-02-21T20:31:05.883 回答