此文章來自:聽雲博客html
不少時候須要網絡抓包分析,在iPhone上抓包稍有不一樣,下面介紹三種經常使用的方式。分析工具以wireshark爲例。web
1、最簡單的方式:用PC做爲熱點,在PC上抓包spring
優勢:簡單express
缺點:不能抓真機2g/3g/4g網絡數據編程
步驟以下:xcode
一、PC接上有線緩存
二、PC用wifi方式共享網絡,即PC做爲一個熱點。網絡
三、手機設置網絡,選擇PC那個熱點ssh
四、在PC上打開wireshark,選擇要監控的接口,指定wifi端口,開始捕捉。tcp
2、tcpdump命令
優勢:優勢不少,能夠作很高級的定製和選擇,能夠編程控制
缺點:兩個,一是手機必須越獄,二是使用比較麻煩。
步驟以下:
一、下載tcpdump
從cydia搜索安裝tcpdump,若是沒有搜到,請先添加源http://apt.saurik.com
二、安裝openssh
從cydia搜索安裝openssh,若是沒有搜到,請先添加源http://apt.saurik.com
三、退出cydia,這會重啓機器或重啓springboard
四、在PC上經過ssh命令訪問手機,以root身份,root的初始密碼是alpine,例如:
ssh root@192.168.1.118
按提示輸入密碼以後,就遠程登陸到手機了(建議第一件事是用pwd當即改掉默認密碼),此時能夠執行tcpdump命令錄製網絡數據。
五、tcpdump的簡單用法
tcpdump -h 顯示幫助信息:
Usage: tcpdump [-aAdDeflLnNOpqRStuUvxX] [-c count] [ -C file_size ]
[ -E algo:secret ] [ -F file ] [ -i interface ] [ -M secret ]
[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ] [ -y datalinktype ] [ -Z user ]
[ expression ]
關於tcpdump的使用,網上不少,例如:http://blog.chinaunix.net/uid-20237628-id-3946009.html
因爲tcpdump只是抓取數據,抓取的數據咱們要拿到PC上用wireshark或相似工具分析,所以 -w開關是必須的,它用來指定一個文件,該文件保存抓到的數據,隨後咱們就把這個文件拷貝到電腦上進行分析。
-i 開關是最重要的,它指定要攔截的網絡接口,對於wifi,接口是en0,對於移動數字網絡,網絡接口是pdp_ip0
例如:
tcpdump -s 0 -i pdp_ip0 -w ~/1.PCap
命令要求抓取移動網絡接口的數據,要完整數據包,要保存到~/1.PCap文件。
當須要結束時,用ctrl+z結束tcpdump命令,結束以後,緩存在內存的數據纔會徹底寫入文件。
六、把文件拷貝到PC
用scp命令把文件拷貝到PC:
scp root@192.168.11.211:~/1.PCap ./
(或者ifunbox之類的工具拖拽更簡單)
七、如今,能夠用wireshark打開1.PCap分析數據了。
總之,tcpdump很強大,也很複雜。以上我故意沒有貼圖,貼圖會讓篇幅很大,有點嚇人。
3、最佳方式:rvictl命令
優勢:簡單,並且能夠抓全部網絡接口的數據
缺點:彷佛沒有,要求手機iOS5以上不算要求吧?若是說缺點,就是這個命令是xcode的Command Line Tools 中的。
步驟:
一、手機經過usb線鏈接到PC
二、查看手機的UDID,由於rvictl須要使用它。
能夠從iTunes看:
紅色區域若是不是UDID,點擊它。
用xcode看更方便,window—>devices,而後選擇手機,如圖:
三、創建鏈接
格式:rvictl -s <UDID>
例如:
這樣,PC上就多了一個虛擬的端口rvi0。能夠用 -l參數查看有哪些虛擬端口:
好了,如今能夠用wireshark捕捉這個端口的數據了。啓動wireshark,並選擇網絡接口,如圖:
不管手機使用的是wifi仍是2g、3個、4g,如今你在wireshark裏都能實時看到數據了:
是否是很是方便?
四、最後,好習慣是用完關閉:
rvictl -x <UDID>
如: