iphone手機上的抓包流程和原理概述

NO IMAGE

在ios應用開發過程中,為了進行端到端的分析,很多時候我們需要對手機的抓包進行分析。

對手機的抓包我們要在手機上安裝抓包工具:tcpdump

前提:手機越獄;安裝tcpdump    這樣一部iphone就具備了抓包能力。

方法1:手機直接抓包(在手機上安裝terminal用於輸入命令)

不受網路條件制約,但由於是在終端上操作抓包,對ios裝置來講,MobileTerminal切至後臺就不再工作,因此該抓包方法可行性較低,儘管如此,MobileTerminal對終端測試人員來說依然是一款很實用的工具;命令控推薦此方法。

方法2:通過pc/mac連線到手機(iPhoneTunnel軟體,有mac和pc版本),通過在pc/mac下輸入抓包命令,在手機上抓包。

pc下:用USB線纜連線終端與PC,確保手機終端正確,啟動iPhoneTunnel,綠燈表示Tunnel Status正常,此時點選Launch Terminal按鈕即可SSH進入終端,輸入root密碼,然後執行命令抓包

mac下:用USB線纜連線終端與mac,確保手機終端正確,啟動iPhoneTunnel並開啟後,點選tools->ssh(root) 選單調出一個命令列介面,此時有可能報一個連線錯誤,輸入ssh-keygen -R [127.0.0.1]:2222清除下里面的一個配置,即可正常連線。連線以後執行命令抓包,同pc。(tip:mac下終端輸入密碼時沒有佔位符,需要保證正確,注意)

WiFi下抓包tcpdump -i en0 -X -s0 -w data.pcap

2G/3G下抓包tcpdump -i pdp_ip0 -X -s0 -w data.pcap或 tcpdump -X -s0 -w data.pcap  (兩個都可以試下,我一般用前者)

抓包結束命令:ctl c

敲此命令抓包的預設路徑在var->root資料夾內。

總結:兩個方法本質一樣,都是利用tcpdump在手機上抓包,方法二通過ssh連線到手機去執行抓包命令(此時iphone充當一個server角色,pc/mac作為client連線到該server進行遠端控制),因為抓到的包一般需要在pc/mac下用wireshark進行分析,所以pc/mac基本是必須的,推薦方法2。