原文地址为: 在iOS设备上进行抓包(补充)

之前我一般是通过wifi连入我的iMac,然后使用HttpScoop或者Charles来进行数据抓取及分析。前者非常好用,在调协议时我的必备工具,就是更新太慢,2.0版本老不出来。后者没用过,听说是java的。而且价格也太贵,前者15美刀,后者50美刀。

Wireshark有装,但是界面实在让人提不起来胃口使用,所以装了就删除了。 HttpScoop虽然好用,但是只适用于http协议,对于socket通讯无能为力。

今天在RESOW看到这篇文章,介绍利用XCode内置工具即可实现对所有类型的数据包进行抓取、查看。

(以下内容转载自RESOW)

可能出于各种需要,你需要在iOS上抓取数据包,比如查看一下安装的软件是否私自上传了什么东西,或者研究一下如何实现某些功能等等。

关于iOS上抓包目前有很多方法,可以看Apple Technical Q&A 1176,里面介绍的内容很全面,有工具的介绍和几种支持方法的具体做法。

不过QA所述没有包含完整的流程,缺失了一些步骤;另外网络上常用的方法是通过HTTP Proxy方式抓包,这种方式的缺点是无法抓取EDGE/3G的数据包,如果WIFI无法设置代理那么这种方式也就没有办法了。

下面要介绍的方式就解决了这个问题。

需求:iOS系统要求5.0以上,拥有Mac OS 并且安装XCode

Apple在iOS5.0以上增加了RVI(Remote Virtual Interface),打开它非常简单,只需要把iOS设备通过usb连接到Mac上,然后打开“终端”,输入

