Javaの難読化-ProGuard / yGuard /その他? [閉まっている]
-
02-07-2019 - |
質問
これは、最近の質問と似たようなものです:
サイズ削減に最適なJava難読化アプリケーション 非リバースエンジニアリング可能なJavaプログラムの作成
ただし、一方はyGuardを推奨し、もう一方はProGuardを推奨しますが、両方とも言及しません。それぞれを比較し、フェンスの両側から人々の経験を聞くことができるかどうか疑問に思います。 ProGuard Webサイトでこの比較チャートを見ると、明らかにProGuardに傾いています。しかし、それぞれの実世界での経験はどうですか?どれがより小さな出力を生成しますか?どちらを逆コンパイルするのが難しいですか?それぞれがサポートしているJavaバージョンは何ですか?
個人的にはJ2MEの観点から特に興味がありますが、議論をそれに限定しないでください。
解決
Proguardは優れた製品です。特に時間をかけてJ2MEの設定を行う場合。
特にJ2MEには、 mBooster
というはるかに優れた(商用)製品があります。Proguardを使用した後、 アプリケーションのサイズが約25%改善されました。これは主に、Jarファイルのより良いZip圧縮と、クラスのマージと事前検証の包括的なサポートに関係しています。
他のヒント
プロジェクトの結果。
- 難読化-両方とも問題ありません。
- 最適化-ProGuardは、(測定されたアプリのボトルネックに対して)20%高速なコードを生成しました。
- コンパクトさ-ProGuardは約5%小さくなりました。
- 構成/ Ant -YGuardの構成ははるかに簡単です。
したがって、ProGuardにアドバイスしますが、構成とantの統合は間違いなく改善できます。
私の意見では-ProGuardは優れています。出力は少し小さくなります。最適化はより優れており、はるかに高速です。
どちらの場合も逆コンパイルは簡単です。つまり、Javaをよく知っていて、逆コンパイルしているもののビジネスロジックを本当に知っているなら、難読化されたクラスからソースに戻すのに問題はありません。
だから、私の意見では、ProGuardの方が優れています。