美文网首页
越狱环境的搭建

越狱环境的搭建

作者: coder_feng | 来源:发表于2019-07-24 11:41 被阅读0次

    调试设备

    iphone 6s plus,建议至少iPhone5S(因为从5S开始支持arm64架构),或者至少是iPad Air,iPad mini2等支持arm64架构的设备

    设备环境要求

    iOS9.1完美越狱,建议至少iOS8 完美越狱,版本也不能太高,要保证能够完美越狱

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

    iOS Jailbreak(iOS越狱)

    什么是iOS Jailbreak? 利用iOS系统的漏洞,获取iOS系统的最高权限(Root),解开之前的各种限制;

    Jailbreak 的优点

    打造个性化,与众不同的iPhoe

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

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

    自由安装非AppStore来源的APP

    付费APP秒变免费APP

    未越狱iphone安装APP的途径(1.AppStore;2.真机调试;3.通过证书打包签名ipa安装)

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

    给开发者提供了逆向工程的环境

    Jailbreak的缺点

    不予保修;

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

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

    (每个新版本的固件,都会修复上一个版本的越狱漏洞,使越狱失败;如果需要保持越狱的状态,需要等待新的越狱教程发布时,才能升级相应的固件版本)

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

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

    完美越狱和不完美越狱

    完美越狱

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

    不完美越狱

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

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

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

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

    越狱方法推荐

    PP助手:http://jailbreak.25pp.com/

    如何判断是否越狱成功?

    1.桌面是否有Cydia

    cydia

    2.工具判断(比如PP助手)

    pp助手

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

    Cydia安装软件的步骤
    1.添加软件源(不同软件的软件源可能不同)

    添加软件源

    2.进入软件源找到对应的软件,开始安装

    安装软件

    SpringBoard

    有时候通过Cydia安装插件后,可能会出现以下界面

    iOS桌面

    Apple File Conduit "2"

    Apple File Conduit "2"补丁的作用,可以访问整个iOS设备的文件系统,类似的补丁还有:afc2,afc2add

    apple file conduit “2”

    软件源

    http://apt.saurik.com

    http://apt.25pp.com

    软件源


    AppSync Unified

    appsync unified

    iFile

    iFile

    PP助手

    pp助手

    Mac必备

    mac必备

    安装流程顺序图

    流程图

    安装包

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

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

    如果通过Cydia源安装的deb失败的话:

    cydia安装失败

    可以通过晚上下载deb格式的安装包,然后将deb安装包放到/var/root/Media/AutoInstall,之后重启手机,Cydia就会自动安装deb;

    如下图是iFile-2.2.0-1所需的deb安装包

    iFile deb包

    如何在iOS代码中判断设备是否越狱

    判断越狱设备

    Mac远程登录到iPhone

    iOS和Mac,OSX都是基于Darwin,所以iOS中同样支持终端的命令行操作,我们经常在Mac的终端上,通过敲一些命令行来完成一些操作,为了能够让Mac终端中的命令行能作用在iPhone上,我们得上Mac和iPhone建立连接,通过Mac远程登录到的iPhone的方式建立连接

    mac远程iPhone

    SSH-OpenSSH

    SSH:Secure Shell的缩写,意为安全外壳协议,是一种可以为远程登录提供安全保证的协议,使用SSH,可以把所有传输的数据进行加密,中间人攻击方式就不能实现,能防止DNS欺骗和IP欺骗

    ssh

    OpenSSH

    是SSH协议的免费开源实现,可以通过OpenSSH的方式让Mac远程登录的iPhone

    使用OpenSSH远程登录

    OpenSSH

    登录步骤

    SSH是通过TCP协议通信,所以要确保Mac和iPhone在同一个局域网下,比如连接着同一个WIFI,在Mac的终端输入ssh账户名@服务器地址,这里的服务器指的是手机,初始密码是alpine,登录成功后就可以使用终端命令操作iPhone,退出登录命令是exit

    命令行登录

    登录上去之后,最好修改一下root的登录密码,修改登录密码可以使用passwd 命令行执行

    SSL和OpenSSL阐述

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

    OpenSSL:SSL的开源实现,绝大部分HTTPS请求等价于:HTTP+OpenSSL,OpenSSH的加密就是通过OpenSSL完成的

    SSH的版本

    SSH协议一共2个版本:SSH-1和SSH-2,现在用得比较多的是SSH-2,客户端和服务端版本需要保持一致才能通信

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

    客户端:/etc/ssh/ssh_config

    服务端:/etc/ssh/sshd_config

    SSH的通信过程

    三大阶段:

    1.建立安全连接;

    服务器提供身份证明 RSA key

    如果客户端并无服务器端的公钥信息,就会询问是否连接此服务器

    如果在建立安全连接过程中,出现了以下错误信息:

    服务器身份证信息发生变更

    这个时候,只需要删除掉之前服务器的公钥信息就行,命令行操作是:

    ssh-keygen-R 服务器ip地址,也可以直接打开known_hosts 文件删除服务器的公钥信息(vim ~/.ssh/know_hosts)

    2.客户端认证;

    SSH-2提供了2种常用的客户端认证方式

    基于密码的客户端认证(使用账号和密码即可认证)

    基于密钥的客户端认证(免密码认证,最安全的一种认证方式)

    密钥认证

    首先在客户端生成一对关联的密钥(Key Pair):一个公钥(Public Key),一个私钥(Private Key)

    ssh-keygen

    一路下去回车键即可,

    生成的公钥:~/.ssh/id_rsa.pub;

    生成的私钥:~/.ssh/id_rsa

    然后把客户端的公钥内容追加到服务器的授权文件(~/.ssh/authorized_keys)尾部

    ssh-copy-id root@服务器主机地址

    需要输入root用户的登录密码

    ssh-copy-id会将客户端~/.ssh/id_rsa.pub的内容自动追加到服务器的~/.ssh/authorized_keys尾部

    追加授权文件,可以使用ssh-copy-id将客户端公钥的内容自动追加到服务器的授权文件尾部,也可以手动操作;

    复制客户端的公钥到服务器某路径

    scp ~/.ssh/id_rsa.pub root@服务器主机地址:~

    scp是secure copy的缩写,是基于SSH登录进行安全的远程文件拷贝命令,把一个文件copy到远程另外一台主机上

    上面的命令行将客户端的~/.ssh/id_rsa.pub拷贝到了服务器的~地址

    SSH登录服务器

    ssh root@服务器主机地址

    需要输入root用户的登录密码

    在服务器创建.ssh文件夹

    mkdir .ssh

    追加公钥内容到授权文件尾部

    cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

    删除公钥

    rm ~/id_rsa.pub

    SSH-2 默认会优先尝试秘钥认证,如果认证失败,才会尝试密码认证
    3.数据传输;

    注意:如果配置了免密码登录后,还需要输入密码,需要在服务器端设置文件权限:

    chmod 755 ~

    chmod 755 ~/.ssh

    chmod 644 ~/.ssh/authorized_keys

    22端口

    端口就是设备对外提供服务的窗口,每个端口都有个端口号(范围是0~65535,共2^16个),有些端口是保留的,已经规定了用途,比如21端口提供FTP服务,80端口提供HTTP服务,22端口提供SSH服务(可以查看/etc/ssh/sshd_config的Port字段),如需知道更多,请自行查询资料

    端口

    通过USB进行SSH登录

    usb

    usbmuxd的使用

    下载usbmuxd工具包(下载v1.0.8版本,主要用到里面的一个python脚本:tcprelay.py)

    https://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.gz

    将iPhone的22端口(SSH端口)映射到Mac本地的10010端口

    cd ~/Documents/usbmuxd-1.0.8/python-client

    python tcprelay.py -t 22:10010

    加上-t参数是为了能够同时支持多个SSH连接

    注意:要想保持端口映射状态,不能终止此命令行(如果要执行其他终端命令行,请新开一个终端界面)

    不一定非要10010端口,只要不是保留端口就行

    端口映射完毕后,以后如果想跟iPhone的22端口通信,直接跟Mac本地的10010端口通信就可以了

    新开一个终端界面,SSH登录到Mac本地的10010端口(以下方式2选1)

    ssh root@localhost -p 10010

    ssh root@127.0.0.1 -p 10010

    localhost是一个域名,指向的IP地址是127.0.0.1,本机虚拟网卡的IP地址

    usbmuxd会将Mac本地10010端口的TCP协议数据,通过USB连接转发到iPhone的22端口

    远程拷贝文件也可以直接跟Mac本地的10010端口通信

    scp -P 10010 ~/Desktop/1.txt root@localhost:~/test

    将Mac上的~/Desktop/1.txt文件,拷贝到iPhone上的~/test路径

    注意:scp的端口号参数是大写的-P

    iOS终端的中文乱码问题

    默认情况下,iOS终端不支持中文输入和显示

    解决方案:新建一个~/.inputrc文件,文件内容是

    不将中文字符转化为转义序列

    set convert-meta off

    允许向终端输出中文

    set output-meta on

    允许向终端输入中文

    set meta-flag on

    set input-meta on

    如果是想在终端编辑文件内容,可以通过Cydia安装一个vim(软件源http://apt.saurik.com)

    Vi

    设置ssh别名

    在mac上面操作

    cd .ssh

    vim config

    在config中输入 Host test HostName 192.168.39.168 User root Port 10010 #这个是iproxy 转发的端口 IdentityFile ~/.ssh/id_rsa.pub

    登录:ssh test 就可以了登录了

    脚本Shell

    login

    相关文章

      网友评论

          本文标题:越狱环境的搭建

          本文链接:https://www.haomeiwen.com/subject/bcgnlctx.html