是否有一个Java混淆器,混淆了方法主体,但仍保留了方法名称?

问题描述

| 我想要的是混淆我的Java文件,但要保持类名和方法名不变。是否有提供这种功能的Java混淆器? 我曾尝试过使用Pro Guard Gui Guifuscator,但无法获得想要的东西。     

解决方法

        ProGuard可以做您描述的事情。如果您不希望它重命名类和方法:
-keep,allowshrinking,allowoptimization class * { <methods>; }
如果您根本不希望它重命名,删除或优化任何入口点(例如,合并类,内联短方法,内联常量字段,删除未使用的参数等):
-keep class * { *; }
那时,将没有太多空间来优化或混淆方法主体,因此您可能需要评估这是否确实是您想要的。     ,        参见Allatori。它允许您指定不想重命名的名称。 要进行扩展,您将使用配置文件指定要保留的名称。
<keep-names>
    <class access=\"private+\"/>
    <field access=\"private+\"/>
    <method access=\"private+\"/>
</keep-names>
上面的代码片段显示了如何省略名称混淆。此特定示例忽略具有私有访问权限或更高访问权限的类,字段和方法类型(即所有类,字段和方法类型)。     ,        看看Zelix KlassMaster。     ,        请参阅我们的Java Obfuscator。您可以告诉它哪些标识符必须保留在混淆程序中。     ,        我工作的公司很早就生产了一个名为dashO的Java混淆器,可以做到这一点。因此,如果愿意,可以将其添加到评估列表中以进行尝试:)