「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 難読化されたコード内の機密文字列を効果的に隠すにはどうすればよいですか?

難読化されたコード内の機密文字列を効果的に隠すにはどうすればよいですか?

2024 年 11 月 10 日に公開
ブラウズ:603

 How can I effectively hide sensitive strings in obfuscated code?

難読化されたコード内の隠された文字列を明らかにする

ProGuard のような難読化ツールは、表示されている文字列を難読化することでコードのセキュリティを強化できますが、機密情報には十分ではない可能性があります。 URL やライセンス データなど。

機密情報の非表示文字列

機密文字列を効果的に隠すには、次の手法を検討してください。

  • エンコーディング: Base64 などのメソッドを使用して文字列をエンコードし、スクランブルされたように見せます。
  • Encryption: AES などのアルゴリズムを使用して文字列を暗号化してレンダリングします暗号化キーがないと理解できません。

これらの手法を実装するには、次のことができます。

  1. 既知のキーを使用して文字列を手動で暗号化します。
  2. コードを調整します。文字列の復号化されたバージョンを使用します。例:
// Before encryption
public class Foo {
    private String mySecret = "http://example.com";
}

// After encryption
public class Foo {
    private String encrypted = "";
    private String key = "";
    private String mySecret = MyDecryptUtil.decrypt(encrypted, key);
}

R クラスの検索

逆コンパイル中、R クラスは難読化のため、常に容易に表示できるわけではありません。ただし、ProGuard マッピング ファイルは、その場所に関する洞察を提供します。

  • マッピング ファイルの「classes」セクションを見つけます。
  • 「R.java」を検索して元のファイルを見つけます。 R クラスのパス。
  • 逆コンパイルされたコード ディレクトリ内のそのパスに移動して、R クラスにアクセスします。 class.

R クラス番号について

逆コンパイルされたコード内の「2130903058」のような番号はリソース ID を表します。これらの番号は、レイアウト ファイルなどのプロジェクト内のリソースを参照します。

対応するリソースを見つけるには:

  • マッピング ファイルから R.java ファイルを逆コンパイルします。
  • 逆コンパイルされた R.java ファイル内のリソース ID を検索します。
  • 対応するリソース (レイアウト ファイルなど) が検索で指定されます。 結果。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3