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

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

步骤:首先配置电脑,让iPhone能够通过电脑联网,这样iPhone就通过电脑传输数据,就能抓到数据了。只要进行第一种方法的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抓包,通过过滤器过滤抓到的包,找到请求地址,分析请求格式。over!

 


 

不管是iPhone的iOS还是Android系统上开发的应用App基本上都会需要使用网络通讯来传输数据。开发者有的时候可能会需要通过抓包的方式来了解应用具体在传输些什么数据,以及数据是否正确。今天给大家介绍一种如何在Windows操作系统上使用著名的抓包工具软件Wireshark来截获iPhone、iPad等iOS设备或Android设备的网络通讯数据的方法。

首先先认识下什么是Wireshark:Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。 - [来自:百度百科]。

要捕获iPhone传输的数据我们不能直接在iPhone上进行。所以我的想法是在Windows上安装一个Wireshark抓包软件,同时这台电脑有一张无线网卡。然后我将这台Windows电脑的无线网卡设置成为一个无线路由器,然后用iPhone连接上这个虚拟的无线路由器。这样所有iPhone传输的数据都会到我们Windows电脑的这张无线网卡,之后我们就可以用Wireshark来抓包获取这张无线网卡的所有网络数据,其中就包括我们的iPhone的网络通讯数据了。通过我的实际测试,这个想法是完全可行的。在这里我们需要使用到两个软件,一个是上面提到的Wireshark,另外一个是能够将电脑的无线网卡变身为共享无线路由器的Connectify Hotspot软件。

首先下载安装Wireshark [下载地址]和Connectify Hotspot [下载地址]。

安装Connectify Hotspot和Wireshark

下载完成后,直接双击安装Connectify Hotspot,安装过程中会需要重新启动一次。重启后在屏幕的右边就会弹出Connectify Hotspot的窗口了。先把Connectify Hotspot放在一边,把Wireshark安装上。

设置Connectify Hotspot为无线路由器

打开右下角的Connectify Hotspot窗口,设置Password,等下在iPhone上我们要用此密码验证。第二个Internet to Share要选择Windows电脑的无线网卡,我这里直接显示的是Wi-Fi。然后Share Over同样选择Wi-Fi。下面一项是加密方式,这跟设置无线路由器的加密方式一样。这里使用默认的WPA2。然后点击Start Hotspot按钮就可以将这台Windows电脑的无线网卡变身成一个无线路由器了。如下图:

iPhone连接Connectify Hotspot

Connectify Hotspot成功运行后,打开iPhone手机,进入设置 - 无线局域网。这里就会看到一个新的无线网络,如图名为Connectify-me。点击它,然后输入我们在Connectify Hotspot上设置的密码就可以连接了。如下图:

连接成功后可以在iPhone上打开浏览器试着打开一个网页,看能否打开。如果能够打开,就说明成功了。

用Wireshark抓包获取iPhone网络通讯数据

下面就可以开始工作了。运行Wireshark,在窗口上点击Interface List,看哪张网卡正在发送和接受数据包的,从Packets那一项可以看出。点击网卡前面的选择框选中,然后点Start按钮开始抓包。如下图:

现在你就可以在iPhone上运行各种网络应用了,只要他们有网络通讯传输任何数据,Wireshark都可以截获到这些数据。比如下图就是我用iPhone的浏览器Safari访问了一下Connectify的网站,Wireshark抓到的HTTP包。我使用了http过滤器,只显示了所有的HTTP包。

希望本文对需要抓包分析应用传输的网络数据的iPhone和Android开发的朋友有所帮助。