本系列文章将对iOS逆向工程的基本流程,以及涉及到的工具进行简要的介绍。
维基百科对逆向工程的定义如下:
逆向工程(又称反向工程),是一种技术过程,即对一项目标产品进行逆向分析及研究,从而演绎并得出该产品的处理流程、组织结构、功能性能规格等设计要素,以制作出功能相近,但又不完全一样的产品。逆向工程源于商业及军事领域中的硬件分析。
需要逆向工程的原因如下:
- 接口设计。由于互操作性,逆向工程被用来找出系统之间的协作协议。
- 军事或商业机密。窃取敌人或竞争对手的最新研究或产品原型。
- 学术/学习目的。
- 去除复制保护和伪装的登录权限。
- 产品分析:用于调查产品的运作方式,识别潜在的侵权行为。
写本系列文章是让开发者了解攻击者能够做的事情,“未知攻,焉知防”。目的是让开发者能够针对这些攻击、破解行为,更好的设计和编码,提供iOS应用的安全性。