原文: iOS APP的加固保护原理
世所公认,iOS系统安全性非常高,很少出现漏洞,几乎不会中毒的情况。然而随着各种iOS安全隐患的频频出现,人们逐渐认识到,iOS跟Android一样也面临严重的安全问题。苹果宣称所有的iPhone都很安全,不会被恶意软件攻击,其实这只不过苹果封闭式的系统管理能够及时处理漏洞罢了,这也正是苹果不敢开放的原因。
我们已经习惯,每个新的iOS系统出来没多久,就会有大牛找到越狱的方法。比较有名的越狱团队如iH8Sn0w、Geohot、Comex等,以及国内的盘古团队。就像最新iOS 10.1.1版本,刚出来一个星期,安全研究员Luca Todesco就在推特上晒图自曝越狱成功,iH8Sn0w和盘古团队也取得了不错的进展。只要越狱了,iPhone手机就处于完全裸奔状态,很多平时不能做的事情就可以做了,比如破解分析APP、大范围泄露用户隐私数据等。
其中,跟我们iOS开发者息息相关的问题,主要就是被破解、分析。APP被破解分析进而刷单作弊,或者APP被山寨以次充好等。APP一直以来存在的“山寨”现象,引起越来越多开发者的不满,山寨泛滥的后果将是劣币驱逐良币,打击创新者的积极性,造成恶性循环。
那么如何保护我们的APP呢?
我们可以从以下几个方面来保护我们的APP:
字符串混淆
对应用程序中使用到的字符串进行加密,保证源码被逆向后不能看出字符串的直观含义。
类名、方法名混淆
对应用程序的方法名和方法体进行混淆,保证源码被逆向后很难明白它的真正功能。
程序结构混淆加密
对应用程序逻辑结构进行打乱混排,保证源码可读性降到最低。
反调试、反注入等一些主动保护策略
这是一些主动保护策略,增大破解者调试、分析APP的门槛。
总之,添加以上的一些保护措施后,iOS APP的安全性会获得很大的增强,大大提高了破解者破解的难度。对于iOS开发者来说,有必要了解这些措施,特别是针对一些金融、证券类APP的开发,保护方面的需求比较大,比如国内某知名移动支付工具就添加了一些调试检测以及反调试的功能。