21

1 つの特定のクラス com.acme.Algorithm のプライベート メソッドと定数だけを難読化するためのスマートな ProGuard 構成は何でしょうか?

誤って .jar を開いたときに明白であってはならないアルゴリズムが含まれているため、それを難読化したいと思います。

私はプロガード初心者です。AFAIU、「キープ」を使用する必要がありますが、「難読化を行う」という肯定的な論理は使用できませんよね? では、「すべてを保持」構成からクラスを除外する方法は? 注: 顧客が意味のあるスタック トレースを表示できるようにするため、現時点では他のクラスを難読化したくありません。

4

1 に答える 1

25

単一のクラスを難読化してもあまり効果はありません。クラス名といくつかのフィールド名とメソッド名が変更される可能性があり、一部のコードが最適化される可能性があります。難読化は、小さな情報を隠すにはあまり効果的ではない傾向があります。アプリケーション コードを難読化すればするほど、理解が難しくなります。

そうは言っても、次のように指定できます。

-keep class !com.acme.Algorithm { *; }

com.acme.Algorithm の外部にあるすべてのクラス/フィールド/メソッドを保持します。

于 2013-07-28T10:30:49.027 に答える