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

越狱环境的搭建

作者: 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