保护游戏高分的解决方案



我的朋友通过参加WP7纸投游戏并从中获取.xap然后发布自己的高分来证明这一点。

有什么万无一失的方法可以阻止这种情况吗?(我认为 Xbox Live 集成使黑客无法破解高分,但那是针对特殊人群的)

首先,这取决于高分是如何发送的。我只能假设您的朋友所做的是获取 XAP 并修改一些内部文件或跟踪用于将分数发送到集中位置的 HTTP Web 请求。我有两个建议给你。

  1. 加密。不要以明文形式保留分数。您可以利用许多强大的加密方法,除非尝试读取记分牌的人拥有密钥,否则这些方法会使记分牌无用。

  2. 如果将分数发送到 Web 服务,切勿以明文形式发送(再次)。根据我自己的经验,我可以说Web请求可以很容易地被更改和嗅探。因此,如果我看到应用程序发送 http://yourservice/sendscore?user=Den&score=500,我不妨调用 http://yourservice/sendscore?user=Den&score=99999999。如果您计划使用标头,则同样适用。

请注意,只有当您是注册的 Xbox 开发人员时,才能使用 Xbox Live 服务,这并不容易获得。

首先 - 高分列表真的那么重要,以至于您担心边缘情况(普通人不会拥有能够修改 *.xap 文件的开发解锁手机)?

其次,没有。如果高分列表存储在本地设备上,则没有万无一失的方法来保护高分列表。保护高分列表的唯一方法是通过 Web 服务或其他机制将其存储在云中。

拥有一个安全的高分系统是很棘手的,因为用户可以随时修改客户端的信息。阻止坚定的黑客查看您的代码是不可能的,但您可以通过混淆代码来使其更加困难。Preempptive的Dotfuscator目前对Windows Phone 7开发人员免费,如果你想使用它,它还内置了分析功能。这将混淆您的代码并使其更难阅读您的代码。虽然这不是万无一失的,但这是黑客需要克服的额外障碍。

混淆会使查找用于验证高分的加密密钥变得更加困难。

最新更新