看小码哥视频,摘录的内容。mark。
越狱环境搭建
条件
设备要支持arm64,iPhone5以上。
至少iOS8,版本不能太高,要保证完美越狱
检查手机是否可以越狱 http://jailbreak.25pp.com/ios(推荐)
完美越狱:越狱之后的iPhone可以正常关机和重启。
非完美越狱:白苹果。
先发布不完美越狱,后发布完美越狱。
越狱 Jailbreak
利用iOS系统漏洞,获取iOS系统的最高权限root。合法行为。
缺点
- 不保修、耗电、不能及时更新固件版本。
新版本固件,会修复上一个版本的越狱漏洞,使越狱失效。等越狱版本升级。
-
不再安全保护。
-
不稳定的插件,影响系统,出现白苹果。
判断手机是否越狱成功?
手机是否有Cydia。 或者 PP助手打开手机,查看是否越狱。
Cydia
越狱后的App Store
安装第三方软件,插件,补丁。
作者:Jay Freeman(网名:saurik)(推荐他推出的源,基本免费)
安装软件
添加软件源。
进入软件源,找到对应的软件,安装。/搜索。
重启 Spring Board(iOS的桌面)
iPhone 插件
- Apple File Conduit "2"
在mac上,保证能访问iOS的文件系统
- AppSync Unified
可以绕过系统验证,随意安装、运行pojie的ipa安装包。
- iFile
BigBoss
在iPhone上,访问文件系统
- pp助手
Mac
- iFunBox
管理文件系统
- 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
SSH:Secure Shell,安全外壳协议,一种可以为远程登录提供安全保障的协议。仅是协议,没有实现。
OpenSSH:SSH协议的开源实现。TCP协议通信。
此时Mac为客户端,iphone为服务器。
Mac支持OpenSSH。iPhone需要手动支持OpenSSH,通过Cydia安装
iOS下的常用账户
root、mobile
root:最高权限 $HOME = /var/root,一般~代表的就是HOME路径,echo $HOME。#(最高权限代表符)
mobile:普通操作,不能操作系统文件,
passwd:修改密码
SSL、OpenSSL
SSL:Secure Sockets Layer,网络数据在传输层加密,协议
OpenSSL:SSL的开源实现
Http = Http + openSSL
OpenSSH保证远程登录的安全,这个安全是由OpenSSL完成的。
SSH2个版本,SSH-1,SSH-2,要保证手机和mac版本一致。查看协议版本/etc/ssh
ssh_config: protocol
sshd_config:服务器配置文件
SSH通信阶段
- 建立安全连接
iphone发送公钥到mac,mac用SHA256加密后保存至
~/.ssh/known_hosts。再次连接,发送公钥,查找known_hosts,验证。ssh-keygen -R ip地址,删掉公钥信息 - 客户端验证,检查mac输入的账号和密码
- 数据传输,指令传输到iPhone
SSH客户端认证方式
SSH-2有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
端口
- 21-提供FTP服务
- 80-提供HTTP服务
- 22-提供SSH服务(
/etc/ssh/sshd_config)
iPhone默认使用22端口进行SSH通信,采用TCP协议。
方式二:使用USB登录iPhone
默认情况下,SSH走的是TCP协议,所以需要Mac通过网络连接登录到iPhone,要保证Mac和iPhone处于同一个网络。
缺点:因为是通过网络,会有网络状态的影响。