iOS代码混淆初探

本文探讨了iOS代码混淆的两种方法:一是利用宏定义混淆类名和方法名,通过预编译文件实现;二是直接修改Mach-O文件的__objc_classname和__objc_methname段。文中介绍了开源项目ios-class-guard的使用,并指出混淆后虽然增加了逆向分析难度,但依然可通过动态调试应对。
摘要由CSDN通过智能技术生成

iOS代码混淆初探

在没有对应用的代码做过特殊处理的情况下,一般应用的代码中的类名和方法都是明文的。在逆向分析中,通过class-dump获取MachO可执行文件中的所有类、定义的方法和属性,就能很快的从名字入手猜到这个方法是做什么用的,所以类名和方法名的混淆就特别重要了。

方法一:运用宏定义的方式进行混淆

这是一种比较简单又方便的做法,我们只需要在release打包时将现有工程里面的类名和方法名替换为一些无意义的字符串就可以了。这种全局的宏定义替换一般都是写在pch预编译文件里的,在Xcode中我们可以新建pch文件,然后在BuildSettings中设置预处理文件的地址就可以了。
设置PrefixHeader
在这里插入图片描述在这里插入图片描述
因为我们对每一个类进行这样的操作会显得很麻烦,Git上有一个开源项目叫ios-class-guard也是运用这种宏定义的方式,它的原理就是把使用的所有系统库符号dump下来并过滤掉,只生成用户需要混淆的符号(https://github.com/Polidea/ios-class-guard)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值