能夠增長安全性,防破解安全
數據加密(字符串、網絡數據、敏感數據)網絡
應用加殼(二進制加密)app
代碼混淆(類名、方法名、代碼邏輯)工具
等等。。。加密
代碼混淆方案:spa
1. 源碼混淆:類名、方法名、協議名 ip
2. LLVM中間代碼IR的混淆(容易產生BUG)字符串
推薦源碼混淆方案。源碼
源碼混淆怎麼作?it
1、經過宏定義混淆核心方法名、類名等等,不須要全部的東西都混淆
在pch文件中,定義宏
好比 : #define buyVip dfdds 給bugVip這個方法名定義一個宏,這樣代碼預處理時,就會將buyVip替換成dfdds,生成的二進制可執行文件,被人反編譯後,別人看到是dfdds 而不是buyVip,這樣他逆向起來就會增長很多難度
注意點:
1.不能混淆系統方法
2.不能混淆init開頭的自定義初始化方法
3.混淆屬性時須要額外注意set方法
4.若是xib sb中用到了混淆的內容,好比關聯的類名,須要手動修改
5.能夠將要混淆的符號都加上一個特有的前綴,跟系統自帶的符號進行區分
6.混淆過多可能會被appstore拒絕上架,須要說明用途
混淆工具:
手動混淆確定會累死,別急下面上工具:
iOS-class-guard
這個三方工具,是基於class-dump的擴展, 用class-dump掃描出可執行文件中的類名、方法名、屬性名等並作替換,同時會更新xib和sb中用到名字
2、對字符串進行加密
進行異或運輸對字符串進行加密