问题描述
|
我想要的是混淆我的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混淆器,可以做到这一点。因此,如果愿意,可以将其添加到评估列表中以进行尝试:)