搭建手机抓包环境

题图:by ourclickdays from Instagram

智能手机的普及,这使得移动互联网成为另一个流量巨头。越来越多的公司也会转而直接提供 App 来展示内容。例如以及其生态(公众号、小程序)、抖音等。这也说明人们对于手机的依赖心更强。那抓取 App 的数据显得更加有意义。本文的主要内容是讲述如何搭建手机抓包环境。

1 工具准备

1)一台电脑最好是笔记本电脑,因为笔记本电脑内置了无限网卡。如果你使用的台式电脑,你需要自己购买无线网卡。可以不需要购买专业的抓包网卡, 购买那些 USB 迷你无线网卡就满足使用要求。如果你不清楚买什么网卡,可以选择小米随身 WIFI。

2)一台手机

3)抓包软件常用的抓包软件有 WireShark、Fiddler、Charles、miniproxy 等。我这里使用 Fiddler 作为实例进行讲解,他们抓包的原理基本相同。看个人喜欢选择抓包软件即可。

4)软 AP 软件现在市面上有很多结合网卡能创建出软AP(Soft-AP)软件。常见的软件有:猎豹免费 WIFI、360 免费 WIFI、WIFI 共享精灵。

2 原理分析

1)对手机 App 进行抓包,究竟抓取什么内容?手机 App 离不开跟服务器交互。它们之间通过 HTTP/HTTPS 协议建立链接,然后大多数以 JSON 格式传输数据。对 App 抓包,抓的也是 HTTP/HTTPS 的包。

2)抓包软件原理是什么?抓包软件可以看成一个代理服务器,所有数据包都经过这个代理服务器转发。在转发过程中,代理服务器会把这些数据拦截下来。这就是我们看到的“抓包”。

3)是否需要用到软 AP 软件?这个跟你的网络有点关系。如果你的电脑和手机处于同一网段,那么就不需要使用软 AP 创建个 WIFI 网络。如果不在同一网段,就需要用到软 AP 软件。最常见的场景应该是:电脑使用的有线网络,手机使用的是无线网络。这两个设备很有可能不在同一网段。

4) 如果判断两个设备是否位于同一网段?网段是 IP 地址分类的概念。我们现在使用的 IP 地址还是 IPv4。一个 IP 地址大概长这个样子:192.168.1.110。一般情况下,如果两个设备的 IP 地址前三位都是一样的话,就算是位于同一网段。我的电脑的 IP 地址是:

我的手机的 IP 地址是:上面两张图说明位于同一网段。如果两个设备不在同一网段,使用电脑开启个软 AP,然后将手机连接到这个 WIFI 网络。这样他们就处于同一网段了。

3 搭建环境

接下来,我按照两个设备不在同一网段的情况进行讲解。因为这种情况遇到的机率非常高。

首先,先下载猎豹免费 WIFI。安装成功之后,开启 WIFI, 并让手机连接到刚才创建的 WIFI。

然后到 Fiddler 的官网下载安装包。Fiddler 官网毕竟是国外网站,访问有时候很慢。如果下载不下来,可以到国内的软件商城下载。安装成功,打开 Fiddler 软件,我们会看到以下界面。左边是抓取到的数据包,右边是数据包分析界面。

接着将“是否允许远程设备连”选项开启。Tools -> Fiddler Options -> Connections,勾选"Allow remote computers to connect"。

另外,我们可以看到 Fildder 监听着的 8888 端口号。这个是手机设置代理的端口号。在手机的连接的 WIFI 的设置中配置代理。代理 IP 地址是电脑的 IP 地址,端口就是刚才设定的 8888 端口。这里要注意的是,要先确保电脑和手机处于同一网段。

我们使用软 AP 创建 WIFI,这保证电脑和手机处于同一网络。IP 地址要重新查看一遍。

再将刚才的获取的 IP 地址和端口填写到 WIFI 的代理配置中。

现在谷歌和苹果都强推使用 HTTPS 协议,所以我们也要配置下抓取 HTTPS 的包。

最后,用手机浏览器访问代理服务器地址安装证书。根据上图,我访问的是 192.168.192.2:8888, 浏览器会提示是否安装证书。安装成功之后,即可对手机 App 进行抓包。

推荐阅读:

分享一个爬取网站的小技巧

这些抓包工具,你值得拥有

为什么说 TCP 协议是可靠的?

Python 爬虫入门

END

不积跬步,无以至千里

如果你觉得文章还不错,请大家点赞分享下。

你的肯定是我最大的鼓励和支持。