」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何有效隱藏混淆程式碼中的敏感字串?

如何有效隱藏混淆程式碼中的敏感字串?

發佈於2024-11-10
瀏覽:331

 How can I effectively hide sensitive strings in obfuscated code?

揭開混淆程式碼中的隱藏字串

像ProGuard 這樣的混淆器可以透過混淆可見字串來增強程式碼安全性,但它們可能不足以處理敏感資訊例如URL 或許可資料。

隱藏敏感資訊字串

要有效隱藏敏感字串,請考慮以下技術:

  • 編碼:使用Base64等方法對字串進行編碼,使它們看起來是亂序的。
  • 加密: 使用AES 等演算法加密字串,使其在不加密的情況下難以理解key.

要實現這些技術,您可以:

  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