iOS 如何进行逆向工程
Android 的源码是开放的, 开发者很容易了解系统机制, 但是 iOS 的代码是封闭的, 单从文档上还是不足以深入的了解系统机制, 下面介绍一些方法能够对 iOS 进行逆向工程, 让开发者能够更深入了解系统.
操作方法
- 01
为了学习框架,提升开发水平,可以看看私有API列表。iOS 的各私有API都可以通过runtime查看获得。如果觉得麻烦的话可以到Github看现成的,但还是推荐自己来实时获取,因为iOS在更新,API也在更新。在App Store产品中使用私有API是违反苹果规定的,所以能不用这些API而实现一些功能是iOS工程师水平的体现。
- 02
对iOS工程师而言,如果只是开发的话(1)也就差不多了。如果您十分有爱,想了解API以下的东西的话,依然可以利用Obj-C的runtime。您可以用它研究很多黑箱过程的来龙去脉。值得一提的是,这种技巧是合法的,可以在App Store 中使用! 苹果曾给使用了相关技巧的开发者发过邮件,表示出于安全性和稳定性最好不再使用,但没有禁止。
- 03
如果是对系统本身感兴趣的话,不妨越狱看看。iOS和Mac OS X类似,是一种UNIX系统。越狱后你就有了root权,接下来就像您研究Linux那样摆弄就好了。对于开发者来说,有了root权也就可以写一些全局的代码,自然也可以用来深入了解系统、原生app等。
- 04
另外说iOS代码是封闭/闭源的其实不全对,苹果算是开源界的一面大旗了,但是如您所见,这里并没有iOS操作系统的代码,而是一些库和编译器、调试器,可以说WebKit是iOS最重要的组成之一,截止iOS 5 所有多于一行文字的控件其实都是WebKit标准的。很多iOS的Hack都是从这里开始的。
赞 (0)