Charles抓下请求是没问题的,但要抓二进制,似乎就不行了.这时候就需要抓包神器wireshark了,有了它我们就可以轻松分析发送和就收的数据了.
首先准备工作:
- 下载wireshark mac 版,百度搜索,第一个就是
- x11,也叫xquartz,貌似10.10.5之后系统自带了,不过还是建议确认下.
1.安装 Wireshark
直接百度搜索下载安装即可.
2.安装 Quartz(X11)
如果么没有安装X11,会提示下载然后跳转到官方主页,下载完安装即可.
安装成功后,在终端输入“xterm --help”可查看命令行帮助,输入“xterm -version”可查看 xterm 版本信息。在终端输入“xterm”或通过菜单“Applications->Terminal”可启动X Window(XQuartz)的终端(xterm)。
3.启动 Wireshark
首次启动 Wireshark,提示通过前端 X11 窗口可以操控 Wireshark;由于需要编译字体包,可能需要耗费几分钟。
如果事先没有安装 X11(XQuartz),则会提示引导安装 X11。
如果事先已经安装好 XQuartz(X11),则会引导选择 X11.app 所在路径。——最新版本的 Wireshark 1.12.4 Intel 64.dmg 貌似会自动识别已安装的 X11 路径而无需手动指定。
XQuartz.app(X11)路径在实用工具目录下
如果不出意外的话,Wireshark 将成功启动。
打开提示There are no interfaces on which a capture can be done 这是因为权限不够,关闭Wireshark,打开终端输入sudo wireshark
或者udo chown xingyun /dev/bpf*
走到这里,恭喜你已经安装成功了.
具体使用步骤如下:
- 退出xquartz(如果打开了)
- 获取调试设备的UUID,iTunes里可以比较方便的复制
- 打开终端,输入 sudo rvictl -s UDID,成功的话,会显示 Starting device ********** [SUCCEEDED]
- 接下来检查下设备号:ifconfig -l 可能列出
lo0 gif0 stf0 en0 en1 bridge0 p2p0 awdl0 rvi0 - 好了,这个rvi0就是给我们提供的接口
- 打开终端输入sudo wireshark 或者 sudo chown xingyun /dev/bpf*
- 接口选这个rvi0
- 比如我们这会儿调试RTMP协议,过滤一下,“rtmpt”
我们分析下握手的包: