我正在使用 Objective-C 在 Xcode 中为 iOS 和 OSX 创建游戏。
我正在经历的一个主要问题是找到防止作弊者入侵我的游戏的方法。
我最近学习了如何通过属性列表保存/读取信息。在应用程序的 OSX 版本中,我可以直接访问这些列表并通过右键单击应用程序、转到 Package Contents 和 Resources 来编辑它们。我最初的计划是存储/编辑高分等数据。显然,这样做的一个主要缺陷是该应用程序的用户可以轻松作弊。
除此之外,我还玩过很多 iOS 游戏,我看到用户在记分板上作弊,有时甚至有一些用户似乎已经破解了游戏,因为他们拥有大量资金,否则他们肯定无法获得(我正在考虑的示例是一个竞争性塔防游戏,其中两个玩家都以 0 现金开始并每隔几秒赚取一定的金额。如果玩家在前几秒内获得的现金是可能的 100 倍,那么他们肯定已经黑了)。
因此,我担心存储在游戏中的数据的安全性,并寻找解决方案,以下是我正在考虑的解决方案。
我很喜欢属性列表,但是使用其他形式的数据存储方法会更安全吗?或者它会因为黑客仍然可以解码这些文件而一样吗?
有没有办法在应用程序中隐藏这些属性列表/数据,使黑客无法访问它们?或者如果他们看起来足够努力,他们最终会找到他们吗?
如果上述 2 是不可能的或者仍然存在作弊的可能性,那么最好的解决方案是对这些列表中的数据进行编码,以便它们只能用一些密钥来读取?例如。我存储的每个分数都将通过除以 -129 进行编码,而应用程序将通过乘以 -129 来读取它们。
请问有人可以为OSX和iOS推荐一个解决这个问题的方法吗?