2012-04-02 11 views
0

すぐにリリースされるAndroidアプリケーションを開発しています。私のクラスには非常に機密性の高い情報が含まれています。 Proguardを使用することで、私はソースコード全体を難読化しましたが、後に多数のバグに会いました。今私はコードを一つ一つ難読化するつもりです。特定のクラスを難読化し、ほとんどのクラスをスキップする方法は?おかげさまで アンドロイドで特定のクラスを難読化する方法は?

+2

おそらく役に立ちます:.stackoverflow.com/questions/4458909/how-to-use-java-annotations-to-guide-androids-proguard – Thilo

+0

これは意味をなさないことを理解しています。なぜなら.class .dexファイルは異なります。 dexは1つのファイル内のすべてのクラスです。コード内の他の場所への参照をすべて変更する必要があるため、クラスを変更することは不可能です。 –

+1

私の説明は少し奇妙かもしれません。私はクラスを難読化し、発生する可能性のあるいくつかのバグを見つけようとしています。安全であれば、次の難読化プロセスで別のクラスを組み込み、再びいくつかのバグを見つけます。私は市場にリリースすることが安全だと感じるまで、この手順を繰り返します。 – KnightCavalry

答えて

0

私は難読化されたJavaクラスに多くの問題がありました。実際、yGuard(yGuard!= proguard、私が知っている)は* .dexに変換できない* .classファイルを生成しました。

コードに機密データが含まれている場合は、「security by obscurity」のように表示されます。たぶん、暗号化されたプロパティファイルではなく、*。classファイルの中に機密データを保存する必要があります。

+0

しかし、.classファイルを逆コンパイルして解読鍵を得ることができます。あなたが何をするかは関係ありません。もしあなたがあいまいでセキュリティに頼っているのであれば、いつもそれを壊す方法があります。 – Marcelo

+0

Jes、確かに。それで、私は* .class-filesに秘密を保存しないと言いました。あなたのコードの中にあらかじめ共有された秘密を保存すると、それは盗まれる可能性があります。 –

+0

はい、あなたのアドバイス@ckuetbachを考えます。しかし、私はまだコードを難読化する必要があります。私はそれが超天才ハッカーから多くを助けないことを知っています。しかし、それはリバースエンジニアリングの明白な試みを防ぐはずです。 – KnightCavalry

0

を使用すると、特定のクラスに難読化プロセスを作りたい場合は、次のコード行を使用することができ、この

のように使用してみてください。

構文:

-keep public class yourPackageName.youClassname { *; } 

例:

-keepパブリッククラスcom.facebook.katana.MainClass {*。 }

関連する問題