iPhone 虚拟网卡机制,可以把iPhone中实时网络通讯包捕获到MacOSX上,这是分析网络协议利器

iOS 5后,Apple引入了RVI即 remote virtual interface。它只需要将iOS设备使用USB数据线连接到mac上,然后使用rvictl工具以iOS设备的UDID为参数在Mac中建立一个虚拟网络接口rvi,就可以在mac设备上使用Tcpdump,wireshark等工具对创建的接口进行抓包分析了。

这个机制相对于 在Mac上安装Charles搭代理服务器抓包这个办法而言,不仅硬件环境简单,就是Xcode真机开发环境本身,特别对于一些很多App会直接跳开代理,所以虚拟网卡能抓wifi和移动数据包所有数据.相当方便。

步骤:第一步:使用USB数据线将iOS设备连接到MAC上

第二步:获得iOS设备的UDID,可以使用iTunes查看,也可以使用Xcode的Organizer工具查看

第三步:创建RVI接口

在mac 终端执行命令$ rvictl -s <UDID>这样会在Mac上创建一个虚拟网卡rv0

用ifconfig rv0 可以看数据

rvictl -s 270516bef723f891416e46270b4026d3e8b1f172 Starting device 270516bef723f891416e46270b4026d3e8b1f172 [SUCCEEDED] with interface rvi0 bluedrum:~ pro$ ifconfig rvi0 rvi0: flags=3005<UP,DEBUG,LINK0,LINK1> mtu 0

第四步: 用抓包软件针对rv0抓包即可.这里我使用 wireshark,在新建时,选rvi0进行抓包

iphone开放本地网络授权(分析网络协议利器)(1)

iphone开放本地网络授权(分析网络协议利器)(2)

第五步:分析结束后,移除创建的RVI接口

$ rvictl -x <UDID>

,