班级BillingService的评论建议:
您应该在使用之前修改和混淆此代码。
好的,但必须修改哪些?
班级名称? TAG用于记录?方法名称和数据成员?逻辑和程序流程本身?其他
换句话说,我可以理解混淆的必要性,但是我如何能够实现推荐而无需从头开始重写所有内容(可能存在比不修改任何内容更糟糕的错误)?
答案 0 :(得分:7)
我现在正在研究这个问题,到目前为止,我的方法如下:
希望这有帮助。
答案 1 :(得分:3)
这里没有好消息:除了使用Proguard之外,你还需要改变一切。这包括合并类,拆分它们,将某些方法从一个模块移动到另一个模块,特别是加密存储在数据库中的购买信息,如PurchaseDatabase
类的描述所示:
在存储任何信息之前,您应该使用混淆器 持久存储。混淆器应该使用特定的密钥 到设备和/或用户。否则攻击者可以复制数据库 充满有效的购买并将其分发给其他人。
原因是使用像AntiLVL这样的工具,很容易将您的反编译(混淆!)代码与原始样本进行比较,并从中扣除任何需要妥协的代码。不可能完全防止开裂,但你应该尽量使它变得困难。
答案 2 :(得分:0)
他们解释如下:
应用内结算示例应用程序是公开发布的,可以 任何人都可以下载,这意味着它相对容易 如果您使用样本,攻击者可以对您的应用程序进行反向工程 完全按照发布的代码。示例应用程序旨在 仅用作示例。如果您使用样品的任何部分 应用程序,您必须在发布或发布之前对其进行修改 生产应用程序的一部分。
特别是,攻击者会查找已知的入口点和出口点 在应用程序中,因此修改这些部分非常重要 您的代码与示例应用程序相同。
这意味着不要使用提供的代码,更改其中的一部分,以便黑客无法知道您使用的代码。
基本上,我认为它们并不代表billingService本身,而是您在应用程序中使用它的方式。