一:越狱环境的配置
1、关于iOS越狱(Jailbreak)
iOS越狱是指开发者利用iOS系统的漏洞、获取到iOS系统的最高权限(Root权限)、从而可以操作之前种种不能操作的限制
2、越狱的优缺点
优点:自由安装app、文件管理方便灵活、拥有个性化的iPhone
缺点:不予保修、耗电增强、系统更新受限、安全性较差容易被恶意攻击
3、关于完美越狱和不完美越狱
完美越狱:越狱后的手机可以正常的关机、重启
不完美越狱:有两种情况属于手机不完美越狱的表现
1-手机重启后之前已经安装的破解软件都不能正常使用、出现闪退的情况
2-手机关机再开机将一直停留在启动页面,也就是所谓的“白苹果”
关于越狱方法的推荐可以参考教程:越狱教程
4、关于如何查看手机是否越狱
1-界面显示:看手机桌面上是否有Cydia
2-工具判断:使用pp助手等软件可以查看手机状态信息显示越狱状态
3-代码判断:Bool类型返回值
[[NSFileManager defaultManager] fileExistsAtPath:@"/Applications/Cydia.app"];
5、关于Cydia
1- Cydia可以认为是越狱后的App Store,手机越狱之后可以通过Cydia来安装各种第三方的软件,如逆向开发相关的各种插件、补丁等
2- 通过Cydia安装软件的步骤:
打开Cydia--------->在软件源中选择编辑------->点击左上角的添加按钮------>输入想要下载的软件源的地址(如pp助手的为http://apr.25pp.com)-------->安装后即可在列表中查看到自己添加的软件源------->安装需要的软件
当然,也可以选择搜索软件、然后进行安装
3- 有的软件安装后需要重启手机桌面、这时候手机会出现“重启 SpringBoard”的字样,点击重启即可
6、常用必备软件介绍
Mac端:
iFunBox:管理手机文件系统、电脑和手机连接后可以通过iFunBox来查看手机上的文件系统
PP助手:自由安装或卸载各种app
iPhone端:
文件补丁: Apple File Conduct ''2'' ,可以访问整个iOS设备的文件系统
ipa补丁:AppSync Unified ,可以绕过系统验证、随意安装、运行破解的ipa安装包
二:逆向环境的配置
1、关于远程登录
iOS和Mac OSX 都是基于Darwin开源系统内核的、Mac上可以使用终端来进行操作、iOS同样也可以。为了让Mac终端的命令行能够在iPhone上起作用、就要将两者建立连接。而Mac正是通过远程登录的方式来和iPhone建立连接的。
通常远程登录有两种途径:OpenSSH、USB-SSH
2、SSH
Secure Shell 的缩写,指安全外壳协议
使用SSH协议可以将所有的传输数据进行加密、能防止DNS欺骗和IP欺骗
SSH的版本有两种:SSH-1 和 SSH-2
较常用的是SSH-2,客户端(Mac)和服务端(iPhone)的版本要保持一致
查看SSH版本 (配置文件的Protocol字段)
客户端:/etc/ssh/ssh_config
服务端:/etc/ssh/sshd_config
1- OpenSSH 远程登录步骤
Open SSH 是SSH的开源版本,可以通过OpenSSH 的方式让Mac远程登录到iPhone
在iPhone上通过Cydia安装OpenSSH工具,软件源地址为 http://apt.saurik.com
SSH使用的是tcp协议,故而需要保证Mac和iPhone在同一局域网下
在Mac终端输入指令:ssh 账户名@服务器ip地址
初始密码为alpine, 退出指令为exit
登录成功后就可以使用终端命令行来操作iPhone
2-常用账户root和mobile
root:最高权限的账户,$Home是/var/root
mobile:普通权限账户,智能操作一些普通文件,不能操作系统级别的文件,$Home是/var/mobile
登录root账户:ssh root@手机ip地址
登录mobile账户:ssh mobile@手机ip地址
root和mobile的初始登录密码均为alpine
修改密码:root对应命令为passwd,mobile对应命令为passwd mobile
3- 关于USB-SSH登录
通过端口映射实现登录,具体如下:
首先下载usbmuxd工具包:地址 主要是使用python-client的tcprelay.py脚本文件
可以在下载后将版本号去掉直接存储为usbmuxd文件名
然后将iPhone的22端口映射到Mac本地的自定义端口(只要不是保留端口就行)
终端输入: cd ~/Downloads/usbmuxd/python-client
python tcprelay.py -t 22:18200 (此处的18200为我的自定义端口)
新开终端窗口,进行登录:
ssh root@localhost -p 18200
在操作过程中注意要保持之前usbmuxd的终端任务一直运行,否则将断开连接
4- SSH的通信过程
SSH的通信主要有三大步骤,分别是
建立安全连接-------->客户端认证--------->数据传输
建立连接的过程主要是为了确认服务器身份信息是否正确,这个过程中服务区会把公钥等相关信息传输过来、客户端进行存储 known_hosts
如果出现服务器地址更改,疑似有中间攻击等,在确定连接对象正确的情况下、操作室删除原来的公钥文件:
ssh-keygen -R ip地址
或者是
vim known_hosts 编辑模式下选中对应行dd进行删除 :wq保存并退出 即可
客户端认证有两种方式:基于密码的验证和基于秘钥的免密码验证
秘钥方式:
客户端通过 ssh-keygen -t rsa 生成公钥、私钥文件:id_rsa.pub 和 id_rsa
将生成的公钥文件追加到服务器的授权文件的尾部:ssh-copy-id 服务器地址
以上、基于秘钥的免密码登录即可成功
再次输入ssh root@手机ip地址 就可以成功登录而不需要输入密码了。
以上就是本篇文章关于iOS逆向开发的相关环境配置的内容了。