2.越狱环境搭建

学习条件

至少一年iOS开发经验

调试设备

建议至少iPhone 5S(因为从5S开始支持arm64架构)

或者至少是iPad Air、iPad mini2等支持arm64架构的设备

iOS 9.1完美越狱

建议至少iOS 8完美越狱

版本也不能太高,要保证能够完美越狱

检查手机是否可以越狱:http://jailbreak.25pp.com/ios(已不存在)

iOS Jailbreak(iOS越狱)

什么是iOS Jailbreak?

利用iOS系统的漏洞,获取iOS系统的最高权限(Root),解开之前的各种限制(合法行为)

iOS Jailbreak的优点

打造个性化、与众不同的iPhone

自由安装各种实用的插件、主题、APP

修改系统APP的一些默认行为

自由安装非AppSore来源的APP

“付费APP”秒变“免费APP”(有各种插件)

未越狱iPhone安装APP的途径

AppStore

真机调试

通过证书打包签名ipa安装

灵活管理文件系统,让iPhone可以像U盘那样灵活

给开发者提供了逆向工程的环境(学习其他app的开发模式)

iOS Jailbreak的缺点

不予保修

费电,越狱后的iOS系统会常驻一些进程,耗电速度约提升10%~20%

在新的iOS固件版本出来的时候,不能及时地进行更新

每个新版本的固件,都会修复上一个版本的越狱漏洞,使越狱失效

如果需要保持越狱状态,要等待新的越狱程序发布时,才能升级相应的固件版本

不再受iOS系统默认的安全保护,容易被恶意软件攻击,个人隐私有被窃取的风险

如果安装了不稳定的插件,容易让系统变得不稳定、变慢,甚至出现“白苹果”等问题

完美越狱和不完美越狱

完美越狱

越狱后的iPhone可以正常关机和重启

不完美越狱

iPhone一旦关机后再开机时,屏幕就会一直停留在启动画面,也就是“白苹果”状态

或者能正常开机,但已经安装的破解软件都无法正常使用,需要将设备与PC连接后,使用软件进行引导才能使用

一般来说,在苹果发布新的iOS固件后,针对该固件的不完美越狱会先发布,随后完美越狱才可能发布

一般较新的系统版本,均为不完美越狱

越狱方法推荐

PP助手

如何判断是否越狱成功?

桌面是否有Cydia

如果有,代表越狱成功

工具判断(比如PP助手)

会有文字提示是否越狱

Cydia

越狱后的 “App Store”

可以在Cydia中安装各种第三方的软件(插件、补丁、APP)

作者

Jay Freeman(saurik)

Cydia安装软件的步骤1

添加软件源(不同软件的软件源可能不同),方式是点击“Cydia”中的软件源,然后点击“编辑”,再点击“添加”,会让输入软件源地址

添加源成功以后,可以看到源里面的软件列表,点击其中一个就可以安装了

SpringBoard

有时候通过Cydia安装完插件后,可能会提示重启SpingBoard,SpringBoard就是iOS的桌面

常用软件安装

Apple File Conduit “2”

Apple File Conduit “2”

可以访问整个iOS设备的文件系统

类似的补丁还有:afc2、afc2add

软件源

http://apt.saurik.com

http://apt.25pp.com

AppSync Unified

该补丁作用

可以绕过系统验证,随意安装、运行破解的ipa安装包

软件源

http://apt.25pp.com

iFile

作用

可以在iPhone上自由访问iOS文件系统

类似的还有Filza File Manager、File Browser

软件源

http://apt.thebigboss.org/repofiles/cydia (BigBoss源)

PP助手

可以利用PP助手自由安装海量APP(免费+付费)

软件源

http://apt.25pp.com

Mac必备

iFunBox

管理文件系统

PP助手

自由安装少量APP

卸载APP

备份APP为ipa安装包(从iOS9开始,不再支持备份APP)

建议的安装顺序

iPhone -> Cydia -> (Apple File Conduit "2" 和 AppSync Unified) -> iFile 和 PP助手

Mac -> iFunBox 和 PP助手

安装包

通常情况下,通过Cydia安装的包都是deb格式的,结合软件包管理工具apt

通过PP助手安装的包的格式是ipa的

如果通过Cydia源安装deb失败,可以先从网上下载deb格式的安装包,然后将deb安装包放到 /var/root/Media/Cydia/AutoInstall,重启手机,Cydia就会自动安装deb

代码判断设备是否越狱

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view.

//通过判断是否存在Cydia.app来判断是否安装越狱,不同的系统路径可能不一样

if ([[NSFileManager defaultManager]fileExistsAtPath:@"/Applications/Cydia.app"])

{

NSLog(@"此设备已越狱");

}

else

{

NSLog(@"此设备未越狱");

}

}

提高工作效率的工具

Alfred

便捷搜索

工作流

XtraFinder

增强型Finder

iTerm2

完爆Terminal的命令行工具

Go2Shell

从Finder快速定位到命令行工具

Mac远程登录到iPhone

我们经常在Mac的终端上,通过敲一些命令行来完成一些操作,iOS和Mac OS X都是基于Darwin(苹果的一个基于Unix的开源系统内核),所以iOS中同样支持终端的命令行操作

在逆向工程中,我们经常会通过命令行来操纵iPhone

为了能够让Mac终端中的命令能作用在iPhone上,我们得让Mac和iPhone建立连接

通过Mac远程登录到iPhone的方式建立连接

SSH

Secure Shell的缩写,意为“安全外壳协议”,是一种可以为远程登录提供安全保障的协议

使用SSH,可以把所有传输的数据进行加密,“中间人”攻击方式就不可能实现,能防止DNS欺骗和IP欺骗

OpenSSH

是SSH协议的免费开源实现

可以通过OpenSSH的方式让Mac远程登录到iPhone

使用OpenSSH远程登录

iPhone上通过Cydia安装OpenSSH工具(软件源http://apt.saurik.com)

OpenSSH的具体使用步骤可以查看Description

SSH是通过TCP进行通信,所以要确保Mac和iPhone在同一局域网下,比如连接着同一个WiFi

在Mac的终端输入 ssh 账户名@服务器主机地址,服务器主机地址即手机的IP地址,比如输入 ssh root@10.1.1.193 来登录

初始密码为 alpine

登录成功后就可以使用终端命令行操作iPhone

退出登录命令是 exit

root、mobile

iOS下有两个常用账户:root、mobile

root:最高权限账户,$HOME(用户文件夹)是 /var/root

mobile:普通权限账户,只能操作一些普通文件,不能操作系统级别的文件,$HOME是 /var/mobile

最好修改一下root和mobile用户的登录密码(登录 root 账户后,分别通过 passwd、pwsswd mobile 完成)

SSL、OpenSSL

很多人会将SSH、OpenSSH、SSL、OpenSSL搞混

SSL

Secure Socket Layer的缩写,是为网络通信提供安全及数据完整性的一种协议,在传输层对网络连接进行加密

OpenSSL

SSL的开源实现

绝大部分HTTS请求等价于:HTTP + OpenSSL

OpenSSL的加密就是通过OpenSSL完成的

SSH安全连接

SSH协议一共两个版本

SSH-1

SSH-2

现在用的比较鑫的是SSH-2,客户端和服务端版本要保持一致才能通信

查看SSH版本(查看配置文件的Protocol字段)

客户端:/etc/ssh/ssh_config

服务器:/etc/ssh/sshd_config

SSH的通信过程

SSH的通信过程可以分为3大主要阶段

建立安全连接

客户端认证

数据传输

建立安全连接的过程中,服务器会提供自己的身份证明