Android app如何加密?
歡迎訪問 ofollow,noindex" target="_blank"> 網易雲社群 ,瞭解更多網易技術產品運營經驗。
Android App包含的內容有dex檔案,so檔案,res,assets資原始檔。對應的加密按此內容分為三大方面:dex保護、so加密、資源保護(res, assets)。
一、dex保護
由於未保護的dex檔案,是從java編譯打包而來,破解成本低較易受到攻擊。其保護措施從最基本的加殼,到函式執行體抽取、動態載入,再到當前的vmp虛擬機器加固,安全逐步增強。尤其是vmp加固,更是使用了自研虛擬機器解釋函式體,如果指令加密替換做的好,會讓破解者很難受。
二、so加密
so檔案,由起初的段加密,發展到自定義elf結構的加密方式,能防止IDA檢視函式名稱,增加破解成本和難度。
三、資源保護
res資原始檔,通常只採用混淆的方式增加逆向難度。assets資源,一般不處理。但隨時H5應用日益增多,部分廠商(易盾、娜迦)有提供assets加密的功能,實現原理不詳。
除了上述三點防護外,還有防反編譯、防二次打包、防除錯、防模擬器、防xposed功能等。
a) 防反編譯,一般是對市面上的反編譯工具(例如apktool)做對抗,利用其漏洞,致使反編譯失敗;
b) 防二次打包,一般常用的是在程式碼裡儲存簽名信息,啟動時在native層將當前apk的簽名信息與儲存的簽名進行比對。市面上已有破解工具,可以在常用實現方式上做些升級。
c) 防除錯,通過ptrace程序,阻止破解者再ptrace除錯。
d) 防模擬器,檢測/system/bin/su和/system/xbin/su檔案。
e) 防xposed,通過檢測XposedHelpers的methodCache,判斷是否被hook。
網易雲安全(易盾)提供Android 應用加固 服務,感興趣的同學 點選可免費試用