tcpdump iOS iphone 手机 抓包 流量分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tcpdump iOS iphone 手机 抓包 流量分析相关的知识,希望对你有一定的参考价值。

参考技术A 一、创建远程虚拟接口Remote Virtual Interface (RVI)

ios上抓包的方法主要有:

1. Wifi共享,然后通过fiddler、charles等可视化抓包工具。可以设置mac进行wifi共享,或者使用360随身wifi等工具;

2. 设置wifi的HTTP代理,然后通过可视化抓包工具;

3. RVI方法;下面就介绍RVI方法,该方法适用于iOS5.0以上设备,需要mac并且安装Xcode。

1)将iOS设备通过USB连接到Mac上;

2)通过itunes获取iOS设备的UDID;

3)打开终端terminal,建立RVI

$ # First get the current list of interfaces.

$ ifconfig -l

lo0 gif0 stf0 en0 en1 p2p0 fw0 ppp0 utun0

$ # Then run the tool with the UDID of the device.

$ rvictl -s 74bd53c647548234ddcef0ee3abee616005051ed

Starting device 74bd53c647548234ddcef0ee3abee616005051ed [SUCCEEDED]

$ # Get the list of interfaces again, and you can see the new virtual

$ # network interface, rvi0, added by the previous command.

$ ifconfig -l

lo0 gif0 stf0 en0 en1 p2p0 fw0 ppp0 utun0 rvi0

rvi0就是Remote Virtual Interface,这也就意味着在你的Mac上虚拟了一个iOS设备接口rvi0.

二、通过tcpdump抓包

1. 运行tcpdump

sudo tcpdump -i rvi0  -w dump.pcap

参量的意义:-i rvi0 选择需要抓取的接口为rvi0(远程虚拟接口);-w dump.pcap 设置保存的文件名称;

2. 在iOS app上进行操作;

3. 结束操作之后,在terminal中ctrl+c终止tcpdump;

4. 这个时候可以删除RVI:

rvictl -x 74bd53c647548234ddcef0ee3abee616005051ed

三、处理tcpdump的抓包数据

1. 使用tcprewrite将tcpdump抓包后的数据转换为可视化抓包工具可以解析的数据

1)通过HomeBrew安装tcprewrite

brew install tcpreplay

2)将原始数据包转换为以太网数据包

Tcprewrite重写第二层以太网层:

tcprewrite --dlt=enet --enet-dmac=00:11:22:33:44:55 --enet-smac=66:77:88:99:AA:BB --infile=dump.pcap --outfile=dumpFileFinal.pcap

或者tcprewrite重写第四层TCP、UDP层:

tcprewrite --portmap=80:8080,22:8022 --infile=dump.pcap --outfile=dumpFileFinal.pcap

3)可视化抓包工具打开dumpFileFinal.pcap,比如charles。然后进行包分析、查看统计流量等等,或者导出为csv文件进行分析。

参考网址:

https://developer.apple.com/library/mac/qa/qa1176/_index.html#//apple_ref/doc/uid/DTS10001707-CH1-SECRVI

http://blog.manbolo.com/2013/02/22/analysing-ios-app-network-performances-on-cellularwifi

http://www.cnblogs.com/wupher/archive/2013/03/25/2980161.html

属于个人随手笔记 不理解可以加个人qq: 2963542803

iphone手机上的抓包流程和原理概述

在ios应用开发过程中,为了进行端到端的分析,很多时候我们需要对手机的抓包进行分析。

对手机的抓包我们要在手机上安装抓包工具:tcpdump

前提:手机越狱;安装tcpdump    这样一部iphone就具备了抓包能力。

方法1:手机直接抓包(在手机上安装terminal用于输入命令)

不受网络条件制约,但由于是在终端上操作抓包,对ios设备来讲,MobileTerminal切至后台就不再工作,因此该抓包方法可行性较低,尽管如此,MobileTerminal对终端测试人员来说依然是一款很实用的工具;命令控推荐此方法。

方法2:通过pc/mac连接到手机(iPhoneTunnel软件,有mac和pc版本),通过在pc/mac下输入抓包命令,在手机上抓包。

pc下:用USB线缆连接终端与PC,确保手机终端正确,启动iPhoneTunnel,绿灯表示Tunnel Status正常,此时点击Launch Terminal按钮即可SSH进入终端,输入root密码,然后执行命令抓包

mac下:用USB线缆连接终端与mac,确保手机终端正确,启动iPhoneTunnel并开启后,点击tools->ssh(root) 菜单调出一个命令行界面,此时有可能报一个连接错误,输入ssh-keygen -R [127.0.0.1]:2222清除下里面的一个配置,即可正常连接。连接以后执行命令抓包,同pc。(tip:mac下终端输入密码时没有占位符,需要保证正确,注意)

WiFi下抓包tcpdump -i en0 -X -s0 -w data.pcap

2G/3G下抓包 tcpdump -i pdp_ip0 -X -s0 -w data.pcap tcpdump -X -s0 -w data.pcap  (两个都可以试下,我一般用前者)

抓包结束命令:ctl+c

敲此命令抓包的默认路径在var->root文件夹内。

总结:两个方法本质一样,都是利用tcpdump在手机上抓包,方法二通过ssh连接到手机去执行抓包命令(此时iphone充当一个server角色,pc/mac作为client连接到该server进行远程控制),因为抓到的包一般需要在pc/mac下用wireshark进行分析,所以pc/mac基本是必须的,推荐方法2。



以上是关于tcpdump iOS iphone 手机 抓包 流量分析的主要内容,如果未能解决你的问题,请参考以下文章

手机抓包后怎么修改

tcpdump手机抓包

用Tcpdump抓包

手机抓包方法

Charles抓包工具常用功能——Https抓包接口——IOS iPhone手机抓包

iOS手机流量抓包rvictl