做Android開發的都知道要做混淆去防apk被反編譯、破解,通過proguard進行Java代碼混淆。但是,Android代碼混淆真的能起到實質性的作用嗎?看下面分析
1、Android代碼混淆
如上圖,對Android 代碼進行混淆后混淆器將代碼中的所有變量、函數、類的名稱加密為簡短的英文字母代號,在APP被破解后增加破解者對代碼的瀏覽難度。
但是混淆的功效只能運作在APP已被破解后,而且只是增加破解者的難度時間,對其避免破解的作意圖義不是很大。
那末,Android代碼混淆不能從根本上防破解,還有甚么方法呢?接下來看:
2、反工具破解之偽加密
偽加密是Android4.2.x系統發布前最流行的加密方式之1,通過java代碼對APK(緊縮文件)進行偽加密,其修改原理是修改連續4位字節標記為”P K 01 02”的后第5位字節,奇數表示不加密偶數表示加密。偽加密后的APK不但可以避免PC端對它的解壓和查看也一樣能避免反編譯工具編譯。
但是偽加密對其APK加密后市場也沒法對其進行安全檢測,部份市場會謝絕這類APK上傳市場。偽加密的加密方式和解密方式也早已公布致使它的安全程度也大大下降。Android4.2.x系統沒法安裝偽加密的APK。
從上可看,Android代碼混淆確切不如偽加密。但是Android代碼混淆、偽加密也不是最靠譜的方法。接下來繼續看。
3、反工具破解之APK緊縮文件破解
APK在PC上面可以看做1個緊縮文件,在Android系統里面它就是1個手機系統軟件文件。Android系統對APK的辨認是從標志頭到標志尾,其他過剩數據都會疏忽。所以說在標志尾添加其他數據對把APK看作緊縮文件的PC端來講這個文件被破壞了,所以你要對其進行解壓或查看都會提示文件已破壞,用反編譯工具也會提示文件已破壞,但是它卻不會影響在Android系統里面的正常運行和安裝而且也能兼容到所有系統。
但是這類APK緊縮包破壞存在APK偽加密1樣的問題,個別市場會不能辨認致使不能上傳市場。使用緊縮文件修復工具也能把它修復好讓我們做的保護消失。
3個分析,Android代碼混淆、偽加密、緊縮文件破解等均沒法從根本上解決Android代碼混淆防反編譯、破解的問題。那末,我們繼續探討。
4、使用第3方平臺加密
Google對Android APP的安全處理是給APK簡單加密、java層源碼加殼保護,對核心so庫、資源文件、主配文件、第3方jar包卻沒有任何保護處理。所做的保護也早已被黑客攻破但并沒有做任何升級保護致使Android APP現在沒有任何安全性。
拿移動利用安全行業的第3方平臺――“愛加密”來講,在Android代碼混淆的基礎上,以源碼加殼保護、so庫核心代碼加殼保護、資源文件簽名保護、APK防2次打包保護等方面來對APK進行全方面保護。而且加密后的APP完全不會影響其運行效力和用戶體驗,兼容性是最優的。
綜上所述,Android代碼只做混淆是不行不行的,要真正保護Android代碼的安全,還是要尋求更安全的加密保護技術!表只做Android代碼混淆啦!
上一篇 sdut 6-1 多態性與虛函數
下一篇 模仿去哪兒的磁貼效果