iOS代码混淆初探
在没有对应用的代码做过特殊处理的情况下,一般应用的代码中的类名和方法都是明文的。在逆向分析中,通过class-dump获取MachO可执行文件中的所有类、定义的方法和属性,就能很快的从名字入手猜到这个方法是做什么用的,所以类名和方法名的混淆就特别重要了。
方法一:运用宏定义的方式进行混淆
这是一种比较简单又方便的做法,我们只需要在release打包时将现有工程里面的类名和方法名替换为一些无意义的字符串就可以了。这种全局的宏定义替换一般都是写在pch预编译文件里的,在Xcode中我们可以新建pch文件,然后在BuildSettings中设置预处理文件的地址就可以了。
![设置PrefixHeader](https://img-blog.csdnimg.cn/20190918113232270.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1R1R2VMZQ==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190918113215998.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1R1R2VMZQ==,size_16,color_FFFFFF,t_70)