2

我正在使用 Objective-C 在 Xcode 中为 iOS 和 OSX 创建游戏。

我正在经历的一个主要问题是找到防止作弊者入侵我的游戏的方法。

我最近学习了如何通过属性列表保存/读取信息。在应用程序的 OSX 版本中,我可以直接访问这些列表并通过右键单击应用程序、转到 Package Contents 和 Resources 来编辑它们。我最初的计划是存储/编辑高分等数据。显然,这样做的一个主要缺陷是该应用程序的用户可以轻松作弊。

除此之外,我还玩过很多 iOS 游戏,我看到用户在记分板上作弊,有时甚至有一些用户似乎已经破解了游戏,因为他们拥有大量资金,否则他们肯定无法获得(我正在考虑的示例是一个竞争性塔防游戏,其中两个玩家都以 0 现金开始并每隔几秒赚取一定的金额。如果玩家在前几秒内获得的现金是可能的 100 倍,那么他们肯定已经黑了)。

因此,我担心存储在游戏中的数据的安全性,并寻找解决方案,以下是我正在考虑的解决方案。

  1. 我很喜欢属性列表,但是使用其他形式的数据存储方法会更安全吗?或者它会因为黑客仍然可以解码这些文件而一样吗?

  2. 有没有办法在应用程序中隐藏这些属性列表/数据,使黑客无法访问它们?或者如果他们看起来足够努力,他们最终会找到他们吗?

  3. 如果上述 2 是不可能的或者仍然存在作弊的可能性,那么最好的解决方案是对这些列表中的数据进行编码,以便它们只能用一些密钥来读取?例如。我存储的每个分数都将通过除以 -129 进行编码,而应用程序将通过乘以 -129 来读取它们。

请问有人可以为OSX和iOS推荐一个解决这个问题的方法吗?

4

1 回答 1

1

我会说最好的解决方案是将这些值存储在服务器上,并且这些值只能在身份验证和 HTTPS 连接后访问。

另一种方法的缺点是它不能离线使用。

因此,如果您也希望离线访问,那么您也可以很好地使用 plist。您唯一需要做的就是加密文件并将其写入文档目录。您可以将您的 plist 转换为数据,然后对其进行加密和写入。密钥可以是您可以存储在 iOS 钥匙串中的用户密码。

上述方法将非常安全,实际上非常安全但没有什么是牢不可破的。希望这会有所帮助。

您可以使用此进行加密。

于 2016-01-18T13:15:30.413 回答