proguard は静的文字列定数を難読化するように機能しますか?
4 に答える
いいえ、ProGuard は文字列定数を暗号化しません ( Proguard FAQ リンク)
しかし、それを助けるいくつかの商用製品があります。Stringer Java Obfuscatorをお勧めします。これには、リバース エンジニアリングを可能な限り困難にするチェックコール コンテキストと整合性制御機能があるためです。IMHO Stringer は、現在市場に出回っている Java および Android 向けの最高の文字列暗号化ツールです。
Allatori Java Obfuscatorも参照してください。
NB 私は Licel LLC の CEO です。Stringer Java Obfuscator の開発者。
ProGuardが行うこと (正しく構成されている場合) は、インライン文字列定数です。それらを難読化することはあまり意味がありません。考えてみてください。ユーザーへのメッセージを表すために文字列定数を使用できます。
マニュアルの難読化オプションを読んだ限りでは、答えはノーです。
文字列リテラルの難読化は理論的には可能ですが、クラス ファイルから読み取られるときに文字列リテラルの難読化を解除する特別なクラスローダーを使用する必要があります。これは難しいでしょう。その上、Java デバッガーを接続してアプリケーションを実行することで、誰かが元の文字列を簡単に復元できるため、あまり効果がありません。