rvictl -s [Your Device's UDID]   

然后在终端上会显示

Starting device ********** [SUCCEEDED]

字样

如果这一步产生了什么错误的话,可能是没有安装XCode或者UDID输入错误

接下来在终端可以使用

ifconfig -l

查看当前Mac上的接口,比如(不同Mac可能会有差异):

lo0 gif0 en0 en1 fw0 rvi0

其中rvi0就是Remote Virtual Interface,这也就意味着在你的Mac上虚拟了一个iOS设备接口,接下来就是通过tcpdump抓取这个接口上的数据包

 sudo tcpdump -i rvi0 -n -s 0 -w dump.pcap tcp

解释一下上面重要参数的含义:

  • -i rvi0 选择需要抓取的接口为rvi0(远程虚拟接口)
  • -s 0 抓取全部数据包
  • -w dump.pcap 设置保存的文件名称
  • tcp 只抓取tcp包

当tcpdump运行之后,你可以在iOS设备上开始浏览你想抓取的App,期间产生的数据包均会保存到dump.pcap文件中,当想结束抓取时直接终止tcpdump即可

接下来就是需要处理抓取的数据,目前通过tcpdump保存的dump.pcap保存的是原始数据,但是一些常用的抓包软件(比如Chales)是解析不了的,所以需要做一个转换。

打开终端,我们需要使用tcprewrite这款工具,如果没有安装的话,可以通过HomeBrew快速安装

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=dump.pcap –outfile=dumpFinal.pcap

如果没有报错就说明转换成功,之后使用Chales打开dumpFinal.pcap就可以查看到刚才的数据包了。

----------------最近在 这里看到一篇相似题材的文章。前面介绍的方案大致相同,后面倒是介绍了一下,使用HAR来查看http包。也收录在这里做为补充吧。
转载请注明本文地址: 在iOS设备上进行抓包(补充)

在iOS设备上进行抓包(补充)相关推荐

  1. ios mac使用mitmproxy抓包

    记一次ios mac使用mitmproxy抓包 官网: https://mitmproxy.org/ mac安装mitmproxy brew install mitmproxy ios和mac处同一个 ...

  2. 如何在 Android 手机上实现抓包?

    如何在 Android 手机上实现抓包? http://www.zhihu.com/question/20467503 我想知道某个应用究竟在数据提交到哪里,提交了什么. 网上的教程太复杂,不想麻烦. ...

  3. 如何在Windows系统上用抓包软件Wireshark截获iPhone等网络通讯数据

    http://www.jb51.net/os/windows/189090.html 今天给大家介绍一种如何在Windows操作系统上使用著名的抓包工具软件Wireshark来截获iPhone.iPa ...

  4. iOS通过RVI工具抓包

    1. 在Mac上创建RVI接口 $ rvictl -s <UDID> #UDID为iOS设备的uuid RVI虚拟接口的命令规则可为rvi0,rvi1,...,创建后可以使用以下命令查看是 ...

  5. 使用tcpdump在iphone手机上的抓包流程和原理概述

    在ios应用开发过程中,为了进行端到端的分析,很多时候我们需要对手机的抓包进行分析. 对手机的抓包我们要在手机上安装抓包工具:tcpdump 前提:手机越狱:安装tcpdump    这样一部ipho ...

  6. 不通过AppStore,在iOS设备上直接安装应用程序的原理

    本文转载至  http://mobile.51cto.com/hot-439095.htm 通过itms-services协议,可以通过safari浏览器直接在iOS设备上安装应用程序.利用这种方式, ...

  7. 神器面世:让你快速在 iOS 设备上安装 Windows、Linux 等操作系统!

    今天我想跟大家分享下,最近连续几天,持续霸榜 GitHub Trending 的一款开源神器:UTM. https://github.com/utmapp/UTM/ 相信在座的各位,多多少少都有过给电 ...

  8. 使用 Xcode 在越狱 iOS 设备上进行开发调试

    1 目的 2 iOS 设备的设置 3 生成私有签名 4 设置 Xcode 4.1 告诉 Xcode 不需要签名 4.2 告诉 Xcode 不用做签发动作 4.3 指示 Xcode 使用私有签名签发 A ...

  9. 在Android和iOS设备上调用C++代码

    不少Android和iOS项目中,因为种种原因不得不调用C/C++代码.这篇文章主要讲述如何通过Objective-C++.NDK技术在iOS及Android设备上调用C/C++代码. 主要工作原理 ...

  10. Android设备的网络抓包

    Android设备的网络抓包 背景 比如产品有4G和以太网,我们在调试的时候可能相知道看网络是走4G还是以太网,需要通过抓包来确定 2.抓包方案 2.1   采用集线器 此方案可以对比分析多台设备之间 ...

最新文章

  1. SharePoint【调试,诊错系列】-- 一种调试Sharepoint2010 Solution的快捷方式
  2. Linux学习之路4——文件IO打开、创建、读写操作
  3. mac平台反编译apk,获取源码,androidmanifest和资源文件
  4. 2010年8月和9月成果
  5. linux postgres用户,关于linux:在启动时创建postgres用户
  6. 请交一个关于域的问题
  7. go 原子操作 atomic的使用
  8. 基于物理的渲染-用真实的环境光照亮物体
  9. react navtagion api
  10. web-attack 1-5视频汇总
  11. win10运行YOLOv4+OPENCV+VS2017
  12. (转)采访 | ETHNews 对 Vitalik Buterin 的独家专访
  13. 正则去除汉字和只取数字
  14. python透明图片合并_Python用OpenCV合并图片,添加透明部分
  15. Fireball真相:一个菜鸟级流氓软件竟让老外如临大敌
  16. Servlet入门到入坟 一站式基础及进阶——SpringMVC没它都不行 你确定不来看看——囊括初学基础以及进阶
  17. 虚拟机服务器磁盘扩容步骤,vmware ESXi 虚拟机扩容磁盘空间
  18. 0xc000007b应用程序无法正常启动解决方案(亲测有效)
  19. 基于深度学习的医学图像分割学习笔记(九)UNet 3+
  20. matlab用抛物线族表示马鞍面,matlab画马鞍面

热门文章

  1. 汽车电器设备与维修【1】
  2. Codeforces 581A - Vasya the Hipster 题解
  3. mysql中chr_ASCII码对应表chr(9)、chr(10)、chr(13)、chr(32)、chr(34)、chr(39)
  4. matlab rand 2 3 4,matlab随机函数rand的使用
  5. 根据显卡版本升级更新cuda
  6. Jmail的使用方法
  7. python创建一个列表、用于存储同学姓名_python学习日记04,Python
  8. android 话费充值代码,调用手机话费充值API的SDK编写思路
  9. Cut the Cake!题解
  10. linux基础软件安装教程