古詩詞大全網 - 藝術簽名 - apk如何防止被破解

apk如何防止被破解

現在主要工具是接觸SDK,為了防止遊戲包被破解編譯,以及發現加密串,我來分享下以下幾點:?

防破解技術主要有四種實現方式:?

1.代碼混淆(ProGuard)技術?

2.簽名比對技術?

3.NDK .so 動態庫技術?

4.動態加載技術?

5.第三方平臺加密以及檢測漏洞

這個在?Android 安全之如何反編譯與加密apk包?這篇文章中也提及到了相關的知識點。

第壹種: 代碼混淆技術(ProGuard) 該技術主要是進行代碼混淆,降低代碼逆向編譯後的可讀性,但該技術無法防止加殼技術進行加殼(加入吸費、廣告、病毒等代碼),而且只要是細心的人,依然可以對代碼依然可以對代碼進行逆向分析,所以該技術並沒有從根本解決破解問題,只是增加了破解難度。

第二種: 簽名比對技術 該技術主要防止加殼技術進行加殼,但代碼逆向分析風險依然存在。而且該技術並不能根本解決被加殼問題,如果破解者將簽名比對代碼註釋掉,再編譯回來,該技術就被破解了。

第三種: NDK .so動態庫技術,該技術實現是將重要核心代碼全部放在C文件中,利用NDK技術,將核心代碼編譯成.so動態庫,再用JNI進行調用。該技術雖然能將核心代碼保護起來,但被加殼風險依然存在。

第四種: 動態加載技術,該技術在Java中是壹個比較成熟的技術,而Android中該技術還沒有被大家充分利用起來。

第五種: 第三方平臺使用

主要講解第四種方法,該技術可以有效的防止逆向分析、被破解、被加殼等問題,動態加載技術分為以下幾步:

將核心代碼編譯成dex文件的Jar包

對jar包進行加密處理

在程序主入口利用NDK進行解密

再利用ClassLoader將jar包進行動態加載

利用反射技術將ClassLoader 設置成系統的ClassLoader。