能够增长安全性,防破解安全
数据加密(字符串、网络数据、敏感数据)网络
应用加壳(二进制加密)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、对字符串进行加密
进行异或运输对字符串进行加密