为什么要学习逆向开发
为什么学习逆向开发是个问题。如果你上网查找,你会找到这样的解释。
理解整个IOS系统和体系结构,并看到更高的维度。
学习其他应用程序的优秀设计和实现
提高发展效率
更好地保证应用程序的安全性
当然,这些都是我们精力和时间的原因。我从越狱中学到的真相是简单而纯洁的。
逆向学习前的准备
学习反向开发首先你是一个IOS开发工程师,了解iOS应用程序商店的开发。
熟悉iOS设备的硬件结构和系统原理(我对它了解不多,但我开始学习)。
理解基本装配指令。
有越狱越狱的iOS设备。 关注作者:iOS开发资料以及面试资料,闲扯群,扫最后面二维码加助理微信私聊,作者吐血免费共享!!
反向的基本思想
正向工程(正向工程)
物理逻辑设计的抽象实现>
设计概念与算法源代码>编译成二进制机器码
将思想和观念转化为具体实现的过程
逆向工程(逆向工程)
逻辑设计的物理实现
编译机器代码>汇编代码(高级语言代码等)=理解其算法和设计思想
从二进制代码中提取设计概念和算法
程序编译和反编译
高级语言(C / C++ / OC / java / Python/C #)->(如汇编语言)->目标代码(exebl /二进制文件系统库)
反过来,必须有目的性和针对性。
首先熟悉反向目标程序,从一个积极的想法去猜测他可能的实现方法(使用的框架,系统调用API等)。
定位关键代码
反向是一个不断进行的尝试和错误过程,需要不断地猜测、发现和验证。
你为什么要出狱?
越狱是为了突破iOS沙盒机制的限制。沙箱是一种安全机制,为运行程序提供一个隔离的环境。当沙箱启动时,程序可以设置,如果程序可以访问网络、文件、目录等。
越狱后的准备工作
当手机从监狱里逃了出来,发现手机上的Cydia应用。Cydia是越狱的iOS软件管理平台(Cydia之父——Jay Freeman(Jeffrey Man))
掏出来扫一扫!闲扯群,加群主微信!