iOS逆向 - 10.2.1越狱环境搭配
越狱(Jailbreaking)是什么?
-
用于获取苹果公司便携装置操作系统 iOS 最高权限的一种技术手段,用户使用这种技术及软件可以获取到 iOS 的最高权限,甚至可能可以进一步解开运营商对手机网络的限制。
-
用途
-
解除 iOS 上的限制,安装 App Store 以外以及未经 Apple 许可的社群软件以及自由软件,甚至自行编译软件。
-
改装操作系统
-
使用命令行 shell 程序
-
访问 root 内部的文件,可写入
-
提取重要文件(如移植系统功能等需要破解提取文件)
-
完美越狱和不完美越狱的区别
-
完美越狱不会因为手机的重启而导致越狱失败。
-
不完美越狱是指 iOS 系统设备在越狱后,并没有完全破解了其操作系统的权限;有部分信息或功能应用不佳;比如;关机以后必须去连接越狱软件来引导开机;或者重启会导致越狱的失效;这样的越狱称为“不完美越狱”。
iOS 10.2.1 的不完美越狱
-
爱思助手一键越狱。
-
或者使用 Impactor + saigon。
-
一次越狱不成功就多试几次。
越狱后的环境搭建
-
手机越狱过程中,会安装一个叫做 Cydia 的软件。相当于越狱后的 App Store。
-
想在电脑上登录越狱设备,需要配置 SSH 远程登录。
SSH 是一种网络协议,用于计算机之间的加密登录,它有多种实现方式,根据 iOS 系统的版本要做不同的版本设置。
iOS 8 和 iOS 9 的越狱设备可以通过安装 OpenSSH来登录访问。
iOS 10 的系统有一个相对轻量级的 SSH 服务 dropbear,直接使用。
这里就只说 dropbear 的配置。
-
连接默认密码是 alpine。
-
首先,在 Cydia 中安装 MTerminal 和 adv-cmds ,在 MTerminal 执行 ps aux | grep dropbear 命令。(USB 连接)
-
如果想在 Mac 上直接 SSH 登录,需要添加以下命令
/usr/local/bin/dropbear -F -R -p 22在 Mac 上直接 SSH 登录
ssh root@设备的 ip 地址(同一网络环境下)
-
USB 登录设备
WiFi 情况下登录,如果网络不稳定,输入命令时会出现卡顿,这里提供一种通过 USB 端口转发的方法登录,保证连接的稳定和流畅。
brew install libimobiledevice
iproxy 10010 22 (不要关闭)
ssh root@localhost -p 10010 (这个是另起一个终端输入)如果觉得麻烦,可以建立一个 .sh 文件来快捷登录
-
用户角色
zzz$ (mobile):操作普通文件,不能操作系统文件。
root# (root):系统中权限最高的用户,对系统文件具有完全控制权。
-
-
Mac 需要装的软件
- 文件查看 iFunBox
-
iOS 需要装的插件(Cydia 中安装)
-
iFile (文件管理器)
-
Apple File Conduit "2"(安装了就能在 iFunBox 中查看系统文件)
-
Appsync (直接修改一个应用的结构或文件会破解应用本身的签名信息,安装修改后应用会出现 “Failed to verify code signature of XXX” 错误,按安装了appsync,让系统不再检验应用的签名)
-
scp (iOS 10后没有 scp 这个工具了,如果想用,就通过 iFunBox 把源码复制到设备的 /usr/bin/ 目录下)
链接: https://pan.baidu.com/s/1cxalD6geBgceDpEjOpBAbQ 密码: 4q7j然后设备中输入以下命令
-
因为要更改权限,所以要在 root 用户下执行
cd /usr/bin/
ldid -S scp
chmod 777 scp
越狱设备的文件系统目录
-
Applications
存放所有的系统 App 和来自 Cydia 的 App,不包括从 App Store 下载的 App。
-
Developer
供开发者使用。
-
Library
系统资源,用户设置。例如,Logs 是系统日志,Ringtones 是系统自带铃声,Launch Daemons 是启动 daemon 程序。其中比较重要的目录是 /Library/MobileSubstrate,里面存放了所有基于 Cydia Substrate 的插件(需要在 Cydia 中安装 Cydia Substrate)。
-
System
-
/System/Library/Carrier Bundles
里面是运营商的一些配置。
-
/System/Library/Frameworks 和 /System/Library/PrivateFrameworks
里面是系统中各种公开和未公开的 Framework。
-
/System/Library/CoreServices/SpringBoard.app
桌面管理器,是用户和系统直接交互的部分。
-
/System/Library/PerferenceBundles
里面存放的是系统设置中的一些设置项。
-
-
User
用户目录,实际指向 /var/mobile 。
-
/User/Media/
里面存放的是相册等。
-
/User/Library/
里面存放的是短信、邮件等。
-
-
bin
存放用户二进制文件,例如 mv 、ls 等。
-
dev
设备文件。每个设备在 /dev 目录下都有一个对应的文件(节点)。
-
etc
存放系统脚本、hosts 配置、SSH 配置文件等,实际指向 /private/etc。
-
sbin
存放系统级二进制文件,例如 reboot 、mount 等。
-
usr
用户工具和程序
-
/usr/include 中存放标准 C 头文件。
-
/usr/lib 中存放库文件。
-
-
var
一些经常改动的文件,包括 keychains 、临时文件、从 App Store 下载的应用。
其中遇到的问题
安装 Apple File Conduit "2" 的时候报错
subprocess pre-installation script returned error exit status 1
sub-process/usr/libexec/cydia/cydo returned anerror code(1)
如图:
错误的图片.png
解决方法
使用 iFile 然后去 private -> etc -> hosts 修改名字就行了。