iOS 逆向(一)环境搭建

这个系列,是很早听 MJ 课程时的整理,如今分享出来。 其中一些参考资料有些有引用,有些可能忘记添加了,若是有引用部分资料,能够联系我。python

iOS 逆向(一)环境搭建
iOS 逆向(二)Cycript
iOS 逆向(三)逆向工具
iOS 逆向(四)脱壳
审核中 iOS 逆向(五)Theos工具 iOS 逆向(六)动态调试
iOS 逆向(七)重签名ios

1、越狱

iOS Jailbreak(iOS越狱),利用iOS系统的漏洞,获取iOS系统的最高权限(Root),解开以前的各类限制(合法行为)git

  • 完美越狱

越狱后的iPhone能够正常关机和重启github

  • 不完美越狱

iPhone一旦关机后再开机时,屏幕就会一直停留在启动画面,也就是“白苹果”状态,或者能正常开机,但已经安装的破解软件都没法正常使用,须要将设备与PC链接后,使用软件进行引导才能使用。vim

2、软硬件准备

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

越狱以后,为了搭建开发环境,依次进行下面操做。bash

2.3.1 添加软件源

PP助手软件源:apt.25pp.com服务器

  • 通常在Cydia中安装完软件以后,会自动重启SpringBoard,即重启iOS桌面。

2.3.2 安装软件

!!!建议遵循安装顺序,不然环境配置可能配置不正确。markdown

顺序 软件 做用 软件源
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失败,则能够经过下面方式安装:

  1. 先从网上下载deb格式的安装包,iFile安装包
  2. 将deb安装包放到/var/root/Media/Cydia/AutoInstall
  3. 重启手机,Cydia就会自动安装deb; | Bigboss

apt.thebigboss.org/repofiles/c… | | 4 | OpenSSH | 远程登陆,Mac电脑登陆iPhone,须要在iPhone上安装OpenSSH | |

3、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 利用脚本登陆

更流畅的操做

链接:

新开窗口,登陆:

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、投屏

5.1 VNC链接

  1. Veency插件

2. 在设置里面,找到Veency,设置VNC链接密码; 3. 确保Mac与iPhone在同一个无线网络中; 4. 在Mac电脑上利用VNC客户端,进行链接。

  • Finder支持VNC协议,打开Finder,链接服务器。输入vnc://手机IP

  • 利用其它VNC客户端进行链接也可,

Tips:

VNC客户端推荐:Remotix

5.2 Airserver

  1. 下载Mac端、iPhone端;
  2. 打开Mac端,打开iPhone端,扫描电脑的二维码;
  3. 在iPhone端打开控制中心,选择AirPlay,选择电脑。

Reflector 3 软件相似。

6、越狱问题

6.1 白苹果问题

当Cydia安装插件或者系统出错后,重启手机后,手机会一直停留在苹果页面。能够尝试下面方案:

6.1.1 方案一

  1. 在白苹果的时候,按住开关+home键,黑屏就放手,此后机器处于关机状态,注:iPhone一次成功,iPad air请多尝试几回。
  2. 再按POWER开机,等一下,这时候仍是白苹果
  3. 松开power,而后按音量加和减,能够两个分别点一下,而后两个一块儿长按。

到这里就好了,长按以后,屏幕就会变暗,正常进入系统,并非安全模式,可是全部插件也没有用,而后进入cydia删掉冲突插件,重启手机以后进入系统就正常了!

原理就是手机越狱后,安装cydia的时候通常会自动安上MobileSubstrate这个插件,开机启动的时候,按住音量键的“+”,会进入不加载MobileSubstrate的状态,你能够认为这是一种不加载MobileSubstrate的伪安全状态(Mobile Substrate必需要更新到0.9.3997以上的最新版本哦)。

Cydia里安装的软件大多要依赖这个插件的,不加载MobileSubstrate,就等于停用了大部分的插件,你就能够删掉致使白苹果的软件了。

6.1.2 方案二

白苹果的时候

  1. 按住开机+home能够强制关机
  2. 按开机和“+”号键开机,这是默认不加载全部cydia的插件,
  3. 顺利开机进入系统后,等待,很长时间的等待,十分钟吧!
  4. 直接去cydia里删除冲突插件就能够啦!

6.1.3 方案三

若是还不行,那就刷官方固件吧,越狱就这样没了。

参考

  1. PP助手越狱系统查询
  2. MJ 课程
相关文章
相关标签/搜索