前言:本来呢我对于这一块不是特别的了解,但是最近找了一份新的工作,里面很大一部分比重涉及了IOS逆向工程开发,而逆向工程开发是要以一部已经越狱的苹果机为基础。所以我在这里粗略的谈一下iOS越狱。
序言:iOS越狱适用于iPhone,iPod touch,iPad以及Apple TV第二代上的iOS系统。用户越狱之后,可以适用通过一系列的管理器例如Cydia,Lydia是现在主流的越狱管理器。他主要目的是为越狱的iOS用户提供一个高级包装工具的图形界面前端以安装不被App Store接受的程序。它也是一个软件仓库的聚合器,带有几个被社区信任的源以避免对某个服务器的过度依赖。大部分软件包的稳定版本都可以在这些源中找到;不过用户可以很容易地添加源。这使得iOS开发可以尽量开发;任何有服务器的人都可以设置,储存,管理和跟新它自己的软件仓库并和社区分享。不过大部分的社区源是接受提交软件包的,相比起独立的源,这样也可以帮助软件获得更多关注。在2010年07月26日,美国国会图书馆正式修改数字千年版权法中的豁免条例,正式认可iOS越狱的合法性,而苹果则推出了相应的对策,只要越狱了就不囊括在设备保修内。由于越狱之后iOS系统对于你的设备失去了保护,许多通过Cydia安装的应用程序都能获取你系统的权限,可能从而导致你的设备损坏。
ps:以上序言摘取于关键词“iOS越狱”的百度百科词条。
根据上面摘取于百度词条的序言,我们了解到了iOS越狱的产生的原因与主要运用的管理程序,更了解到了为什么苹果会对已经越狱了的设备保修失效。
对于越狱的利与弊我总结了以下几点
利:1.可以通过Cydia安装各类系统插件
2.更改系统外观
3.随意安装应用
弊:1.恶意代码运行的概率变大
2.系统的不稳定性增加
3.不予以保修
通过以上分析,我个人建议越狱须谨慎,特别是自己日常所使用的手机,毕竟很多用户资料储存在内,稍不留意就被恶意程序所篡改甚至盗取用户资料。
那么我们越狱后移除了沙盒(sandbox)机制了吗?
答案明显是否定的,你从App Store上下载的应用都不能访问类似于短信,联系人等等,所以 不管你是越狱前还是越狱后,沙盒透性都是不变的。
但是呢我们越狱后可以安装系统app,可以利用系统app的权限去访问同级别的类似短信,联系人等等。
在未越狱之前,我们想查看沙盒里的内容,只能通过Xcode来查看,一下是Xcode的模拟查看步骤:
1.需要一部未越狱的手机,连上Xcode。
2.然后在上面的windows的菜单栏中选中Devices and Simulators。
3.再然后在出现的选项栏中找到手机中已安装的你需要查看沙盒的应用后选中
4.再点击设置按钮,然后在出现的二级菜单中选中show Container
5.最后在出现的试图中好好的查看该app的沙盒吧
如果我们想查看越狱设备的沙盒文件,那就更简单了
我们可以利用iTools,iFunBox,iFile等等,通过这些工具我们可以知道整个系统的文件目录与文件结构。
以下我们用iFunBox为例子解读以下沙盒文件:
Application:这个目录下面则是一些系统的文件
library:这个则是存储的app的文件
MobileSubstrate:这个是最重要的文件
ProferenceBundles:这个目录下面的应用是安装了某个插件之后在设置里面出现控制菜单,方便控制插件
ProferenceLoader:配置加载功能插件菜单
User:存放用户的数据
bin:命令行工具*(OS X新版本不开放,需要打开权限)
var:存放日志,用户数据,遗失数据等等
iOS文件权限
lrwxr-xr-x 1 root admin 32 Jun 10 11:22 Applications - > /var/stash/_.pPKHVh/Applications
综上所诉,root是所有者,admin是所属的用户组,如果后面是符号链接的话,会跟着真实的路径。
越狱系统常见程序类型:
APP:系统app,比沙盒安装的应用权限更高
Preference Bundle:结合动态库程序,来设置动态库的条件,触发行为等等
Dynamic Library:动态库文件,修改系统的ipa
命令行工具:执行命令行来查看手机状态
Daemon:首部程序,不断监听系统行为,以及提供一些系统服务
以上是这章的全部内容,结合各种渠道的资料与我个人的理解,希望能对大家有所帮助。