1

我想知道是否有人可以告诉我如何使用 proguard 在 jar 文件中混淆单个文件,或者只是两个文件。我希望保留每一个类,但我想要混淆的不是我唯一的选择,因为这需要大量时间并且非常乏味.. 那么,是否可以只混淆一个类?如果是这样,如何..提前谢谢!

4

2 回答 2

1

混淆单个类通常不是很有用:它很容易找到并且很容易进行逆向工程,因为其他类和对它们的引用仍然是可读的。因此,ProGuard 默认会混淆所有类(指定的类除外)。

话虽如此,这应该有效:

-keep class !mypackage.MySecretClass, !mypackage.MyOtherSecretClass {
    *;
}

它保留除指定类之外的所有类的类/字段/方法名称。换句话说,它只会混淆指定的类。

于 2013-01-12T16:47:07.013 回答
0

您可以排除除要混淆的项目之外的所有项目;请参阅使用 proguard 时如何保留/排除特定的包路径?

如果这看起来不切实际,一种解决方法是将要混淆的文件打包到自己的 jarfile 中,运行 ProGuard,然后将这些文件与要包含在新 jarfile 中的其他文件重新打包。

于 2013-01-11T18:24:50.210 回答