参考文档
www.wireshark.org
Mac OS X上使用Wireshark抓包 (抓取手机网络)
使用wireshark以及filddler配合抓去手机端的TCP以及HTTP请求
Wireshark基本介绍和学习TCP三次握手
wireshark使用教程
Mac下使用Wireshark抓iphone手机数据包
Wireshark抓包分析/TCP/Http/Https及代理IP的识别
一、Mac抓iPhone数据包
原理:使用 Mac 抓取 iPhone 数据包可通过共享和代理两种方式:
1.1、使用 Mac 的网络共享功能将 Mac 的网络通过 'WiFi共享' 给iPhone连接
1.1.1、原理:
手机->运营商->服务器
手机->PC网卡->运营商->服务器
1.1.2、亲手操作:
- 1、打开 系统偏好设置 -> 共享;
- 2、我设置了 Wi-Fi 为网络来源,共享给 iPhone USB 端口(因为只有一个网卡的原因,不能以 Wi-Fi 端口共享出去!);
- 3、关闭 iPhone 上一切网络,用数据线连接到 mac USB 接口;
- 4、神奇的事情发生了,没有WiFi和4G情况下,手机能正常上网;
开启Mac网络共享
wireshark监控刚刚我们共享网络的端口
wireshark抓到了iPhone的数据包(打开自己的APP请求)
1.2、使用代理软件(例如 Charles)在Mac上建立HTTP代理服务器
1.3、Remote Virtual Interface,RVI
1.3.1、RVI介绍
苹果在 iOS 5 中新引入了“远程虚拟接口(Remote Virtual Interface,RVI)”的特性,可以在 Mac 中建立一个虚拟网络接口来作为 iOS 设备的网络栈,这样所有经过 iOS 设备的流量都会经过此虚拟接口。此虚拟接口只是监听 iOS 设备本身的协议栈(但并没有将网络流量中转到 Mac 本身的网络连接上),所有网络连接都是 iOS 设备本身的,与 Mac 电脑本身联不联网或者联网类型无关。iOS设备本身可以为任意网络类型(WiFi/xG),这样在 Mac 电脑上使用任意抓包工具(tcpdump、Wireshark、CPA)抓取 RVI 接口上的数据包就实现了对 iPhone 的抓包。
1.3.2、终端查看RVI
1.4.3、获取UUID
首先,通过 USB 数据线将 iPhone 连接到安装了 Mac 上(老旧的设备可能不行),抓包过程中必须保持连接;
然后,通过 iTunes->Summary 或者 Xcode->Organizer->Devices 获取 iPhone 的 UDID。
1.3.4、终端开启RVI
打开终端,使用“rvictl -s UUID”命令创建 RVI 接口,使用 iPhone 的 UDID 作为参数。
根据UUID开启RVI,并查看list
wireshark监控RVI端口
wireshark抓到了iPhone的数据包(某车帝APP请求)
二、牛刀小试 - 尝试抓某车帝的数据包
监控iPhone USB端口,打开某车帝APP某个页面。