iOS Wireshark抓包

栏目: 编程工具 · 发布时间: 7年前

内容简介:级别:★☆☆☆☆标签:「Wireshark for mac」「iOS TCP抓包」「iOS UDP抓包」作者: Xs·H

级别:★☆☆☆☆

标签:「Wireshark for mac」「iOS TCP抓包」「iOS UDP抓包」

作者: Xs·H

审校:QiShare团队

在iOS应用开发过程中,通过抓包调试服务接口的场景时常出现。Charles和Wireshark是我在iOS开发过程中最常用的两款软件。

接上篇 iOS Charles抓包 ,Charles是很强大的网络请求抓包工具,常用于抓包HTTP/HTTPS请求。而作者在做IoT项目时,智能硬件配网协议是基于TCP/UDP或者蓝牙的,需要用Wireshark进行抓包调试。Wireshark官网

本文基于作者在项目中抓包iPhone和智能硬件之间TCP/UDP通信数据的经验来介绍Wireshark的使用方式。

一、启动Wireshark

Wireshark是免费软件,可以从官网直接下载安装。

从非官方网站下载资源时要注意甄别安装包来源,谨防木马和病毒。

安装成功后,启动Wireshark,可看到本地接口列表界面。图示如下:

iOS Wireshark抓包

此时,要选择一个接口,双击后进入抓包界面。Ethernet:en0(以太网卡)和Wi-Fi:en1(无线网卡)是教常用的两个接口。而作者要捕捉的数据(iPhone和智能硬件之间的TCP/UDP通信数据)不经过PC的网卡。所以,在抓包之前,需要先创建出来待捕捉的接口。

二、创建虚拟网卡

这里的虚拟网卡就是上述的待捕捉的接口。创建虚拟网卡的过程如下:

1. 获取iPhone的UDID

将iPhone通过USB接口连接Mac,然后在终端上使用下述命令获取iPhone的UDID。

$ system_profiler SPUSBDataType | grep "Serial Number:.*" | sed s#".*Serial Number: "##

decb66caf7012a7799c2c3edxxxxxxxx7f5a715e
复制代码

如果Mac上连接了多个iPhone,从 Xcode菜单栏 -> Window -> Devices and Simulators 可以更方便地获取准确的UDID。图示如下:

iOS Wireshark抓包

2. 为iPhone创建虚拟网卡

1) 查看已有的接口

$ ifconfig -l

lo0 gif0 stf0 XHC20 en0 en1 en2 en3 p2p0 awdl0 bridge0 utun0 en27
复制代码

2) 创建虚拟网卡

$ rvictl -s decb66caf7012a7799c2c3edxxxxxxxx7f5a715e

Starting device decb66caf7012a7799c2c3edxxxxxxxx7f5a715e [SUCCEEDED] with interface rvi0
复制代码

可以使用 rvictl -x [UDID] 命令在需要的时候去除网卡。

3) 再次查看已有的接口

$ ifconfig -l

lo0 gif0 stf0 XHC20 en0 en1 en2 en3 p2p0 awdl0 bridge0 utun0 en27 rvi0
复制代码

在末尾多出的 rvi0 就是为iPhone创建出来的虚拟网卡。使用 rvi0 就可以抓包了。

三、启动虚拟网卡

打开Wireshark,本地接口列表界面中出现了 rvi0 。图示如下:

iOS Wireshark抓包

双击 rvi0 即可进入抓包界面。 若此时出现如下弹窗,则说明无权限访问该接口。

iOS Wireshark抓包

这时,退出Wireshark,然后在终端上使用下述命令重新打开Wireshark就可以了。

$ sudo /Applications/Wireshark.app/Contents/MacOS/Wireshark 
Password:
复制代码

四、TCP/UDP抓包

1. 抓包界面

要对TCP/UDP进行抓包,首先需要了解Charles主界面。图示如下:

iOS Wireshark抓包

1) 工具栏

工具栏中包含一些功能按钮,可以控制开始抓包、停止抓包等。工具栏底部的输入框叫做显示过滤器,可以通过设定一些过滤条件,控制数据包列表栏的显示情况。

2) 数据包列表栏

这部分显示抓到的请求列表(包列表),不同类型的请求会以不同的颜色表示。顶部的 No.TimeSourceDestinationProtocolLengthInfo 是单条请求的的属性,可以在 菜单栏 -> 视图 中调整显示效果。

3) 数据包详情栏

在数据包列表栏中点击某条数据,可在此区域内查看详情。

4) 数据包流信息栏

此区域展示包的原始数据,在数据包详情栏中显示的内容在此区域都能对应到byte级别的数据。

网络包的分析可参考 永旺文章1永旺文章2 等文章。

2. 过滤器

由于Wireshark捕捉经过网卡的所有数据,在稍复杂的网路环境中,数据包的数量会瞬间增加,达到难以阅读和难以查找目标数据包的状态。此时,使用Wireshark捕获过滤器和显示过滤器会很有帮助。

1) 捕获过滤器

启动Wireshark后,在本机接口列表页面可以看到捕获过滤器(Capture Filter)。图示如下:

iOS Wireshark抓包

在蓝色框内的过滤器输入框中,可以输入一些规则,来指明Wireshark只捕捉符合该规则的数据包。过滤规则示例如下:

// 只捕获HTTP/HTTPS数据
port 80 or port 443

// 只捕获制定host的数据
host 192.168.10.1
复制代码

2) 显示过滤器

显示过滤器(Display Filter)在抓包界面的 工具 栏底部(上面有介绍)。输入一些规则,可以从数据包列表栏过滤掉不符合该规则的数据包,当去掉规则时,被过滤掉的数据包会重新显示出来。过滤规则示例如下:

// 只显示TCP/UDP数据
tcp || udp

// 只显示HTTP/HTTPS数据
tcp.port == 80 || tcp.port == 443

// 只显示指定host的数据
ip.addr == 192.168.10.1

// 只显示指定端口的数据
tcp.port == 52360 || udp.port == 36025
复制代码

Wireshark官方使用文档 可以查看更多的过滤规则示例。

小编微信:可加并拉入《QiShare技术交流群》。

iOS Wireshark抓包

关注我们的途径有:

QiShare(简书)

QiShare(掘金)

QiShare(知乎)

QiShare(GitHub)

QiShare(CocoaChina)

QiShare(StackOverflow)

QiShare(微信公众号)


以上所述就是小编给大家介绍的《iOS Wireshark抓包》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Where Wizards Stay Up Late

Where Wizards Stay Up Late

Katie Hafner / Simon & Schuster / 1998-1-21 / USD 16.00

Twenty five years ago, it didn't exist. Today, twenty million people worldwide are surfing the Net. "Where Wizards Stay Up Late" is the exciting story of the pioneers responsible for creating the most......一起来看看 《Where Wizards Stay Up Late》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具