Android游戏不断遭到黑客攻击

Android游戏不断遭到黑客攻击,android,security,google-play,copy-protection,Android,Security,Google Play,Copy Protection,所以我们已经经历了好几次了,我们发布了一个游戏(便宜),有人破解了它并把它放在镜子上。我们为我们所有的应用程序设置谷歌警报,所以我们每天都会被告知谁在进行黑客攻击。到目前为止,我们已经按照谷歌的建议实施了许可服务,每次使用唯一的设备ID启动许可证时,我们都会随机进行salt。当应用程序第一次启动时,我们会运行一次检查服务。然后,我们为密钥和存储值生成一个512个字符的散列,从那时起将其与in-SharedPreferences进行比较 现在,我知道检查一次可能是应用程序被阻止的地方。我们的字节码

所以我们已经经历了好几次了,我们发布了一个游戏(便宜),有人破解了它并把它放在镜子上。我们为我们所有的应用程序设置谷歌警报,所以我们每天都会被告知谁在进行黑客攻击。到目前为止,我们已经按照谷歌的建议实施了许可服务,每次使用唯一的设备ID启动许可证时,我们都会随机进行salt。当应用程序第一次启动时,我们会运行一次检查服务。然后,我们为密钥和存储值生成一个512个字符的散列,从那时起将其与in-SharedPreferences进行比较

现在,我知道检查一次可能是应用程序被阻止的地方。我们的字节码很可能在没有启动检查的行的情况下被查看和重新编译

从这里开始,我不想混淆我们的代码,因为我以前看到它被破坏了。我想要一些更坚实的东西,我还想学习如何正确地做到这一点。我更感兴趣的是学习,而不是赚钱,因为只有2%的人会寻找黑客版本

到目前为止,我自己已经设计了一个随机数生成器,放置在游戏的几个启动区域。启动时(例如,50次中有1次)将检查许可证。我知道这会使黑客更难破解,因为破解者必须消除每个案例,编译,消除,编译。然而,这种方法仍然是可以破解的…你们有什么建议吗?再说一遍,我对这个安全过程很感兴趣,所以请教育我,不要把它变成一个关于混淆或基于时间戳定期检查的讨论


谢谢

盗版永远是个问题。总的来说,破解者比开发者更擅长玩这个游戏

我已经做了一段时间的apk反编译和黑客攻击(不是warez,而是MOD和黑客攻击,主要针对谷歌应用程序和android框架,始终遵守xda开发者政策)

一旦您学会了阅读smali,它几乎就像阅读原始java代码一样(但要有更多的LOC)。因此,您为检查密钥而添加的任何代码都可以找到、删除或替换。您甚至不需要每次重新编译来删除多个代码(有些搜索可以奇迹般地找到类似的代码片段),而且,即使需要编译/重新编译周期来查找它们,反编译只需一两分钟:所有内容都由apktool自动完成,甚至更多的由apkmanager自动完成

话虽如此,我的建议是实现某种在线评分表或类似的评分表,当用户在线查看评分表时,您可以检查您实现的哈希代码,并将其与相关的gmail帐户进行比较。这样你就可以向谷歌报告黑客行为,并向warez的用户发送一条恶意消息,解释为什么这是非法的

当然,可以实施一种新的黑客来消除评分表,但这会降低warez的兴趣

祝你好运


更新


在研究并回答了这个问题之后:(实际上是关于亚马逊DRM机制),我可以告诉你一些亚马逊是如何保护应用的:它包括了检查安装有效性的方法(你可以在我对这个问题的回答中看到他们是如何做到的)。这将使得任何黑客攻击应用程序的尝试都不是很困难,而是极其乏味。我认为这是一个优点:黑客不想花这么多时间做这么多重复的任务:这既没有挑战性,也很无聊。我在这种方法中看到的主要缺陷是,有可能黑客攻击亚马逊应用程序本身,总是返回一个有效的答案。但是,如果你把你当前的散列检查和散布在你的方法中的一些在线检查混合在一起,我相信黑客攻击的可能性会大大降低。

首先,我做的是<强>不>强。 我认为重要的一点是让应用程序在某些方面依赖于签名检查。不要让它立即生效,而是让它设置一些标志或更改一些值。稍后,使用这些标志,检查它们,让它们的缺失/不正确导致某种异常,可能会终止应用程序。只要签名检查只与当前相关,就很容易绕过它,删除行,一旦它涉及到代码中的更多区域,您的应用程序就变得更难(或更不容易…)被破解。在我看来,并不是所有的检查都应该为制裁调用相同的程序,因为这也会使找到保护机制和终止保护机制变得容易

当然,在非法软件的情况下采取的制裁可能会有所不同,您可能希望在非法使用时使应用程序崩溃,但您也可能希望使其保持运行,并且只发送要求用户购买应用程序合法副本的消息


如果这只是你不想听的,那么我很抱歉占用你的时间:)

这是一个多么有趣和令人不安的问题。:-)作为练习,你可以尝试通过亚马逊发布一个应用程序;他们有自己的数字版权管理机制;我想知道它是否比ProGuard更有效…

有可能,有比你更有才华的程序员(适用于所有程序员),是100%。如果这是真的,你就无法修复黑客行为。但是你可以花同样多的时间和精力在它上面,让它破产

如果你想赚大钱,你需要对你的目标用户群和行为科学做一些研究。你需要让玩游戏的用户带来新的收入,就是这样

此外,你完全搞错了。黑客是你的用户群中最活跃的成员,你的行为只是你不想让他们这么做

以Facebook上的Zynga游戏为例,你认为你的游戏会被黑客攻击吗当然,大约10万玩家只玩游戏,因为你可以使用机器人