最近,我的游戏被黑了,一个用户向服务器提交了一个不可能的分数。分数与已验证的校验和和正确的数据一起提交。
我坚信用户必须对我的APK文件进行反向工程才能找到POST请求。
现在我想知道什么是防止再次发生这种情况的好方法,所以我考虑了验证应用程序的SHA1签名。也许通过这种方式,我可以确保该应用程序已由我签名,并且不是该应用程序的反向工程和更改版本。
这可能吗?还是会有更好的解决方案来解决这个问题?
我正在使用LibGDX。
最佳答案
首先,您确实必须混淆您的代码。您可以找到有关ProGuard和代码混淆here的更多信息。
其次,您可以使用Google Play服务中提供的GoogleAuthUtil,该服务可用于运行Android 2.2或更高版本的设备。
GoogleAuthUtil完全满足您的需求:
您的客户端服务器调用通过HTTPS请求转到Google,Google检查该调用是否由使用您的发行证书签名的应用程序进行,然后将请求发送到您的服务器。
您可以找到有关如何实现此here的官方教程和官方文档here。
干杯!