0

我有一个简单的游戏,有 2 个变量来存储分数和最佳分数:

int HightScore, CurrentScore;

我通过SharedPreferences保存 socre

static SharedPreferences app_preferences;

//Save hight score example
SharedPreferences.Editor hightScore = app_preferences.edit();
hightScore.putInt("HighScore", temp);
hightScore.apply(); // Very important

在 Android 操作系统上,有很多内存编辑器工具,例如:GameCIH、DaxAttack、HaXplorer、SB Game Hacker、GameGuardian(适用于 Android 版本至 Kikat 4.4)和Game Killer(完全兼容 android Lollipop)

我希望有人帮助我找出一些策略来防止我的变量形式被这些工具修改?

我真的很感谢你的帮助。非常感谢您。

4

3 回答 3

1

因为他们正在执行 http 拦截,所以很遗憾您无能为力。我什至发现在 iTunes Connect 中设置排行榜的最高分数没有任何效果。

我参与的一款游戏从未将分数连续写入磁盘 - 所以它不可能在那里更改 - 并将最大分数设置为 30m。然而,在发布后的几个小时内,排行榜就充满了 IntMax 分数。

您还可以设置自己的服务器并使用适当的身份验证和加密通道上传分数,然后将服务器中的内容与 GameCenter 中的内容进行比较...您仍然需要清理排行榜,但至少您会知道要做什么修复以及将哪些用户列入黑名单。

我会参考MalluHacks API

于 2017-06-09T10:38:01.470 回答
0

一般来说,我真的不知道任何工具或任何东西。

但作为一个临时解决方案,如果您真的想在任何情况下阻止它,为什么不创建两个必须添加的变量才能成为新的高分呢?

但是你总是必须同时使用这两个值。我不会推荐它。

此外,编译器可能会注意到这两个变量一直在添加,并且最终会从中创建一个变量。

您还可以检查已安装的软件包

这可能是最好的方法。

于 2015-07-15T10:03:11.360 回答
0

从保存的数据中计算哈希并存储它。再次加载计算并与存储的比较。如果不匹配 - 您有非法更改。

擦除全部为零状态。

于 2015-12-31T17:53:08.087 回答