Dex檔案的完整性校驗

2021-07-05 07:34:50 字數 809 閱讀 5642

classes.dex 在 android 系統上基本負責完成所有的邏輯業務,因此很多針對android 應用程式的篡改都是針對 classes.dex 檔案的。在 apk 的自我保護上,也可以考慮對 classes.dex檔案進行完整性校驗,簡單的可以通過 crc 校驗完成,也可以檢查 hash 值。由於只是檢查classes.dex,所以可以將 crc 值儲存在 string 資源檔案中,當然也可以放在自己的伺服器上,

通過執行時從伺服器獲取校驗值。基本步驟如下:

首先在**中完成校驗值比對的邏輯,此部分**後續不能再改變,否則 crc 值會發生變化;

從生成的 apk 檔案中提取出 classes.dex 檔案,計算其 crc 值,其他 hash 值類似;

將計算出的值放入 strings.xml 檔案中。

核心**如下:

**:1. string apkpath = this.getpackagecodepath();

2. long dexcrc = long.parselong(this.getstring(r.string.dex_crc));

3. try else

11. } catch (ioexception e) 

但是上述的保護方式容易被暴力破解,完整性檢查最終還是通過返回true/false 來控制後續**邏輯的走向,如果攻擊者直接修改**邏輯,完整性檢查始終返回 true,那這種方法就無效了,所以類似檔案完整性校驗需要配合一些其他方法,或者有其他更為巧妙的方式實現。那麼我們可以借用第三方apk安全漏洞檢測平台:愛內測,能檢測程式可執行檔案dex是否做加密保護處理,給出修復建議,防止被dex2jar等工具反編譯。

檔案完整性校驗

什麼是 完整性校驗 所謂的 完整性校驗 顧名思義,就是檢查檔案是否完整。那麼,什麼情況下會導致檔案不完整捏?大概有如下幾種情況。1.感染病毒 比方說你的系統中了病毒,病毒感染了某個軟體安裝包或者某個可執行程式。那麼該檔案的完整性就被破壞了。雜湊演算法 雜湊演算法 掃盲 什麼是 雜湊演算法 雜湊演算法...

檔案完整性校驗

什麼是 完整性校驗 所謂的 完整性校驗 顧名思義,就是檢查檔案是否完整。那麼,什麼情況下會導致檔案不完整捏?大概有如下幾種情況。1.感染病毒 比方說你的系統中了病毒,病毒感染了某個軟體安裝包或者某個可執行程式。那麼該檔案的完整性就被破壞了。雜湊演算法 雜湊演算法 掃盲 什麼是 雜湊演算法 雜湊演算法...

資料完整性校驗 釋疑

完整性 雜湊校驗 雜湊是一種不可逆的對映,可以將資料經過雜湊演算法計算得到乙個雜湊值,而無法再將該雜湊值反映射得到原始的資料。一般來說,不同的資料得到的雜湊值是不同的,但也有極少的可能會出現碰撞,但這種概率極小。在網路資料完整性校驗中使用的雜湊演算法通常包括 md5 sha。資料完整性校驗 資料完整...