背景
玩家在我的安卓游戏中作弊已经有很长一段时间了。对于一个严格的单人游戏来说,这不是什么大问题,但由于我的游戏包含多人战斗和全球高分榜,这导致合法玩家因为作弊者而停止玩游戏。
他们如何作弊
作弊者使用名为Gamecih的 root 用户应用程序。Gamecih 允许用户暂停应用程序,更改变量值,然后恢复应用程序。所以在我的情况下,他们只是暂停游戏,将“健康”更改为 74 万亿,然后在多人游戏中将每个人都踢出去。这是一段视频,展示了如何使用 Gamecih 在 Fruit Ninja(不是我的游戏)中作弊。
考虑的方法
- 代码混淆。这是行不通的,因为混淆不会改变变量值,只会改变变量名。这意味着作弊者仍然可以找到与其当前健康值相同的变量,然后更改该变量。
- 代码混淆 + getter & setter 值改变。这样,健康实际上不会代表真正的健康价值。在 getter 方法中,我会做类似 return health*10; 在二传手我会做 health=input/10; 这当然可能更复杂。
我想要的是
可以说,我应该使用考虑的方法 nr 2,但话又说回来,它并不能防止黑客攻击,它只会让它变得更难。理想情况下,我想检测人们何时使用 Gamecih 作弊,显示一个弹出窗口说“该死的你,你这个讨厌的黑客”,然后关闭应用程序。我不想要依赖服务器的解决方案,因为我希望我的玩家也能够离线玩游戏。如果可能的话,我还想避免代码混淆。