【问题标题】:Android Games: Strategies to Defeat Memory Editors for CheatingAndroid 游戏:击败记忆编辑器作弊的策略
【发布时间】:2015-08-30 18:43:09
【问题描述】:

我有一个简单的游戏,有 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(适用于 Kikat 4.4 以上的 Android 版本)和 游戏杀手(完全兼容安卓棒棒糖)

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

非常感谢您的帮助。非常感谢您。

【问题讨论】:

    标签: android sharedpreferences android-memory anti-cheat


    【解决方案1】:

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

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

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

    我会参考MalluHacks API

    【讨论】:

      【解决方案2】:

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

      全部擦除为零状态。

      【讨论】:

        【解决方案3】:

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

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

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

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

        你也可以check for installed packages

        这可能是最好的方法。

        【讨论】:

          猜你喜欢
          • 2023-03-31
          • 1970-01-01
          • 2021-08-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多