當前安卓App加固到底該如何做到防篡改?


安卓dalvik虛擬機要求dex文件在內存中以明文形式存在,那么任何加殼方法到頭來到了內存還是明文存在,各種dump方法終究是可以獲得它的。App究竟應該如何加固才能防止被篡改?

 

加固和 dump 針鋒相對並不新鮮,但我們的工作,就是要不斷提升反編譯的難度。目前的技術方案,可以比較有效地對 DEX 文件進行加殼防護,防止被靜態反編譯工具破解獲取源碼,可以防止通過在內存中破解獲取源碼。

我們可以通過混淆代碼的方式,對編譯好的class文件進行混淆處理,處理后的代碼與處理前代碼能夠完成相同的功能,但混淆后的代碼很難被反編譯,即使反編譯成功也很難得出程序的真正語義。比如 ProGuard 就是一個混淆代碼的開源項目,它不僅能夠保護代碼,而且能夠精簡編譯后的程序大小,減少內存占用。

對 DEX 文件進行加殼防護仍然是需要的,我們可以選擇整體 DEX 加固或者拆分 DEX 加固的方式,隱藏源碼防止直接性的反編譯。拆分 DEX 加固需要注意 DEX 文件的數據結構,選取 classdata 和 classcode 這兩部分,即使拆分出來也不會泄露 class 數據和字節碼數據,反編譯出來也不完整,安全性較高。尤其是虛擬機加固的方式,對字節做一些變化處理,即使把替換后的數據恢復了,也不會變形成為之前的字節碼,安全系數較高。詳細原理請參閱:一文了解安卓APP逆向分析與保護機制

相關閱讀:大公司怎么做Android代碼混淆的?

Android App的破解技術有哪些?如何防止反編譯?

關於網易易盾的加固保護

一文讀懂加固apk的開發者是怎么想的

一文了解安卓APP逆向分析與保護機制

網易雲(易盾) Android 應用加固IOS應用加固服務均可免費試用,有效防止應用被逆向分析、反編譯、二次打包,核心功能包括 DEX 加固,SO 加密保護,內存防 Dump 保護,防調試器,防模擬器等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM