Android中的应用结算有多安全?

时间:2011-11-03 11:53:18

标签: android in-app-purchase decompiling cracking

我正在开发一款游戏,我想加入一些应用内购买。

我决定将购买的商品存储在数据库中并添加一些支票。但是,还有一个问题:是不是可以简单地反汇编应用程序,交换响应代码(例如USER_CANCELED和OK)所以,每次打开对话并中止,我的游戏都认为我买了这个项目?

到目前为止,我确实在我的应用上尝试过,但由于我缺乏baksmali的经验,我没有为我工作。理论上,(容易)可能吗?如果是的话,你究竟需要改变什么以及什么是对策?

谢谢!

3 个答案:

答案 0 :(得分:2)

Android有一个应用内结算安全指南doc:

https://developer.android.com/google/play/billing/billing_best_practices.html

这个问题总会随时出现,答案是没有“真正的解决方案”能够打败所有盗版行为。但是,有各种技术可以缓解问题并大规模防止盗版。

由应用程序开发人员决定他/她愿意在多大程度上限制盗版。通过混淆和服务器端验证和可撤销性的多个版本是很好的技术,而不仅仅是过度杀伤。传统观点认为,担心少数有时间和知识来破解应用程序实例的人可能并不重要。

答案 1 :(得分:0)

只是一个观点:我对Android应用程序知之甚少,但关于安全范围,您应该做出关于防止软件破坏或者防止破解程度的决定。更高的安全性将及时产生更麻烦的应用程序并导致您的真实客户感觉不好或将窃取他们的时间(因为性能下降)。您将花时间来保护您的应用程序,而不是让它变得更好,更有用。我建议你也阅读this nice comment。 “如果人们希望你的应用程序破解,他们会”

答案 2 :(得分:0)

如果您反编译,更改代码并将其再次打包为apk,则需要使用您之前使用的相同密钥进行签名 - 否则无法通过Play商店进行应用购买。

商店中的商品只能通过与您通过控制台上传的应用类似的应用进行访问。

但是,如果有人完全更改了代码,则可以模拟该过程,甚至无法到达商店。为防止这种情况,您应该通过后端服务器检查购买的合法性。您可能需要查看this问题以及如何执行此操作的答案。