移动设备抓包主要方式
一、PC上设置网络共享,生成Wi-Fi热点供移动设备使用,PC上再使用tcpdump、Wireshark等捕获分析;
二、PC上开启http代理工具服务器(如Charles、fiddler),移动设备再通过该HTTP代理上网(只能抓去HTTP/HTTPs);
三、使用管道工具将iOS上流量引入到PC上(需要越狱)
rvictl抓包
iOS5后,apple引入RVI remote virtual interface特性,只需要将iOS设备使用USB数据线连接到Mac上,然后使用rvictl工具以iOS设备的UDID为参数在Mac中建议一个虚拟网络接口rvi,就可以在Mac上使用tcpdump、Wireshark等工具对创建接口进行抓包分析。这种抓包方式,是直接捕获iOS设备上的网络流量,所以Wi-Fi、2G/3G、非HTTP/HTTPS等网络都可以捕获。
具体方法如下:
第一步:使用USB数据线将iOS设备连接到Mac上;
第二步:获取iOS设备的UCID,可以直接使用iTunes/Xcode的organizer工具查看;
第三步:创建rvi接口:
rvictl -s
查看创建虚拟接口:
rvictl -l
创建后可以使用如下命令查看虚拟接口是否创建成功:
ifconfig rvi0
第四步:Mac上使用tcpdump/Wireshark等针对创建虚拟接口抓包;
第五步:分析完成后,移除创建的rvi接口:
rvictl -x
备注:Android设备需要root,使用tcpdump可以进行非Wi-Fi抓包。
附录:
rvictl用法:
~ rvictl
rvictl [-h][-l][-s
Remote Virtual Interface Tool starts and stops a remote packet capture instance
for any set of attached mobile devices. It can also provide feedback on any attached
devices that are currently relaying packets back to this host.
Options:
-l, -L List currently active devices
-s, -S Start a device or set of devices
-x, -X Stop a device or set of devices