[转]iOS中对Socket连接抓包

前言
在平常开发中我们经常会用Charles对手机的Http/Https请求进行抓包,但Charles不支持对socket请求抓包,下面将会介绍使用Wireshark结合 rvictl 命令对手机上的Socket请求进行抓包。

  1. Wireshark
    Wireshark是类似于Charles的网络抓包工具,是开源且免费的。最新的Wireshark可以到官网下载。Wireshark官网

    安装成功后打开

  2. RVI
    RVI(Remote Virtual Interface)是iOS 5后,apple引入的新特性,只需要将iOS设备使用USB数据线连接到Mac上后,以iOS设备的UDID作为参数使用rvictl工具在Mac中建立虚拟网络接口rvi,就可以在Mac上对这个接口进行流量监听,所监听的流量包括WiFi和4G流量。


    获取设备UDID

首先将我们的设备通过USB连接到电脑上,然后在iTunes或者Xcode中查看设备的UDID。然后在终端中以刚查到的UDID作为参数,输入rvictl -s
命令建立虚拟接口。
//在终端中使用rvictl -s命令建立虚拟接口Tidus-PC-MacBook-Pro:/ Tidus$ rvictl -s UDID //创建成功 Starting device UDID [SUCCEEDED] with interface rvi0

查看已创建的接口。
//查看已创建的虚拟接口Tidus-PC-MacBook-Pro:/ Tidus$ rvictl -l Current Active Devices: [1] 1c3c4398786a88b4de07b14e505e929962e73894 with interface rvi0

最后通过下面命令停止监听。
//停止监听Tidus-PC-MacBook-Pro:/ Tidus$ rvictl -x UDID Stopping device UDID [SUCCEEDED]

  1. 监听
    建立接口成功后在Wireshark上就能看到刚创建的rvi0了,双击它开始监听。


    rvi0

并可以通过自定义捕获过滤器和显示过滤器来调整最终结果,例如下面就是定义了一个当请求的源ip或者目标ip为54.222.129.134时则过滤掉的显示过滤器。点击菜单中的分析(analyze)- > 显示过滤器打开过滤器编辑界面,新建过滤器,在右边输入:
!(ip.src == 54.222.129.134 || ip.dst == 54.222.129.134)

新建显示过滤器

保存后就能在外面点击小标签来应用我们的显示过滤器了~

显示过滤器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 在平常开发中我们经常会用Charles对手机的Http/Https请求进行抓包,但Charles不支持对so...
    Tidus阅读 14,952评论 7 52
  • 网络抓包是个基础技能,对于网络协议的掌握有一定的要求。iOS上实现网络抓包可以用Charles(针对http和ht...
    MrPeak阅读 47,346评论 5 134
  • Wireshark我使用了一段时间,才知道这是抓包神器,最全最牛逼的抓包软件。当时我之所以要学习Wireshark...
    DoubleShawn阅读 56,707评论 23 55
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,355评论 19 139
  • 度日如年年难熬,日日艰辛。 5月12号晚六点,开往南京的火车,有你,有我,还有一群顺路的陌生人。 十一个小时的火车...
    666上古小白羊阅读 1,384评论 0 2