2016-11-24 13 views
0

検索後、私はproguardが文字列値を難読化できないことを理解しています。 char []型を試しましたが、逆コンパイル後に変数の内容を見ることができます。静的な文字列変数を難読化するソリューションはありますか?難読化した後、私のコードでアドレス(文字列)を秘密にする必要があります。obfuscate文字列値java android

コードを逆コンパイル

public static final char[] f4516b; 
.... 
static { 
    f4516b = new char[]{'h', 't', 't', 'p', ':', '/', '/', '1', '0', '0', '.', '1', '0', '.', '1', '0', '0', '.', '1', '0', '/'}; 
+1

なぜ人々はあなたのプログラムをあなたのURLを見るために逆コンパイルすると思いますか? – Gabriel

+0

私はデコンパイル後にそのアドレスで何かできるようにWebサービスを使用しています。その文字列を隠す必要があります – nouha

+0

@nouha私はそれを得ていますが、ソースの文字列を疎かにすることはあまり役に立ちません。ルートされたデバイスまたはエミュレータでは、すべてのネットワークトラフィックを監視し、とにかくip/hostnameを見つけるのは簡単です。 なぜあなたは誰でもアプリではできないアドレスで何かをすることができると思うのですか/なぜこれが問題なのですか? – Gumbo

答えて

2

後は、アプリケーション内のオフライン秘密のいくつかの種類を保つことができる方法はありません。アプリケーションがある時点で動作する必要がある場合、リバースエンジニアリングが自動的に可能です。そうしないと、アプリケーションに必要な情報が不足します。

1

ハッシュまたはソルトのような非難読化メソッドを作成し、難読化された文字列を静的変数に保持することができます。したがって、逆コンパイル時に文字列は表示されません。

しかし、人が難読化解除メソッドを使用する場合、あなたの文字列があります。また、リモートコールアドレスは、wiresharkなどを使用して発信Webコールを受信すると、常に使用可能になります。

+0

説明をお寄せいただきありがとうございます。難読化の手助けはできますか?ほんの一例、または解決策がありますか? – nouha

1

URLを非表示にするのはあまり意味がありません。それはネットワーク層で見ることができます。誰かがあなたのウェブサイトにアクセスするのを止めたいのであれば、たとえばHTTPS経由の基本認証を使用して、Android NDKを使って秘密を隠すことができます。これはまだデコンパイルすることができますが、それははるかに難しいかもしれません。

+0

返信ありがとうございます。あなたのソリューションの例が見えますか?私はこれを知らない、アンドロイNDKを使って秘密を隠す方法は? PLZについて説明できますか? – nouha

関連する問題