我想知道是否有人能告诉我如何混淆一个文件,或者可能只是两个文件,在一个jar文件中使用proguard。我希望保留每一节课,但我想要混淆的那一节不是我唯一的选择,因为这需要大量的时间,而且非常乏味。那么,是否有可能只模糊一个类呢?如果有,如何……提前感谢!
混淆单个类通常不是很有用:它很容易找到,也很容易逆向工程,因为其他类及其引用仍然是可读的。因此,ProGuard在默认情况下会混淆所有类(指定的类除外)。
话虽如此,这应该可以工作:
-keep class !mypackage.MySecretClass, !mypackage.MyOtherSecretClass {
*;
}
保留所有类的类名/字段名/方法名,除了指定的那个。换句话说,它只会混淆指定的类。
您可以排除除您想要混淆的所有项;请参阅如何在使用proguard时保留/排除特定的包路径?
如果这看起来不实际,一个解决方法是将你想要混淆的文件打包到它们自己的jarfile中,运行ProGuard,然后将这些文件与你想要包含在新jarfile中的其他文件重新打包。