首頁 > Java > java教程 > 主體

反編譯後如何有效隱藏混淆後的Android程式碼中的敏感字串?

DDD
發布: 2024-10-28 11:41:02
原創
423 人瀏覽過

How can I effectively hide sensitive strings in obfuscated Android code after decompilation?

在混淆的Android 程式碼中隱藏秘密

使用ProGuard 等工具混淆Android 程式碼時,經常會發現敏感字串在反反後仍然可見。為了解決這個問題,這裡有一些隱藏字串不被窺探的策略:

編碼和加密

ProGuard 不提供隱藏字串的機制。相反,請考慮實施您自己的編碼或加密方法。對於基本的模糊性,使用 Base64 等方法進行編碼就足夠了。為了獲得更嚴格的保護,請透過 javax.crypto.Cipher 等類別使用 AES 等對稱密碼來加密字串。

請記住,加密字串需要將加密金鑰儲存在應用程式中,這可能會損害安全性。

範例:

之前:

<code class="java">public class Foo {
    private String mySecret = "http://example.com";
}</code>
登入後複製

之後:

<code class="java">public class Foo {
    private String encrypted = "<manually created encrypted string>";
    private String key = "<key used for encryption";
    private String mySecret = MyDecryptUtil.decrypt(encrypted, key);
}</code>
登入後複製

之後:

R 類字串

您提到的R 類字串(例如2130903058)是對資源ID 的引用。它們不是隨機數,而是指向佈局文件等資源。在混淆過程中,對資源的引用將替換為這些 ID,以減少程式碼大小。 反編譯程式碼時,R 類別可能不存在,因為其內部結構已被混淆器破壞。但是,ID 仍然代表原始資源參考。

第三方 DRM考慮使用專用的數位版權管理 (DRM) 解決方案,而不是實施自己的保護措施。 Google 為 Android 提供了比自訂解決方案更安全的授權服務。

以上是反編譯後如何有效隱藏混淆後的Android程式碼中的敏感字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!