2.越狱环境搭建

学习条件
  1. 至少一年iOS开发经验

  2. 调试设备

    • 建议至少iPhone 5S(因为从5S开始支持arm64架构)
    • 或者至少是iPad Air、iPad mini2等支持arm64架构的设备
  3. 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 [email protected] 来登录
    • 初始密码为 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大主要阶段

    • 建立安全连接
    • 客户端认证
    • 数据传输
  • 建立安全连接的过程中,服务器会提供自己的身份证明

你可能感兴趣的:(2.越狱环境搭建)