如何防止proguard完全混淆方法

Posted

技术标签:

【中文标题】如何防止proguard完全混淆方法【英文标题】:how to prevent proguard from completely obfuscation of a method 【发布时间】:2015-04-02 21:05:03 【问题描述】:

我使用 -keep class 和 -keepclassmembers 但这些似乎只保留类中的方法名称和字段,我想告诉 progaurd 不要触摸特定方法中的任何内容,即使是“for”循环或“if”语句甚至变量名! ,我想看到一个方法在反编译后看起来和原来的版本一模一样,就像你在调试模式下反编译一个程序一样! ,但只有一种方法不是所有其他方法。 有没有办法使用 proguard 做到这一点? 谢谢:)

【问题讨论】:

【参考方案1】:

您总是可以创建一个新的虚拟类并在其中包含方法,然后排除整个类。只需确保它不会通过在某处引用类(如 SomeClass.somevar = 3;)来修剪类。

据我所知,不可能只排除一种方法,但如果你修改 ProGuard 的源代码,它可能会......这是一个完全不同的主题,可能比它的价值付出更多的努力。

【讨论】:

感谢您的回答,但是如何排除antire类?使用“-keep class”和“-keepclassmembers”只保留类和成员名称,并在方法内部进行混淆! :-) ***.com/questions/15476315/…

以上是关于如何防止proguard完全混淆方法的主要内容,如果未能解决你的问题,请参考以下文章

使用 ProGuard 混淆私有字段

DexGuard/Proguard 混淆注释值

使 Proguard 完全忽略包

如何在 Eclipse 中混淆我的代码? (安卓)

防止 Proguard 使用注释混淆子类

Android proguard代码混淆