1

我们正在开发一款游戏,所有游戏逻辑都在本地执行(无服务器后端),并希望难以篡改游戏数据(如用户积分、游戏设置等)。

现在,甚至可以在非越狱设备上访问文件系统并更改游戏数据 - 例如,如果用户库存统计数据存储在 plist 文件中,则可以很容易地对其进行编辑。

如果我们将游戏设置从 plist 文件移动到源代码文件,以便将它们编译成二进制文件,则至少需要修改二进制文件才能更改设置。在未越狱的手机上 - 修改后的二进制文件是否仍会运行,或者苹果代码设计是否会阻止以任何方式修改二进制文件?

有哪些快速且易于实施的措施可以让篡改游戏数据变得更加困难(尤其是在未越狱的手机上。我们最好提供某种安全措施,至少需要越狱才能进行修改到游戏)?

所以 - 总结问题:

  1. iOS 应用程序的二进制部分是否可以修改并仍然在非越狱设备上运行?
  2. 有哪些快速且易于实施的措施,让在非越狱设备上更难篡改游戏数据?
4

2 回答 2

0

要回答您的问题:

  1. 不可以。申请将需要重新签名。

  2. 一个简单但并非牢不可破的测量方法是将数据保存在安全容器(例如钥匙链)中,或者在将其安全存储到磁盘之前自行加密。攻击者现在必须监控正在运行的应用程序以获取内存中的解密数据 - 或者需要破解安全存储。

在 iOS(和 Mac OS X)上有几种方法可以完成加密和解密数据。官方文档中很好地描述了一种方法: 加密和解密数据

于 2013-08-08T10:02:29.480 回答
0

您不能修改二进制文件,因为它会使签名无效。我只会对您不希望用户修改的数据使用某种加密。您可以根据需要使其变得简单或复杂。我不认为 iOS 提供了任何开箱即用的加密服务,但你不需要疯狂使用它 - 一个简单的ROT13算法就可以了,因为我们在这里不是在谈论密码级别的安全性。如果需要,您甚至可以在加密数据上添加校验和,然后在校验和不匹配时使其无效。

于 2013-08-08T13:15:12.483 回答