本人设备,越狱iPhone5s 8.1系统。推荐去pp助手 进行越狱,在这里可以查看你的手机是否支持完美越狱
一、通过wifi连接手机
通过OpenSSH的方式连接手机(确保你的路由器没有关闭SSH),这个方法只是让大家了解一下,还是建议大家用数据线的方式连接,因为无线的方式太慢了,数据线的方式传输数据速度比较快。
1、手机、mac连接同一wifi,打开越狱手机无线页面,点击已连接无线右侧感叹号图标,看到DHCP下IP地址选项 192.168.xxx.xxx。
2、mac上打开命令行输入ssh@root192.168.xxx.xxx -> 回车 -> yes -> 手机初始密码alpine,至此mac成功连接上iPhone。
二、wifi连接手机传输数据较慢,下面是通过数据线连接手机
下载usbmuxd工具包,cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.gz 主要用到里面的一个python脚本,将iPhone的22端口(SSH端口)映射到Mac本地的10010端口,运行下边两端代码
cd ~/Documents/usbmuxd-1.0.8/python-client
python tcprelay.py -t 22:10010
加上-t参数是为了能够同时支持多个SSH连接,这时候连上数据线并打开一个新的命令行窗口输入ssh -p 10010 root@localhost,-p是端口的意思。敲完这个命令就通过数据线连接上了手机,上边的两步操作可以写到.sh文件中,通过sh或bash或source命令快速执行。
三、Cycript调试程序
1、通过Cydia安装Cycript
ps -A列出当前手机所有进程
列出当前进程后,你就可以看到你想要的app的MACH-O的位置了。通过iFunbox打开位置把MACH-O文件拷贝到mac上供你享用。eg.我这里逆向的是ximalayaApp,那么可以看到文件的地址是/var/mobile/Containers/Bundle/Application/1B21585A-E451-477E-BA0C-26AF35960168/ting.app/ting
cycript -p xxx连接当前程序。eg.cycript -p ting
control + d退出连接
2、可以自己封装Cycript库存放到手机中,默认路径是手机的/usr/lib/cycript0.9文件夹
#import xxx可以导入自己写的库。eg.我这里用的李明杰的库,github地址,然后我把内容改成了自己的名字放到了默认路径中,为了防止冲突在/usr/lib/cycript0.9新建了文件夹com/wlz/WLZCycript.cy(用到的工具是iFunBox),具体用法可以参考MJ库的解析。
四、class-dump
一般从pp助手上下载的app都不用脱壳,所以这里省略了脱壳的教程。 官方地址:stevenygard.com/projects/cl…下载完工具包后将class-dump文件复制到Mac的/usr/local/bin目录,这样在终端就能识别class-dump命令了。将app的头文件导入到mac中。有了头文件就可以做很多事情了。 1、把Mach-o文件copy到mac上,然后运行下边的命令。
class-dump -H Mach-O文件路径 -o 头文件存放目录
-H表示要生成头文件
-o用于制定头文件的存放目录
五、tweak
六、SSH-基于秘钥的客户端认证
1、SSH-2认证方式
SSH-2提供了2种常用的客户端认证方式
1️⃣基于密码的客户端认证
- 使用账号和密码即可认证
2️⃣基于密钥的客户端认证
- 免密码认证
- 最安全的一种认证方式
SSH-2默认会优先尝试“密钥认证”,如果认证失败,才会尝试“密码认证”
2、在客户端(Mac)生成公钥、私钥。
ssh-keygen 然后一直回车,生成公钥~/.ssh/id_ras.pub 私钥~/.ssh/id_rsa
OpenSSH默认生成的是RSA秘钥,可以通过-t指定秘钥类型。
3、把客户端(Mac)的公钥内容追加到服务器的授权文件(~/.ssh/authorized_keys)尾部即可
需要注意的是客户端有两个常用账户,
- root 最高权限账户,路径是 /var/root
- mobile 普通权限账户,路径是 /var/mobile
我这里是把authorized_keys文件copy到客户端(Mac)上,然后把公钥copy到此文件尾部,然后再把此文件copy到服务端(iPhone)~/.ssh/目录下,覆盖旧文件。如果配置了免密码登录之后还需要输入密码,那就需要在服务端用chmod设置文件权限,具体可以自己百度。
- iFunBox 此工具可以打开文件目录,进行copy操作。