此文章來自:聽雲博客 很多時候需要網路抓包分析,在iPhone上抓包稍有不同,下麵介紹三種常用的方式。分析工具以wireshark為例。 一、最簡單的方式:用PC作為熱點,在PC上抓包 優點:簡單 缺點:不能抓真機2g/3g/4g網路數據 步驟如下: 1、PC接上有線 2、PC用wifi方式共用網路
此文章來自:聽雲博客
很多時候需要網路抓包分析,在iPhone上抓包稍有不同,下麵介紹三種常用的方式。分析工具以wireshark為例。
一、最簡單的方式:用PC作為熱點,在PC上抓包
優點:簡單
缺點:不能抓真機2g/3g/4g網路數據
步驟如下:
1、PC接上有線
2、PC用wifi方式共用網路,即PC作為一個熱點。
3、手機設置網路,選擇PC那個熱點
4、在PC上打開wireshark,選擇要監控的介面,指定wifi埠,開始捕捉。
二、tcpdump命令
優點:優點很多,可以做很高級的定製和選擇,可以編程式控制制
缺點:兩個,一是手機必須越獄,二是使用比較麻煩。
步驟如下:
1、下載tcpdump
從cydia搜索安裝tcpdump,如果沒有搜到,請先添加源http://apt.saurik.com
2、安裝openssh
從cydia搜索安裝openssh,如果沒有搜到,請先添加源http://apt.saurik.com
3、退出cydia,這會重啟機器或重啟springboard
4、在PC上通過ssh命令訪問手機,以root身份,root的初始密碼是alpine,例如:
按提示輸入密碼之後,就遠程登錄到手機了(建議第一件事是用pwd立即改掉預設密碼),此時可以執行tcpdump命令錄製網路數據。
5、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命令,結束之後,緩存在記憶體的數據才會完全寫入文件。
6、把文件拷貝到PC
用scp命令把文件拷貝到PC:
scp [email protected]:~/1.PCap ./
(或者ifunbox之類的工具拖拽更簡單)
7、現在,可以用wireshark打開1.PCap分析數據了。
總之,tcpdump很強大,也很複雜。以上我故意沒有貼圖,貼圖會讓篇幅很大,有點嚇人。
三、最佳方式:rvictl命令
優點:簡單,而且可以抓所有網路介面的數據
缺點:似乎沒有,要求手機iOS5以上不算要求吧?如果說缺點,就是這個命令是xcode的Command Line Tools 中的。
步驟:
1、手機通過usb線連接到PC
2、查看手機的UDID,因為rvictl需要使用它。
可以從iTunes看:
紅色區域如果不是UDID,點擊它。
用xcode看更方便,window—>devices,然後選擇手機,如圖:
3、建立連接
格式:rvictl -s <UDID>
例如:
這樣,PC上就多了一個虛擬的埠rvi0。可以用 -l參數查看有哪些虛擬埠:
好了,現在可以用wireshark捕捉這個埠的數據了。啟動wireshark,並選擇網路介面,如圖:
無論手機使用的是wifi還是2g、3個、4g,現在你在wireshark里都能實時看到數據了:
是不是非常方便?
4、最後,好習慣是用完關閉:
rvictl -x <UDID>
如:
原文鏈接:http://blog.tingyun.com/web/article/detail/261