Ios抓取移動(dòng)網(wǎng)絡(luò)數(shù)據(jù)包
通常情況下iOS設(shè)備抓包有三種方式:一種越獄后安裝tcpdump程序進(jìn)行抓包谍咆,第二種是通過(guò)設(shè)置代理服務(wù)抓包冠绢,第三種通過(guò)WIFI熱點(diǎn)抓包上陕。以上方式都有自己的局限性墨吓,第一種方法需要越獄后安裝一系列軟件哮洽,第二種方法需要設(shè)置代理服務(wù)器同時(shí)也不能抓到移動(dòng)網(wǎng)絡(luò)的數(shù)據(jù)包,第三種無(wú)法抓取移動(dòng)網(wǎng)絡(luò)的數(shù)據(jù)包∩际剩現(xiàn)在討論下第四種抓包方式谎倔。
其實(shí)蘋(píng)果已經(jīng)提供更加簡(jiǎn)單直接的抓包方式,通過(guò)rvictl命令猿推。
iOS 5后片习,apple引入了RVI remote
virtual interface的特性,它只需要將iOS設(shè)備使用USB數(shù)據(jù)線連接到mac上蹬叭,然后使用rvictl工具以iOS設(shè)備的UDID為參數(shù)在Mac中建立一個(gè)虛擬網(wǎng)絡(luò)接口rvi藕咏,就可以在mac設(shè)備上使用tcpdump,wireshark等工具對(duì)創(chuàng)建的接口進(jìn)行抓包分析了
下面一起看下rvictl具體怎么使用
首先ios設(shè)備通過(guò)數(shù)據(jù)線連接到mac秽五,打開(kāi)mac終端
首次在Mac終端輸入rvictl命令通常會(huì)遇到下面的情況
這是因?yàn)閞victl命令是xcode工具的一部分孽查,需要安裝xcode工具
安裝xcode后再次輸入rvictl命令展示如上圖,其中udid就是ios設(shè)備的設(shè)備號(hào)坦喘,-s代表開(kāi)始建立設(shè)備虛擬網(wǎng)絡(luò)
獲取設(shè)備udid的幾種方法
ioreg -w 0 -rcIOUSBDevice -k SupportsIPhoneOS | sed -n's/.*USB SerialNumber[^0-9a-z]*\([0-9a-z]*\).*/\1/p'
system_profiler
SPUSBDataType | grep"Serial Number:.*"| sed s#".*Serial Number: "##
執(zhí)行rvictl –s命令后通過(guò)ifconfig查看網(wǎng)卡情況
rvictl –s命令會(huì)新建一個(gè)虛擬網(wǎng)卡rvi0
這個(gè)rvi0網(wǎng)卡就是ios設(shè)備在Mac上的網(wǎng)絡(luò)映射盲再,通過(guò)抓取rvi0的數(shù)據(jù)包就可以抓取到ios上的網(wǎng)絡(luò)數(shù)據(jù)包
再次回顧下rvictl命令的原理,將iOS設(shè)備使用USB數(shù)據(jù)線連接到mac上瓣铣,然后使用rvictl工具以iOS設(shè)備的UDID為參數(shù)在Mac中建立一個(gè)虛擬網(wǎng)絡(luò)接口rvi答朋,就可以在mac設(shè)備上使用tcpdump,wireshark等工具對(duì)創(chuàng)建的接口進(jìn)行抓包棠笑。