在mac osx RIV模式中使用tcpdump、wireshark抓取分析iphone数据包
一、Remote Virtual Interface
在iOS5中新引入了“远程虚拟接口(remote virtual interface ,RVI)“的特性,可以在Mac中建立一个虚拟网络接口来作为iOS设备的网络栈,这样所有经过iOS设备的流量都会经过此虚拟接口,此虚拟接口代替了iOS设备本身的协议栈,但并没有将网络流量中转到Mac本身的网络连接上,这样所有网络连接都是iOS设备本身的,Mac电脑本身连不联网或者连接的网络类型都没有关系,而iOS设备本身可以为任意网络类型,2G/3G/WiFi等。在Mac电脑上使用任意抓包工具抓取RVI接口上的数据包就可以看到iOS设备上的所有网络数据。
二.使用方法
通过USB口将iPhone连接到Mac上。
使用Xcode的organizer工具获取到iPhone的UDID(identifier后的一长串就是)
使用rvictl命令创建RVI接口(remote virtual interface),使用iPhone的UDID作为参数。
$ rvictl -s
如果想捕获多个设备的网络包,可以使用上述命令创建多个设备的RVI,传递每个iOS设备的UDID作为参数即可。
RVI虚拟接口的命名规则为rvi0,rvi1,rvi2,…,可使用ifconfig命令查看
$ ifconfig rvi0
rvi0: flags=3005
使用完之后需要将创建的虚拟接口移除
$ rvictl -x
三、使用tcpdump抓包
tcpdump -i rvi0 -w capture.cap -v -vv -c 100 -X -e
四、使用wireshark打开capture.cap就可以进行分析了
暂无评论