未越狱ios设备的抓包方法

今天清明节,我依旧来了公司。突然感觉自己有点疯狂。不分工作休息日,各种来公司。。好像这已成为我的一种习惯。不过,在这样的一个城市这样的习惯对自己也挺有好处,因为各种雾霾,各种流感,各种人。。一切都是那么无聊,一切都是那么没意思。。。
在这里,安静的听着歌,了解感兴趣的,学习想学习的,也算是一种修身养性吧。。。慢慢充实自己吧。。
好了,瞎侃了几句。接下来进入正题吧。。

对于未越狱设备进行抓包,以前都是用一台电脑,共享自己的网络,然后拿一台设备连上这个电脑。用wireshark在电脑上抓包。这个方法也挺不错,不过在我们公司,有着非常非常奇葩的网络,电脑自己都是各种断,各种连不上,更别说贡献出来让别的设备用了。这个方法有时多少显得有点蛋疼。。。。还有该方法也无法抓使用3G网络的情况。。今天我想介绍另一种方法。
这种方法不用共享网络。在介绍具体方法前,先科普一个概念。

Remote Virtual Interface

在iOS 5以后增加了RVI(Remote Virtual Interface),它让我们使用OS X来抓取ios device上数据包。
基本的方法就是把设备通过USB连上mac上。然后为这台设备安装RVI,这个虚拟的在Mac上的网卡,就代表这台ios设备的使用网卡。然后在mac上跑抓包的工具,定位到这个虚拟的网卡上,来抓包。

(1)安装RVI,需要使用rvictl工具,以下步骤在mac的终端中操作:

$ # First get the current list of interfaces.
$ ifconfig -l
lo0 gif0 stf0 en0 en1 p2p0 fw0 ppp0 utun0
$ # Then run the tool with the UDID of the device.
$ rvictl -s 74bd53c647548234ddcef0ee3abee616005051ed

Starting device 74bd53c647548234ddcef0ee3abee616005051ed [SUCCEEDED]

$ # Get the list of interfaces again, and you can see the new virtual
$ # network interface, rvi0, added by the previous command.
$ ifconfig -l
lo0 gif0 stf0 en0 en1 p2p0 fw0 ppp0 utun0 rvi0

(2)安装成功后,此时其实可以用任何抓包工具来抓取。包括wireshark等。因为这时就会看到一个rvi0的网卡。不过今天我们介绍的是通过tcpdump来搞。
在终端中输入如下命令:

sudo tcpdump -i rvi0 -n -s 0 -w dump.pcap tcp

解释一下上面重要参数的含义:

-i rvi0 选择需要抓取的接口为rvi0(远程虚拟接口)

-s 0 抓取全部数据包

-w dump.pcap 设置保存的文件名称

tcp 只抓取tcp包

当tcpdump运行之后,你可以在iOS设备上开始浏览你想抓取的App,期间产生的数据包均会保存到dump.pcap文件中,当想结束抓取时直接终止tcpdump即可。然后在mac中找到dump.pcap文件。用wireshark打开就ok。

(3)去掉RVI这个虚拟网卡,使用下面的命令:

$ rvictl -x 74bd53c647548234ddcef0ee3abee616005051ed

Stopping device 74bd53c647548234ddcef0ee3abee616005051ed [SUCCEEDED]

整个流程就是这样的。自己动手操作一下吧。。
再详细的细节,请找一下苹果官方的资料:Technical Q&A QA1176。

原创文章转载时请注明出处,谢谢。

一个回复在 “未越狱ios设备的抓包方法

评论已关闭。

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部