如何用日期更改作弊的时间间隔保护安卓游戏的积分奖励?

时间:2017-10-29 02:14:29

标签: android algorithm security

我正在开发一款拥有积分的安卓游戏。有一些获得积分的方法,其中之一是每天打开游戏。我想到了两种方法来实现它,但两者都有安全问题。

第一种方式:系统日期

该应用程序的服务获取当前系统日期并检查此日期是否奖励;如果它没有奖励并将此日期写入数据库(假设此数据库已加密且无法更改其中的数据)。

问题:作弊者可以改变系统日期并一次又一次获得积分。

可能的保护方式:

  1. 修复安装日期。如果当前系统日期少于安装日期,那么它就是骗子,不会奖励积分。弱点:作弊者可以将日期改为未来而不是过去。
  2. 与第一个相同,但另外我们可以检查安装日期是否大于应用程序发布日期(硬编码,是)。弱点:首先不是每天都在增长。
  3. 使用互联网查看日期。如果当前系统日期少于或大于互联网日期超过24小时,那么它就是骗子,不会奖励积分。弱点:作弊者可以禁用互联网。
  4. 第二种方式:计时器

    假设我们想在00:00每天赚取奖金。当用户第一次开始游戏时(假设在20:00)计算奖励时间(4小时)之前剩余的时间。设定此时间的计时器(4小时)。当计时器熄灭奖励点并开始新的24小时,然后同样。

    问题:设备可以重新启动,计时器将被销毁。因此,重新启动后我们需要首次重复算法:计算奖励时间之前剩余的时间并启动计时器。骗子可以将时间改为23:55并重启设备并获得积分;而不是一次又一次地做。

    第三种方式:计时器和数据库

    与第二种方式相同,但另外计时器每分钟(例如)将数据时间留给数据库,并在重新启动后恢复此值。

    问题:我没有看到任何弱点,但它每24小时奖励积分,但不是每天都奖励积分。

    全部......

    顺便说一句:我已经测试了第一种与某些游戏作弊的方式,但它确实有效。但其他一些人受到保护。

    我很乐意听到任何想法或建议。谢谢你的时间。

0 个答案:

没有答案