越狱环境搭建

720 阅读4分钟

看小码哥视频,摘录的内容。mark。

越狱环境搭建

条件

设备要支持arm64iPhone5以上。

至少iOS8,版本不能太高,要保证完美越狱

检查手机是否可以越狱 http://jailbreak.25pp.com/ios(推荐)

完美越狱:越狱之后的iPhone可以正常关机和重启。

非完美越狱:白苹果

先发布不完美越狱,后发布完美越狱。

越狱 Jailbreak

利用iOS系统漏洞,获取iOS系统的最高权限root。合法行为。

缺点

  1. 不保修、耗电、不能及时更新固件版本。

新版本固件,会修复上一个版本的越狱漏洞,使越狱失效。等越狱版本升级。

  1. 不再安全保护。

  2. 不稳定的插件,影响系统,出现白苹果。

判断手机是否越狱成功?

手机是否有Cydia。 或者 PP助手打开手机,查看是否越狱。

Cydia

越狱后的App Store

安装第三方软件,插件,补丁。

作者:Jay Freeman(网名:saurik)(推荐他推出的源,基本免费)

安装软件

添加软件源。

进入软件源,找到对应的软件,安装。/搜索。

重启 Spring Board(iOS的桌面)

iPhone 插件

  1. Apple File Conduit "2"

apt.saurik.com

在mac上,保证能访问iOS的文件系统

  1. AppSync Unified

apt.25pp.com

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

  1. iFile

BigBoss

在iPhone上,访问文件系统

  1. pp助手

Mac

  1. iFunBox

管理文件系统

  1. PP助手

Cydia和PP助手的区别

Cydia通常是安装插件,格式为deb(apt:软件包管理工具)

PP助手通常安装的都是软件包,格式为ipa

注:安装失败时,可以离线下载,拖动到/var/root/Media/Cydia/AutoInstall目录下。重启手机。

代码中判断手机是否越狱?

查看Cydia.app的路径是否存在。

if ([[NSFileManager defaultManager] fileExistsAtPath:@"/Application/Cydia.app"]) {
    NSLog(@"越狱");
} else {
    NSLog(@"未越狱");
}

问题:不同系统,沙盒组成可能不一样。需要实践。google。

逆向工程环境搭建

Mac远程登录到iPhone

iOS和mac os都是基于Darwin

方式一:使用Wifi登录iPhone

保证Mac与iPhone同一网络。

Mac:终端,ssh 账户名@手机ip地址,是否存储服务端的公钥相关信息,密码(初始alpine,查看openssh中的how-to)。退出手机exit。

SSH、OpenSSH

SSHSecure Shell,安全外壳协议,一种可以为远程登录提供安全保障的协议。仅是协议,没有实现。

OpenSSHSSH协议的开源实现。TCP协议通信。

此时Mac为客户端,iphone为服务器。

Mac支持OpenSSH。iPhone需要手动支持OpenSSH,通过Cydia安装

iOS下的常用账户

root、mobile

root:最高权限 $HOME = /var/root,一般代表的就是HOME路径,echo $HOME#(最高权限代表符)

mobile:普通操作,不能操作系统文件,HOME=/var/mobile。

passwd:修改密码

SSL、OpenSSL

SSLSecure Sockets Layer,网络数据在传输层加密,协议

OpenSSLSSL的开源实现

Http = Http + openSSL

OpenSSH保证远程登录的安全,这个安全是由OpenSSL完成的。

SSH2个版本,SSH-1,SSH-2,要保证手机和mac版本一致。查看协议版本/etc/ssh

ssh_config: protocol
sshd_config:服务器配置文件
SSH通信阶段
  1. 建立安全连接 iphone发送公钥到mac,mac用SHA256加密后保存至~/.ssh/known_hosts。再次连接,发送公钥,查找known_hosts,验证。ssh-keygen -R ip地址,删掉公钥信息
  2. 客户端验证,检查mac输入的账号和密码
  3. 数据传输,指令传输到iPhone
SSH客户端认证方式

SSH-2有2种认证方式

  1. 基于密码,账号+密码
  2. 基于密钥,最安全的一种方式,不用每次都输入密码

优先密钥,如果认证失败,则账号+密码

自动操作:

ssh-keygen,生成公钥+私钥。
客户端将公钥`~/.ssh/id_rsa.pub`内容,`追加`到服务端的授权文件`~/.ssh/authorized_keys`的尾部。命令`ssh-copy-id root@ip地址`,授权文件一开始是不存在的。

手动操作:

拷贝文件,cp只能本机操作,两台主机之间的copy,则使用scp。
scp ~/.ssh/id_rsa.pub root@ip地址:~/.ssh(路径)
cat id_rsa.pub >> authorized_keys(追加内容)

如果还是需要输入密码,可能是文件权限问题。

chmod 755 ~
chmod 755 ~/.ssh
chomd 644 ~/.ssh/authorized_keys
端口
  1. 21-提供FTP服务
  2. 80-提供HTTP服务
  3. 22-提供SSH服务(/etc/ssh/sshd_config

iPhone默认使用22端口进行SSH通信,采用TCP协议。

方式二:使用USB登录iPhone

默认情况下,SSH走的是TCP协议,所以需要Mac通过网络连接登录到iPhone,要保证Mac和iPhone处于同一个网络。

缺点:因为是通过网络,会有网络状态的影响。