【发布时间】:2012-02-06 01:27:44
【问题描述】:
BillingService 类的评论建议:
您应该在使用之前修改和混淆此代码。
好的,但是什么必须修改?
类名?用于记录的 TAG?方法名称和数据成员?逻辑和程序流程本身?其他?
换句话说,我可以理解混淆的必要性,但是我如何才能在不从头重写所有内容的情况下实施建议(可能存在比不修改任何内容更糟糕的错误)?
【问题讨论】:
标签: android google-play in-app-billing
BillingService 类的评论建议:
您应该在使用之前修改和混淆此代码。
好的,但是什么必须修改?
类名?用于记录的 TAG?方法名称和数据成员?逻辑和程序流程本身?其他?
换句话说,我可以理解混淆的必要性,但是我如何才能在不从头重写所有内容的情况下实施建议(可能存在比不修改任何内容更糟糕的错误)?
【问题讨论】:
标签: android google-play in-app-billing
我目前正在处理这个问题,到目前为止,我的方法如下:
希望这会有所帮助。
【讨论】:
这里没有好消息:除了使用 Proguard 之外,您还需要进行任何更改。这包括合并类、拆分它们、将某些方法从一个模块移动到另一个模块,尤其是对存储在数据库中的购买信息进行加密,正如PurchaseDatabase 类的描述所暗示的那样:
在将任何信息存储到 持久存储。混淆器应使用特定的密钥 给设备和/或用户。否则攻击者可以复制数据库 充分有效的购买并将其分发给其他人。
原因是使用 AntiLVL 之类的工具很容易将反编译(混淆!)代码与原始示例进行比较,并从中扣除任何需要破坏它的内容。完全防止开裂是不可能的,但你应该尽量让它变得困难。
【讨论】:
他们解释如下:
应用内计费示例应用程序是公开分发的,可以 任何人都可以下载,这意味着它相对容易 如果您使用示例,攻击者会对您的应用程序进行逆向工程 代码与发布时完全相同。示例应用程序旨在 仅用作示例。如果您使用样本的任何部分 应用程序,您必须在发布之前对其进行修改或将其发布为 生产应用程序的一部分。
特别是,攻击者寻找已知的入口点和出口点 在应用程序中,因此修改这些部分很重要 您的代码与示例应用程序相同。
意思是不要使用提供的代码,更改其中的一部分,这样黑客就无法知道你使用的是什么代码。
基本上,我认为它们不是指 billingService 本身,而是指您在应用程序中使用它的方式。
【讨论】: