浅谈coding学堂iOS开发培训之与开发相关的逆向工程

2016-01-21 11:21:37 508浏览

         随着技术更新速度的加快,而如今手机上的应用软件越来越多地受到人们的关注,随着移动互联网时代的来临,智能手机和平板电脑等移动设备成为下一代互联网的终端已是人势所趋。而移动互联网的便携性和多元性等优势决定了嵌入式应用将会比现在的互联网应用更加普及,将会给用户提供更加便捷的服务。

         比如,对于iOS开发者来说,逆向工程是最为实用的技术之一。例如,工程师可以逆向系统调用,在自己的程序里使用一些文档中没有提及的私有功能,还可以逆向一些经典的软件,包括竞争对手的软件,从而研究自己的软件能够借鉴些什么技术。

         1、逆向系统调用程序员编写的软件能够运行在操作系统中,提供各种各样的功能,是因为操作系统本身已经内嵌了这些功能,软件只是拿来重新组合使用罢了。众所周知,能在App Store上架的App的功能十分有限,在苹果公司严格的审核制度下,绝大多数App的实现都源于公开的开发文档,而不能使用诸如锁屏、关机等文档中不涉及的功能。如果你的程序面向Cydia,那么不采用非公开功能将导致程序几乎没有竞争力。如果你的程序想拥有打电话、发短信等不公开的功能,最有效的途径就是逆向iOS开发系统调用,还原系统实现相应功能的代码,并应用到自己的程序中。

         2、借鉴别的软件逆向工程最受欢迎的应用场合就是“借鉴”他人的软件功能。对于来源是App Store的App来说,大多数技术的实现并不复杂,巧妙的创意和良好的运营才是其成功的关键。如果只是单纯借鉴其功能,那么采用逆向工程,费时费力,性价比不高,从头开发一个功能类似的软件反而要省时省力得多。但是,当我们不知道被借鉴软件中的某个功能是如何实现的时候,逆向工程就能起到关键性的作用。这种情况在大量使用私有函数的Cydia软件中尤其常见号称教育行业iOS培训平台上第一款通话录音软件的Audio Recorder,足够有趣,但我们不知其原理如何,此时使用逆向工程的技术就能够对它了解一二。有些软件,比如微信,功能经典,结构也非常复杂,所涉及的代码自然十分多。

         最后一般来说,软件逆向工程可以看做系统分析和代码分析两个阶段的有机结合。在系统分析阶段,要从整体上观察目标程序的行为特征、文件的组织架构,从而找到我们感兴趣的地方。一旦能够较为熟练地操作这个程序,并且找到了我们想要逆向的点,就可以进入代码分析阶段,利用各种工具对程序本身的二进制文件进行分析,达到我们的目的,您还有什么疑问可以咨询我们在线老师,扣丁学堂祝您快乐学习每天一天。

查看更多关于“iOS培训资讯”的相关文章>>

标签:

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号