这个系列,是很早听 MJ 课程时的整理,现在分享出来。 其中一些参考资料有些有引用,有些可能忘记添加了,如果有引用部分资料,可以联系我。
iOS 逆向(一)环境搭建
iOS 逆向(二)Cycript
iOS 逆向(三)逆向工具
iOS 逆向(四)脱壳
审核中 iOS 逆向(五)Theos工具 iOS 逆向(六)动态调试
iOS 逆向(七)重签名
一、越狱
iOS Jailbreak(iOS越狱),利用iOS系统的漏洞,获取iOS系统的最高权限(Root),解开之前的各种限制(合法行为)
- 完美越狱
越狱后的iPhone可以正常关机和重启
- 不完美越狱
iPhone一旦关机后再开机时,屏幕就会一直停留在启动画面,也就是“白苹果”状态,或者能正常开机,但已经安装的激活成功教程软件都无法正常使用,需要将设备与PC连接后,使用软件进行引导才能使用。
二、软硬件准备
2.1 设备与系统
设备 | 系统 | |
---|---|---|
iPhone5s以后,支持64位 | 8.0-8.4 | |
9.0-9.1 | 完美越狱 |
检查手机是否可以越狱:jailbreak.25pp.com/ios
2.2 越狱软件
2.2.1 手机端
- PP助手:越狱
- 爱思助手:越狱
- Cydia:越狱后的App Store
2.2.2 Mac软件
- PP助手:下载APP资源
- iFunBox:安装ipa、查看系统文件
2.3 Cydia
越狱之后,为了搭建开发环境,依次进行下面操作。
2.3.1 添加软件源
PP助手软件源:apt.25pp.com
- 一般在Cydia中安装完软件之后,会自动重启SpringBoard,即重启iOS桌面。
2.3.2 安装软件
!!!建议遵循安装顺序,否则环境配置可能配置不正确。
顺序 | 软件 | 作用 | 软件源 |
---|---|---|---|
1 | Apple File Conduit “2” | 可以访问整个iOS设备的文件系统 |
| Cydia apt.saurik.com | | 2 | AppSync Unified | 可以绕过系统验证,随意安装、运行激活成功教程的ipa安装包
| PP助手 apt.25pp.com | | 3 | iFile | 在iOS上访问系统文件路径
iFile没法通过Cydia安装:
如果通过Cydia源安装deb失败,则可以通过下面方式安装:
- 先从网上下载deb格式的安装包,iFile安装包;
- 将deb安装包放到
/var/root/Media/Cydia/AutoInstall
; - 重启手机,Cydia就会自动安装deb; | Bigboss apt.thebigboss.org/repofiles/c… | | 4 | OpenSSH | 远程登录,Mac电脑登录iPhone,需要在iPhone上安装OpenSSH | |
三、SSH登录
SSH,是Secure Shell的缩写,意为“安全外壳协议”,是一种可以为远程登录提供安全保障的协议。使用SSH,可以把所有传输的数据进行加密,“中间人”攻击方式就不可能实现,能防止DNS欺骗和IP欺骗。
Mac要能通过SSH远程登录到iPhone,先必须满足以下条件:
-
iPhone必须先支持SSH,即遵循上面安装OpenSSH。
- OpenSSH,是SSH协议的免费开源实现;
-
SSH是通过TCP协议通信,所以要确保Mac和iPhone在同一局域网下,比如连接着同一个WiFi。
SSH的通信过程可以分为3大主要阶段:
- 建立安全连接
- 客户端认证
- 数据传输
3.1 Wifi连接登录
3.1.1 密码登录
使用账号和密码即可认证
在Mac的终端输入
ssh 账户名@服务器主机地址(这里的服务器是手机)
比如ssh root@192.168.1.11
初始密码alpine
。
退出登录命令是exit
3.1.2 手机账户
iOS下有2个常用账户:root、mobile
- root:最高权限账户,$HOME是
/var/root
- mobile:普通权限账户,只能操作一些普通文件,不能操作系统级别的文件,$HOME是
/var/mobile
登录mobile用户,则使用:
ssh mobile@服务器主机地址
root和mobile用户的初始登录密码都是alpine
$ ssh root@192.168.1.11
The authenticity of host '192.168.1.11 (192.168.1.11)' can't be established. RSA key fingerprint is SHA256:/VKCM1drq2VtMPyWihuo40ZHNuGnR7XeASapaaGHEg4. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.11' (RSA) to the list of known hosts. root@192.168.1.11's password:
ho:~ root# exit
logout
Connection to 192.168.1.11 closed.
......
3.1.3 修改密码
最好修改一下root和mobile用户的登录密码(登录root账户后,分别通过passwd、passwd mobile完成)
ho:~ root# passwd
Changing password for root.
New password:
Retype new password:
3.1.4 密钥登录
免密码认证,最安全的一种认证方式
SSH-2默认会优先尝试“密钥认证”,如果认证失败,才会尝试“密码认证”。
//-f 强制更新,生成密钥对,私钥存在Mac,公钥将要放在手机
$ ssh-keygen -f ~/.ssh/id_ho_rsa
//将公钥拷贝到手机
$ ssh-copy-id -i ~/.ssh/id_ho_rsa.pub root@192.168.1.11
或者
// scp ~/.ssh/id_ho_rsa.pub root@服务器主机地址:路径
$ scp ~/.ssh/id_ho_rsa.pub root@192.168.1.11:~
$ mkdir .ssh
$ cat ~/id_ho_rsa.pub >> ~/.ssh/authorized_keys
$ rm ~/id_ho_rsa.pub
假如还是无法访问,则注意修改文件权限:
//登录到iPhone
ho:~ root# chmod go-w ~
ho:~ root# chmod 700 ~/.ssh
ho:~ root# chmod 600 ~/.ssh/authorized_keys
在iPhone作为服务端时,其ssh配置路径为:/etc/ssh/sshd_config
,默认不作修改。
#禁用root账户登录,如果是用root用户登录请开启
PermitRootLogin yes
# 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no
# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# 有了证书登录了,就禁用密码登录。
PasswordAuthentication no
3.2 USB连接登录
通过WiFi传输,一个是不稳定,一个是传输速度慢,所以,我们可以通过USB进行连接。
手机的USB端口号是22,所以我们需要将Mac连接到手机,并且通过22端口号进行数据传输。
$ brew install usbmuxd
//将本地主机的10010端口映射到22端口
$ iproxy 10010 22
或者通过下面方式:
//下载 https://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.gz
//找到对应的tcprelay.py
$ python tcprelay.py -t 22:10010
注意新开窗口:
//登录到iPhone,-p 指定Mac端口
$ ssh root@localhost -p 10010
注意当通过USB连接时,scp指定端口需要用-P
指定:
$ scp -P 10010 ~/.ssh/id_rsa.pub root@localhost:~/.ssh/
3.3 脚本登录
脚本放在这儿。
3.3.1 监听端口脚本
bfios-usb.sh
echo 'Begin to connecting to iPhone USB port 22'
echo 'After conneted, login in 10010 port by ssh'
iproxy 10010 22
3.3.2 登录脚本
bfios-login.sh
echo 'Login iPhone by ssh'
ssh root@localhost -p 10010
3.3.3 环境变量
将以上脚本权限更改为可执行文件,并参考放入到环境变量Path中。
$ chmod +x ios-usb.sh
$ chmod +x ios-login.sh
3.3.4 利用脚本登录
更流畅的操作
连接:
新开窗口,登录:
四、Vim
Vim是类Unix系统无处不在的一个文本编辑器,iPhone也支持。但是需要做一些额外的配置。
4.1 安装
通过Cydia安装。
4.2 方向键错误
方向键错误,按方向键显示ABCD
//方向键无效
$ echo "set nocp" >> ~/.vimrc
//如果删除键无效
$ echo "set backspace=2" >> ~/.vimrc
$ source ~/.vimrc
4.3 乱码
iOS终端的中文乱码问题
解决方案:新建一个~/.inputrc文件,文件内容是,注意把注释删除:
不将中文字符转化为转义序列
set convert-meta off
允许向终端输出中文
set output-meta on
允许向终端输入中文
set meta-flag on
set input-meta on
五、投屏
5.1 VNC连接
- Veency插件
- 在设置里面,找到Veency,设置VNC连接密码;
- 确保Mac与iPhone在同一个无线网络中;
- 在Mac电脑上利用VNC客户端,进行连接。
- Finder支持VNC协议,打开Finder,连接服务器。输入vnc://手机IP
- 利用其它VNC客户端进行连接也可,
Tips:
VNC客户端推荐:Remotix
5.2 Airserver
- 下载Mac端、iPhone端;
- 打开Mac端,打开iPhone端,扫描电脑的二维码;
- 在iPhone端打开控制中心,选择AirPlay,选择电脑。
Reflector 3 软件类似。
六、越狱问题
6.1 白苹果问题
当Cydia安装插件或者系统出错后,重启手机后,手机会一直停留在苹果页面。可以尝试下面方案:
6.1.1 方案一
- 在白苹果的时候,按住开关+home键,黑屏就放手,此后机器处于关机状态,注:iPhone一次成功,iPad air请多尝试几次。
- 再按POWER开机,等一下,这时候还是白苹果
- 松开power,然后按音量加和减,可以两个分别点一下,然后两个一起长按。
到这里就行了,长按之后,屏幕就会变暗,正常进入系统,并不是安全模式,但是所有插件也没有用,然后进入cydia删掉冲突插件,重启手机之后进入系统就正常了!
原理就是手机越狱后,安装cydia的时候一般会自动安上MobileSubstrate这个插件,开机启动的时候,按住音量键的“+”,会进入不加载MobileSubstrate的状态,你可以认为这是一种不加载MobileSubstrate的伪安全状态(Mobile Substrate必须要更新到0.9.3997以上的最新版本哦)。
Cydia里安装的软件大多要依赖这个插件的,不加载MobileSubstrate,就等于停用了大部分的插件,你就可以删掉导致白苹果的软件了。
6.1.2 方案二
白苹果的时候
- 按住开机+home可以强制关机
- 按开机和“+”号键开机,这是默认不加载所有cydia的插件,
- 顺利开机进入系统后,等待,很长时间的等待,十分钟吧!
- 直接去cydia里删除冲突插件就可以啦!
6.1.3 方案三
如果还不行,那就刷官方固件吧,越狱就这样没了。
参考
- PP助手越狱系统查询
- MJ 课程
今天的文章iOS 逆向(一)环境搭建分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/13857.html