Google Play 反盗版 - 排行榜中的作弊分数

Posted

技术标签:

【中文标题】Google Play 反盗版 - 排行榜中的作弊分数【英文标题】:Google Play Anti-Piracy - Cheated Scores in Leaderboards 【发布时间】:2015-02-19 16:52:28 【问题描述】:

如果启用了 Google Play 游戏服务的Anti-Piracy Mode,是否意味着排行榜上不会出现更多荒谬的高分?因为,根据谷歌:

如果为您的游戏启用了反盗版功能,游戏服务会检查用户是否获得了玩您游戏的许可。如果设备上的任何用户帐户均未获得您的游戏的许可,则您的游戏发送的游戏服务调用将失败并返回 LICENSE_CHECK_FAILED 状态代码。

要获得您游戏的许可,用户必须从 Google Play 安装它。

我只是一个普通的开发人员,还没有达到黑客级别(可能永远不会):D。 但我的推论是,要破解分数,您需要:

    打开apk 修改api调用 重新打包 安装重新打包的 apk。

但最后一步将使 Google 的条件(引号的最后一行)无效,因此无法破解。这是真的吗?

PS:以 Flappy Bird 的排行榜为例。有很多疯狂的分数,但开发者 HAS'NT 启用了反盗版模式,因为我可以将我的分数发布到它的排行榜(我从网站下载后安装了 apk)。因此,这可能就是原因。

【问题讨论】:

它应该可以解决简单的盗版问题。我不会认为它是万无一失的,但它应该修复更简单的破解方法。除非 Google 在出现漏洞时不断修复漏洞,否则最终会创造出打破漏洞的新方法。 授权用户也可以作弊。无论从哪里安装它都会死。 【参考方案1】:

在运行时使用一些修改内存中值的应用程序(需要 root)来完成分数操作。开启反盗版不会阻止这种情况发生。

您可以(如果您真的想)检测 root 并阻止您的应用在这些设备上运行(请参阅此 question/answer)。不过我不建议这样做。

在排行榜中处理作弊的最佳方法是为排行榜设置最高分数限制(这是合理且几乎可能的,但并不完全如此)。然后还要监控排行榜是否有达到限制的分数并手动将其删除。

编辑: 谷歌已添加tamper protection for leaderboards。

【讨论】:

顺便说一句,您提供的链接是我提出的问题! :) 但我想知道你为什么反对它。你能解释一下吗? 我有一些 root 设备,但绝不会在排行榜上作弊 - 我只是一个高级用户,并且需要 root 才能完成各种事情。仅仅因为 1% 的 root 用户可能会试图作弊,就将所有像我这样的 root 用户排除在使用您的应用程序之外是没有意义的。 Root 本身并没有邪恶或错误,就像某些人使用它的方式一样 :) 好像他们在听一样,google 刚刚在开发者控制台中添加了tamper protection for leaderboards :) 我感兴趣的是你提到的如何“手动删除它们”。 @CsabaToth 我能想到的唯一方法是创建新的排行榜,然后在应用程序启动时(当然是在新版本中)从旧排行榜中读取玩家的当前分数并将其发布到新的排行榜只有在它们有效的情况下。然后在一段时间后删除/禁用旧的排行榜。我从来没有尝试过,我不确定它是否可以完成(尤其是删除旧的排行榜),但它可能值得研究。【参考方案2】:

您应该启用tamper protection for leaderboards。虽然这不会消除已经提交的分数,但它会自动隐藏将来提交的被篡改的分数。

【讨论】:

效率如何?有这方面的经验吗? 我刚刚读到,如果您针对多个平台,不建议使用反盗版设置和篡改保护。伤心。 篡改保护不起作用,即使从一开始就启用了篡改保护,我也收到了假分数(新游戏,因此新的排行榜)。

以上是关于Google Play 反盗版 - 排行榜中的作弊分数的主要内容,如果未能解决你的问题,请参考以下文章

Google Play 游戏中的成就和排行榜

我们如何查看 Google Play 服务中的排行榜详情?

如何从 Android 中的 Google Play Games API 中提取多个排行榜?

向 Google Play 游戏排行榜提交分数并显示新排名

Google Play 排行榜 - 无法提交分数

如何通过 Google Play 排行榜 UI 检测退出?