47

proguard は静的文字列定数を難読化するように機能しますか?

4

4 に答える 4

75

FAQに記載されているように、ProGuard は文字列定数を難読化しません。Android 向けに特化した最近のクローズド ソースの兄弟であるDexGuardは、文字列の暗号化やクラスの暗号化など、追加のアプリケーション保護技術を提供します。

(私は ProGuard と DexGuard の開発者です)

于 2012-09-30T21:47:07.207 に答える
12

いいえ、ProGuard は文字列定数を暗号化しません ( Proguard FAQ リンク)

しかし、それを助けるいくつかの商用製品があります。Stringer Java Obfuscatorをお勧めします。これには、リバース エンジニアリングを可能な限り困難にするチェックコール コンテキストと整合性制御機能があるためです。IMHO Stringer は、現在市場に出回っている Java および Android 向けの最高の文字列暗号化ツールです。

Allatori Java Obfuscatorも参照してください。

NB 私は Licel LLC の CEO です。Stringer Java Obfuscator の開発者。

于 2012-05-17T10:34:21.097 に答える
8

ProGuard行うこと (正しく構成されている場合) は、インライン文字列定数です。それらを難読化することはあまり意味がありません。考えてみてください。ユーザーへのメッセージを表すために文字列定数を使用できます。

于 2012-04-19T01:10:54.637 に答える
3

マニュアルの難読化オプションを読んだ限りでは、答えはノーです。

文字列リテラルの難読化は理論的には可能ですが、クラス ファイルから読み取られるときに文字列リテラルの難読化を解除する特別なクラスローダーを使用する必要があります。これは難しいでしょう。その上、Java デバッガーを接続してアプリケーションを実行することで、誰かが元の文字列を簡単に復元できるため、あまり効果がありません。

于 2012-04-19T01:05:18.940 に答える