代码安全
代码混淆
混淆分许多思路,比如:
1.花代码花指令,即随意往程序中加入迷惑人的代码指令
2.易读字符替换
最简单的方法就是使用#define来替换易读的字符串,原理可以参考念茜的博客.
但是使用念茜女神的方法需要自己把需要替换的字符串手动的写入单独的文件,工作量太大,这里推荐一个比较好用的OC工程代码混淆工具:
下载一个oc 的代码混淆工具:codeobscure,原理是通过运行ruby脚本来遍历工程中的属性、方法、类名进行混淆,亲测可用。
使用前请先阅读codeobscure的作者对他的介绍:codeobscure使用文档,这儿介绍一下我自己使用codeobscure的过程中踩过的坑:
-
三方库、以及其他不需要混淆的文件注意分文件夹管理,以备后续通过配置忽略路径来忽略这些不需要混淆的文件。
-
由于codeobscure不会混淆静态字符串如
@"text"
,因此以下几类不能混淆:- 与网络请求相关的模型类的属性,并且您使用了MJExtension等直接将json对象转换为模型的三方库。
- 使用了
NSClassFromString(@"classNameA")
方法将静态字符串转换为Class
的该类的类名不能混淆。 - 被键值观察的属性不能被混淆。
网友评论