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 課程
相關文章
相關標籤/搜索