修改二进制保存游戏数据(iPhone)

时间:2013-02-21 20:13:31

标签: ios iphone binaryfiles

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

以下网站描述用预先攻击的版本替换Documents/save.dat

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

  1. 我无法找到以下任意组合中的金额值:(小端,大端),(无符号,有符号),(整数,浮点数),(4,6,8,16字节)值),(1到15个字节的偏移量)
  2. 任何小的更改(即:购买商品)似乎都会完全重写并更改数据文件。
  3. 以ASCII格式快速扫描文件显示没有文本格式的文本线索。 ADD:实际上,文件中的所有ASCII字符串似乎都是随机的。
  4. linux命令file只是将文件标识为data
  5. NEW 压缩文件会将其放大,因此文件可能会被压缩或加密。
  6. 我既不是越狱也不是iOS开发人员,因此我无法访问该应用的内存。
  7. 这个文件怎么编码?关于如何手动修改它的任何建议?

1 个答案:

答案 0 :(得分:1)

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

首先下载HexField(或类似的工具),对于这类工作来说真的很棒。尝试根据非常小的变化找到一个模式(尝试尽可能少地改变,并确保你在改变之后杀死游戏)。如果你很幸运,分数,金钱和诸如此类的东西都会被混淆。

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

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

快乐的黑客攻击! :)