我们正在开发一种游戏,其中所有游戏逻辑都在本地执行(没有服务器后端),并且希望难以篡改游戏数据(例如用户信用,游戏设置等)。
现在,甚至可以在非越狱设备上访问文件系统并更改游戏数据 - 因此,例如,如果用户库存统计信息存储在plist文件中,则编辑它们非常容易。
如果我们将游戏设置从plist文件移动到源代码文件,以便将它们编译成二进制文件,则至少需要修改二进制文件才能更改设置。在非越狱手机上 - 修改后的二进制文件是否仍在运行,或苹果协同设置是否阻止以任何方式修改二进制文件?
有哪些快速且易于实施的措施可以使篡改游戏数据变得更加困难(特别是在非越狱手机上。最好我们想提供某种至少需要越狱的安全措施修改游戏)?
所以 - 总结一下问题:
答案 0 :(得分:0)
回答你的问题:
没有。该申请将需要再次签署。
一个简单但不牢不可破的测量方法是将数据保存在安全容器(例如密钥链)中,或者在将其安全保存到磁盘之前自行加密。攻击者现在必须监视正在运行的应用程序以获取内存中的解密数据 - 或者需要破解安全存储。
在iOS(和Mac OS X)上有几种方法可以完成加密和解密数据。官方文档中有一种方法可以很好地描述: Encrypting and Decrypting Data
答案 1 :(得分:0)
您无法修改二进制文件,因为它会使签名无效。我会对您不希望用户修改的数据使用某种加密。您可以根据需要将其设置为简单或复杂。我不认为iOS会提供开箱即用的任何加密服务,但你不需要疯狂地使用它 - 一个简单的ROT13算法会做,因为我们不是在谈论密码 - 这里的安全级别。如果需要,您甚至可以在加密数据上添加校验和,如果校验和不匹配,则会使其无效。