很多時(shí)候需要網(wǎng)絡(luò)抓包分析夭禽,在iPhone上抓包稍有不同弃理,下面介紹三種常用的方式袁余。分析工具以wireshark為例。
一粉洼、最簡(jiǎn)單的方式:用PC作為熱點(diǎn),在PC上抓包
優(yōu)點(diǎn):簡(jiǎn)單
缺點(diǎn):不能抓真機(jī)2g/3g/4g網(wǎng)絡(luò)數(shù)據(jù)
步驟如下:
1叶摄、PC接上有線
2属韧、PC用wifi方式共享網(wǎng)絡(luò),即PC作為一個(gè)熱點(diǎn)蛤吓。
3宵喂、手機(jī)設(shè)置網(wǎng)絡(luò),選擇PC那個(gè)熱點(diǎn)
4会傲、在PC上打開(kāi)wireshark锅棕,選擇要監(jiān)控的接口拙泽,指定wifi端口,開(kāi)始捕捉裸燎。
二顾瞻、tcpdump命令
優(yōu)點(diǎn):優(yōu)點(diǎn)很多,可以做很高級(jí)的定制和選擇德绿,可以編程控制
缺點(diǎn):兩個(gè)荷荤,一是手機(jī)必須越獄,二是使用比較麻煩移稳。
步驟如下:
1梅猿、下載tcpdump
從cydia搜索安裝tcpdump,如果沒(méi)有搜到秒裕,請(qǐng)先添加源http://apt.saurik.com
2袱蚓、安裝openssh
從cydia搜索安裝openssh,如果沒(méi)有搜到几蜻,請(qǐng)先添加源http://apt.saurik.com
3喇潘、退出cydia,這會(huì)重啟機(jī)器或重啟springboard
4梭稚、在PC上通過(guò)ssh命令訪問(wèn)手機(jī)颖低,以root身份,root的初始密碼是alpine弧烤,例如:
ssh root@192.168.1.118
按提示輸入密碼之后忱屑,就遠(yuǎn)程登錄到手機(jī)了(建議第一件事是用pwd立即改掉默認(rèn)密碼),此時(shí)可以執(zhí)行tcpdump命令錄制網(wǎng)絡(luò)數(shù)據(jù)暇昂。
5莺戒、tcpdump的簡(jiǎn)單用法
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 ]
關(guān)于tcpdump的使用,網(wǎng)上很多急波,例如:http://blog.chinaunix.net/uid-20237628-id-3946009.html
由于tcpdump只是抓取數(shù)據(jù)从铲,抓取的數(shù)據(jù)我們要拿到PC上用wireshark或類(lèi)似工具分析,因此 -w開(kāi)關(guān)是必須的澄暮,它用來(lái)指定一個(gè)文件名段,該文件保存抓到的數(shù)據(jù),隨后我們就把這個(gè)文件拷貝到電腦上進(jìn)行分析泣懊。
-i 開(kāi)關(guān)是最重要的伸辟,它指定要攔截的網(wǎng)絡(luò)接口,對(duì)于wifi馍刮,接口是en0信夫,對(duì)于移動(dòng)數(shù)字網(wǎng)絡(luò),網(wǎng)絡(luò)接口是pdp_ip0
例如:
tcpdump -s 0 -i pdp_ip0 -w ~/1.PCap
命令要求抓取移動(dòng)網(wǎng)絡(luò)接口的數(shù)據(jù),要完整數(shù)據(jù)包忙迁,要保存到~/1.PCap文件脐彩。
當(dāng)需要結(jié)束時(shí),用ctrl+z結(jié)束tcpdump命令姊扔,結(jié)束之后惠奸,緩存在內(nèi)存的數(shù)據(jù)才會(huì)完全寫(xiě)入文件。
6恰梢、把文件拷貝到PC
用scp命令把文件拷貝到PC:
scp root@192.168.11.211:~/1.PCap ./
(或者ifunbox之類(lèi)的工具拖拽更簡(jiǎn)單)
7佛南、現(xiàn)在,可以用wireshark打開(kāi)1.PCap分析數(shù)據(jù)了嵌言。
總之嗅回,tcpdump很強(qiáng)大,也很復(fù)雜摧茴。以上我故意沒(méi)有貼圖绵载,貼圖會(huì)讓篇幅很大,有點(diǎn)嚇人苛白。
三娃豹、最佳方式:rvictl命令
優(yōu)點(diǎn):簡(jiǎn)單,而且可以抓所有網(wǎng)絡(luò)接口的數(shù)據(jù)
缺點(diǎn):似乎沒(méi)有购裙,要求手機(jī)iOS5以上不算要求吧懂版?如果說(shuō)缺點(diǎn),就是這個(gè)命令是xcode的Command Line Tools 中的躏率。
步驟:
1躯畴、手機(jī)通過(guò)usb線連接到PC
2、查看手機(jī)的UDID薇芝,因?yàn)閞victl需要使用它蓬抄。
紅色區(qū)域如果不是UDID,點(diǎn)擊它恩掷。
用xcode看更方便倡鲸,window—>devices,然后選擇手機(jī)黄娘,如圖:
3、建立連接
這樣克滴,PC上就多了一個(gè)虛擬的端口rvi0逼争。可以用 -l參數(shù)查看有哪些虛擬端口:
好了劝赔,現(xiàn)在可以用wireshark捕捉這個(gè)端口的數(shù)據(jù)了誓焦。啟動(dòng)wireshark,并選擇網(wǎng)絡(luò)接口,如圖:
無(wú)論手機(jī)使用的是wifi還是2g杂伟、3個(gè)移层、4g,現(xiàn)在你在wireshark里都能實(shí)時(shí)看到數(shù)據(jù)了:
是不是非常方便赫粥?