抓取手机端原生tcp/udp数据包

RVI(remote virtual interfacer)

通过victl使ios设备在Mac中建立一个虚拟网络接口rvi,再用Tcpdump,Wireshark、Charles、Fiddler等对创建的接口进行抓包分析。

今对于tcp和udp协议的包使用此方法+tcpdump记录一下:
首先需要将你的手机通过Usb进行与Mac连接。通过iTunes查找你的设备UDID:288ee5ef6c3f8a5b*

如何获取你的设备UDID:

1. 打开iTunes软件,点击小手机图标地方。

2. 点击左边菜单栏里面的摘要,出现设备信息。

3. 点击序列号,会自动更换UDID,ECID,型号标识符。右击拷贝即可获取ios设备的UDID。

开启虚拟网络接口
ifconfig -l
rvictl -s 288ee5ef6c3f8a5b*  # 结果: Starting device 288e* [SUCCEEDED] with interface rvi0
ifconfig -l  # 对比两次config -l 的结果,多出一个虚拟接口
开启tcpdump进行监听
sudo tcpdump -i rvi0 -n -s 0 -w indump.pcap
# 必须使用sudo,否则权限校验失败
# -i 指定监听的接口
# -n 不做主机名解析
# -s len 设置数据包抓取的长度,默认65535字节
# -w filename 指定抓包数据到文件中
随心所欲的在手机上操作(想抓包的操作)
操作完后记得关闭该虚拟接口
rvictl -x 288ee5ef6c3f8a5b*  # 结果:Stopping device 288ee5ef6c3f* [SUCCEEDED]
得到抓取的包,进行分析。需要转换
brew install tcpreplay  # 通过tcprewrite进行转换,需要下载tcpreplay包
tcprewrite --dlt=enet --enet-dmac=00:11:22:33:44:55 --enet-smac=66:77:88:99:AA:BB --infile=indump.pcap --outfile=outdump.pcap
# --dlt 用enet以太网覆盖输出
# --enet-dmac 覆盖目标以太网mac地址
# --enet-smac 覆盖源以太网mac地址
# --infile 输入的文件
# --outfile 输出的文件
最后用charles打开out dump.pcap文件就可以分析所抓到的包啦

你可能感兴趣的:(抓取手机端原生tcp/udp数据包)