阿里内部大咖分享开发经验:ios逆向开发必备3大要领技术
阿里总部
为什么要学习逆向开发
推荐ios逆向开发交流学习群:625619615向往逆向开发的欢迎加入,群内不定期分享干货
为什么学习逆向开发是个问题。如果你上网查找,你会找到这样的解释。
理解整个IOS系统和体系结构,并看到更高的维度。
学习其他应用程序的优秀设计和实现
提高发展效率
更好地保证应用程序的安全性
当然,这些都是我们精力和时间的原因。我从越狱中学到的真相是简单而纯洁的。
逆向学习前的准备
学习反向开发首先你是一个IOS开发工程师,了解iOS应用程序商店的开发。
熟悉iOS设备的硬件结构和系统原理(我对它了解不多,但我开始学习)。
理解基本装配指令。
有越狱越狱的iOS设备。关注作者:逆向开发资料以及ios高级研发资料,留言或者私聊
互联网**人物马云
这里有一个小插曲,买一个二手手机在休闲鱼,提醒你不在中间。如果你想在休闲鱼或二手手机上做一个测试机器,提前询问手机的型号和系统。是不是合同机和其他孩子在北京,在闲置的鱼,如果发现对方是自己在中关村地区的商店,特别是电子城(中关村出口C1,我记得非常清楚)不去那里,有骗子积累。当我到达科技商店第三层的一家电信店时,价格非常好,iPhone6 1000元。付了钱后,我被告知这是一台合同机,身份证应该转给电信运营商。他们不说提前合同机,每月280的电信套餐,大约2年。有人发现,当我要求退款时,他们没有退款。我和一个朋友去了美国,他们几乎在吃饭后发现了他们的号码。他们猛烈攻击,我认为他们两人很坚强。
反向的基本思想
正向工程(正向工程)
物理逻辑设计的抽象实现>
设计概念与算法源代码>编译成二进制机器码
将思想和观念转化为具体实现的过程
****(****)
工程师
逻辑设计的物理实现
编译机器代码>汇编代码(高级语言代码等)=理解其算法和设计思想
从二进制代码中提取设计概念和算法
程序编译和反编译
高级语言(C / C++ / OC / java / Python/C #)->(如汇编语言)->目标代码(exebl /二进制文件系统库)
反过来,必须有目的性和针对性。
首先熟悉反向目标程序,从一个积极的想法去猜测他可能的实现方法(使用的框架,系统调用API等)。
定位关键代码
工作中
反向是一个不断进行的尝试和错误过程,需要不断地猜测、发现和验证。
你为什么要出狱?
越狱是为了突破iOS沙盒机制的限制。沙箱是一种安全机制,为运行程序提供一个隔离的环境。当沙箱启动时,程序可以设置,如果程序可以访问网络、文件、目录等。
越狱后的准备工作
当手机从监狱里逃了出来,发现手机上的Cydia应用。Cydia是越狱的iOS软件管理平台(Cydia之父——Jay Freeman(Jeffrey Man))