27

DexGuard の動作を確認したいのですが、無料の試用版がないようです。

DexGuard は Android アプリケーションを暗号化できますか? それとも単にコードを難読化するだけですか? DexGuard 暗号化はどのように機能しますか? 逆コンパイルの前後に DexGuard で実行されるサンプル アプリケーションのコードを提供できれば、それは素晴らしいことです。

4

3 に答える 3

70

ProGuardは名前の難読化を提供します。クラス、メソッド、およびフィールドの元の名前を短くて意味のない名前に置き換えることができます。DexGuardはさらに、文字列の暗号化とクラスの暗号化を提供します。暗号化という用語は、基本的により積極的なタイプの難読化であるため、このコンテキストでは混乱を招く可能性があります。指定された文字列とクラスは、意図的に複雑な暗号化された形式で保存され、アプリケーションで必ず利用できるキーとアルゴリズムを使用して実行時に復号化されます。同様に、Google Play マーケットは Android 4.1 向けのアプリケーション全体を暗号化できます。ランタイム環境は、アプリケーションが実行される前に、制御された方法でアプリケーションを復号化します。

(私は ProGuard と DexGuard の開発者です。興味がある場合は、お気軽にお問い合わせください)

于 2012-11-07T23:21:48.080 に答える
3

「DES」Alg を使用して指定されたクラスを暗号化する古いバージョンの DexGuard。後で「AES」algを変更します。指定されたクラスを暗号化した後、暗号化されたデータを復号化メソッドを使用してデータ配列形式で別のクラスに格納します。Dexの静的ブロックである復号方法は、制御フロー難読化とAPI隠蔽を利用して難読化したclinit形式の方法です。そのため、復号化方法を難読化解除するのは少しです。他のクラスでは、指定されたクラス変更をリフレクション オペコードに参照します。APK が実行されるたびに、暗号化されたクラスが最初に静的メソッドで復号化されます。復号化されたクラスは、リフレクション API を使用して dvm メモリにロードされます。そのため、他のクラスは指定されたクラスを適切に参照できます。それでおしまい。私の意見では、DexGuard は非常に強力な難読化ツールです。各機能の難読化が APK に適用される場合、

于 2013-07-22T08:42:38.007 に答える
2

彼らは暗号化という用語を使用していますが、それは実際には難読化のようです。特定の文字列/値を暗号化する可能性がありますが、暗号化キーもアプリに保存する必要があるという事実は、コードに「ロック」を提供すると同時に「キーをパッケージ化する」という単純な理由からです。 " それと。

于 2013-03-04T18:48:59.140 に答える