1

AFAIK Androidの逆コンパイルにより、apkからあらゆる情報を抽出できます。ftpパスワードやその他の機密文字列などの情報をJavaやその他のXMLファイルに保存するにはどうすればよいですか?サービスを呼び出す以外の方法はありますか?

問題の編集:

String uname = "mks";
    String part1="pass";
    String part2="my";
    String part3="word";

デビッドの答えによると、私は文字列を難読化しましたが、コンパイル後、パスワードを見ることができました

 String[] arrayOfString = new String[2]; arrayOfString[0] = "mks"; arrayOfString[1] = ("my" + "pass" + "word");
4

3 に答える 3

1

ここでは、文字列を難読化することについて話しています。これを実現する最も簡単な方法の1つは、コード内でコードを複数の部分に分割し、それらを組み合わせて最終結果を作成することです。すべての文字列はまだ存在しますが、元に戻すのは困難です。

たとえば、非表示にしようとしているパスワードが「102938475601」の場合、これを行う1つの方法は次のとおりです。

// Declare the parts
String part2 = "3847";
String part1 = "1029";
String part3 = "5601";

// Log in to the server
ftpServer.sendLogin("username", part1+part2+part3);

これは非常に単純な形の難読化です。データの保護にもっと熱心な場合は、非標準形式の暗号化でパスワードを暗号化する、上記のようにキーを分割するなどの追加の方法を試すことができます。

しかし、最終的には正しいです。Androidアプリにデータをパッケージ化する方法は、アプリを逆コンパイルする人がアクセスできない限り保証されません。あなたができることは、彼らが見つけたデータを解釈するのを難しくすることだけです。

于 2012-09-27T05:36:56.093 に答える
0

ある種の暗号化を使用できます。次に、暗号化キーを計算によって難読化して、リバースエンジニアリングの作業で簡単に取得できないようにします。キーと復号化されたデータは、使用後すぐに破棄されていることを確認してください。

認証とSSLを使用してネットワーク経由でパスワードを取得し、ソースコードで難読化されたURLを使用すると、パスワードを取得しようとする試みを検出し、そのソースからの接続を禁止できます。ただし、これは非常に追加の作業であり、サーバーがダウンした場合に潜在的な問題が発生します。

于 2012-09-27T05:33:18.570 に答える
0

それらが重要なデータである場合は、FTPサービスへのクレデンシャルなど、コードに保持しないでください。

難読化は少しだけ困難を加えるでしょう。最善の方法は、WS(もちろん、httpsと署名付き)への要求と、この資格情報への回答を行うことです。

もう1つの解決策(JAVAコードで文字列を難読化または分割するよりも優れています)は、この情報をネイティブライブラリに取り込み、JNIインターフェイスを使用してリアルタイムでアクセスすることです。

于 2016-11-17T16:50:29.707 に答える