对于iOS App开发者来说,只是完成产品的需求是远远不够的,需要考虑安全方面的问题。
对于微信、陌陌、来往、QQ、WhatsApp等IM工具,我们需要关注其在本地是否保存聊天信息、联系人; 对于电商类App,我们需要关注交易环节是否安全,网络请求是否安全;对这些关键环节的安全上的评估,就需要用到iOS逆向工程。
对于需要用户注册和登录的应用来说,用户的密码是如何在网络上传输的、在本地是否保存明文密码、聊天信息、联系人,这些都可以通过逆向工程的手段来进行分析。
iOS逆向工程,就是拿到应用的关键信息,基于这些信息的用途,可以有如下的分类;
- 安全审计
- 分析恶意软件
- 借鉴别人的软件
- 破解使用限制
安全审计
一般大公司都会有相应的安全团队,会负责各个业务的安全问题,也会对iOS App的安全性进行内部的审计和分析,及早发现和反馈,以便开发团队的同学能够及早修正问题。
分析恶意软件
这种一般是对安全特别感兴趣或者是杀毒软件公司,会对恶意软件进行分析,以便发出预警,避免用户中招。
借鉴别人的软件
有时候想了解下别人用的第3方库有哪些,甚至关键地方是如何实现的,特别是对于越狱后的某些应用,想了解其实现原理,就需要用到逆向工程。
破解使用限制
通过逆向工程,可以分析出软件使用限制所利用的机制,能够对关键的地方打补丁,破解相应的使用限制。这种在Windows平台上存在很久。比如最近有些文章,介绍如何破解Reveal的使用限制、去掉过期的弹框等文章,就用到了iOS逆向工程的相关知识。