通过WireShark抓取iOS联网数据

来源:互联网 发布:pid算法的c语言实现 编辑:程序博客网 时间:2024/06/05 16:02

如何通过WireShark抓取iOS中应用的通信数据,可以参考下文。

在此作下补充:

使用网线连Mac的情况下,可以直接打开网络共享,共享出Wifi信号,然后用iOS设备连接此Wifi。则可以直接在WireShark中看到iOS设备中的通信数据(Android设备也一样)。对于没有Airport的比较旧的Mac来说,此方法方便多了。



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

我在另外一篇博客里,介绍了一款比Wireshark更轻量、更好用的软件:Charles:

http://blog.csdn.net/lixing333/article/details/42776187

今天闲的没事干,想试着分析iOS应用的网络数据传输方式。以前就曾经想过这么做,但是由于无法得到iPhone的联网数据,一直没成功。今天尝试了一下,没想到居然比较顺利。

我的工具:Mac电脑一台(PC也行),Wireshark抓包工具,iPod Touch一台,网线一根。

步骤:首先配置电脑,让iPhone能够通过电脑联网,这样iPhone就通过电脑传输数据,就能抓到数据了。具体方法:http://www.cnblogs.com/ydhliphonedev/archive/2011/10/27/2226935.html。只要进行第一种方法的1、3两步就可以了,不需要用paros,我用的是Wireshark。用PC的自己配置。推荐使用ApWifi。

配置好之后,打开Wireshark,准备抓包。这里我要分析的是新浪出的《育儿专家问答》应用。

在开始之前,最好将所有可能联网的应用全部关掉,以免数据被淹没。在Wireshark里选择Capture-Interfaces,然后在网卡列表里选择最活跃的,一般是en0,然后选择start。

这时Wireshark里会出现许许多多的数据,如下图,


这时我点击《育儿专家问答》里的一些按钮,使它发送和接收请求。

由上图可以看出,网络连接的数据非常杂乱,这时我们要将不需要的包过滤掉,只留下有用的。

由常识,我们知道一般网络请求和接收的数据包都是http格式的,于是在Filter中输入http,然后点击Apply。 这时再随便点击几下应用里的按钮,让它发出网络请求,可以发现,网络传输包中增加了几条请求:


很明显,这几条黑色的包和它们下面的包,就是应用的请求和服务器的回应了。我们点击其中一条请求,看看它的请求格式:


看到没有?Full Request URI,就是请求的网址。双击它,在浏览器中打开,可以看到是一条json数据,哈哈,初步成功!



下面的工作其实基本上就差不多了,找到各种数据的请求地址,找到它们的规律。下面的细节工作我就不继续做了。如果http数据还是很多,不足以过滤到想要的数据,可以在Filter中增加IP地址过滤:http and ip.dst==202.205.3.**,这样找到的数据就更精准了。至于通信ip到底是什么,就需要仔细发现了。

另外,这里得到的http请求是get请求,所以直接打开就可以了。如果是post请求的话,还需要仔细查看post出去的数据是什么格式的。

总结一下基本方法:让iPhone通过笔记本联网,然后使用Wireshark抓包,通过过滤器过滤抓到的包,找到请求地址,分析请求格式。

From: http://blog.csdn.net/lixing333/article/details/7782539


0 0