拿来两种代码混淆方案
第一中来自念茜的随机字符串混淆,好处是不影响继续开发,可以在编译时才会对代码混淆
iOS 对源代码进行混淆
http://www.jianshu.com/p/98227950a474
//下面文章是自动获取配置列表的脚本 , 可配合第一种方法使用
安全攻防之代码混淆的一个小工具
http://blog.csdn.net/yxh265/article/details/38438959
记录一下一些问题
1.confuse.sh func.list 文件 最好放入工程的根目录文件下,不然报找不到/sh/bin文件 (Run Script中,路径地址 最好填这个 /bin/sh $PROJECT_DIR/confuse.sh)
2.且不要加入工程中去,不然ipa包里面 还是能看到你的宏定义文件
3.由于是利用宏定义去替换方法名和属性名, 所以我在用 自动获取配置列表的脚本
的这个file的时候,会获取好多方法里面调用的方法,导致很多报错, 最稳妥的办法还是老老实实在 func.list 文件中 添加你需要混淆的关键 方法名/属性名. 其他无关紧要的属性/方法暴露也不要紧的吧?
4.自动获取配置列表的脚本
这个很简单, 创建一个名为 file.c的文件,复制文章里面的c代码,修改你要轮询的文件地址,
在终端里面 执行gcc file.c -o filex
就可以得到一个filex的文件,打开里面就是所有楼出来的方法名属性名
5.多说一句,下面的这个第二种方法也有点问题,至少不是所有人通用的,大家可以借鉴使用.
6.再补充一下,针对属性进行混淆后,如果对此属性有监听kvo等情况,混淆后监听失效
第二种 来自 zm53373581
好处是 不用配置列表,直接把工程文件全部随机掉, 缺点是执行脚本文件后 工程文件你也看不懂了
文章地址
http://blog.csdn.net/zm53373581/article/details/49120895
1.终端cd 到zmconfuse.sh文件 所在的文件夹内。
2.再把你的工程文件拷贝到此文件夹内。
3.打开zmconfuse.sh文件,把 ROOTFOLDER="shakefun" 的shakefun替换成你的工程文件名。
4.添加排除的第三方库等。保存修改。
5.直接把zmconfuse.sh文件,拖到终端内,ENTER。
完成!!!