在iOS设备上进行抓包(补充)
原文地址为: 在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设备上进行抓包(补充)相关推荐
- ios mac使用mitmproxy抓包
记一次ios mac使用mitmproxy抓包 官网: https://mitmproxy.org/ mac安装mitmproxy brew install mitmproxy ios和mac处同一个 ...
- 如何在 Android 手机上实现抓包?
如何在 Android 手机上实现抓包? http://www.zhihu.com/question/20467503 我想知道某个应用究竟在数据提交到哪里,提交了什么. 网上的教程太复杂,不想麻烦. ...
- 如何在Windows系统上用抓包软件Wireshark截获iPhone等网络通讯数据
http://www.jb51.net/os/windows/189090.html 今天给大家介绍一种如何在Windows操作系统上使用著名的抓包工具软件Wireshark来截获iPhone.iPa ...
- iOS通过RVI工具抓包
1. 在Mac上创建RVI接口 $ rvictl -s <UDID> #UDID为iOS设备的uuid RVI虚拟接口的命令规则可为rvi0,rvi1,...,创建后可以使用以下命令查看是 ...
- 使用tcpdump在iphone手机上的抓包流程和原理概述
在ios应用开发过程中,为了进行端到端的分析,很多时候我们需要对手机的抓包进行分析. 对手机的抓包我们要在手机上安装抓包工具:tcpdump 前提:手机越狱:安装tcpdump 这样一部ipho ...
- 不通过AppStore,在iOS设备上直接安装应用程序的原理
本文转载至 http://mobile.51cto.com/hot-439095.htm 通过itms-services协议,可以通过safari浏览器直接在iOS设备上安装应用程序.利用这种方式, ...
- 神器面世:让你快速在 iOS 设备上安装 Windows、Linux 等操作系统!
今天我想跟大家分享下,最近连续几天,持续霸榜 GitHub Trending 的一款开源神器:UTM. https://github.com/utmapp/UTM/ 相信在座的各位,多多少少都有过给电 ...
- 使用 Xcode 在越狱 iOS 设备上进行开发调试
1 目的 2 iOS 设备的设置 3 生成私有签名 4 设置 Xcode 4.1 告诉 Xcode 不需要签名 4.2 告诉 Xcode 不用做签发动作 4.3 指示 Xcode 使用私有签名签发 A ...
- 在Android和iOS设备上调用C++代码
不少Android和iOS项目中,因为种种原因不得不调用C/C++代码.这篇文章主要讲述如何通过Objective-C++.NDK技术在iOS及Android设备上调用C/C++代码. 主要工作原理 ...
- Android设备的网络抓包
Android设备的网络抓包 背景 比如产品有4G和以太网,我们在调试的时候可能相知道看网络是走4G还是以太网,需要通过抓包来确定 2.抓包方案 2.1 采用集线器 此方案可以对比分析多台设备之间 ...
最新文章
- SharePoint【调试,诊错系列】-- 一种调试Sharepoint2010 Solution的快捷方式
- Linux学习之路4——文件IO打开、创建、读写操作
- mac平台反编译apk,获取源码,androidmanifest和资源文件
- 2010年8月和9月成果
- linux postgres用户,关于linux:在启动时创建postgres用户
- 请交一个关于域的问题
- go 原子操作 atomic的使用
- 基于物理的渲染-用真实的环境光照亮物体
- react navtagion api
- web-attack 1-5视频汇总
- win10运行YOLOv4+OPENCV+VS2017
- (转)采访 | ETHNews 对 Vitalik Buterin 的独家专访
- 正则去除汉字和只取数字
- python透明图片合并_Python用OpenCV合并图片,添加透明部分
- Fireball真相:一个菜鸟级流氓软件竟让老外如临大敌
- Servlet入门到入坟 一站式基础及进阶——SpringMVC没它都不行 你确定不来看看——囊括初学基础以及进阶
- 虚拟机服务器磁盘扩容步骤,vmware ESXi 虚拟机扩容磁盘空间
- 0xc000007b应用程序无法正常启动解决方案(亲测有效)
- 基于深度学习的医学图像分割学习笔记(九)UNet 3+
- matlab用抛物线族表示马鞍面,matlab画马鞍面
热门文章
- 汽车电器设备与维修【1】
- Codeforces 581A - Vasya the Hipster 题解
- mysql中chr_ASCII码对应表chr(9)、chr(10)、chr(13)、chr(32)、chr(34)、chr(39)
- matlab rand 2 3 4,matlab随机函数rand的使用
- 根据显卡版本升级更新cuda
- Jmail的使用方法
- python创建一个列表、用于存储同学姓名_python学习日记04,Python
- android 话费充值代码,调用手机话费充值API的SDK编写思路
- Cut the Cake!题解
- linux基础软件安装教程