在 Mac 上使用 Charles 抓包

0x00 前言

在 Windows 平台上,抓包工具有 Fiddler,但是不能在 MacOSX 上使用,好在我们还有另外一个抓包神器:Charles,而且是用 Java 编写的,所以是跨平台的,可能对有些人来说有一个缺点,那就是 Charles 是收费的,不过不要着急,下面会提供破解方法。

0x01 安装与破解

Charles 既然是 Java 编写的,那么破解起来就挺容易的,不愿意购买的可以点击这里查看破解教程,不过,购买的话是最好的,毕竟做开发的都不容易,支持正版,用起来也是非常舒心的。
安装就不多说了,很简单,只要安装了 JDK 就能运行,打开之后会弹出提示框,选择 Allow,然后界面大概就是这样子的:

一打开就开始抓包了,这些抓到的都是 Mac 端的包,可以看到,HTTP 和 HTTPS 都已经被抓到了。

0x02 移动端抓包

手机与 Mac 端必须在同一个路由器下才能实现抓包,先查看电脑的 IP:

这里以 iPhone 为例,手机连接好 Wifi 之后,打开 Settings(设置) -> Wi-Fi ,点击你连接的 Wi-Fi 的最右边的查看信息按钮进入详情界面,选择最下面的 Manual(手动)Server(服务器) 填 Mac 端的 IP, Port(端口)8888 就行了:

如果手机上有网络请求发生,Charles 会弹出提示,我们选择 Allow就可以了,然后在手机上打开要抓包的 App,进行网络操作,比如,这里我就打开《一个》:

Charles 就会帮我们抓到包,通过查看网络地址,可以找到对我们真正有用的信息,因为我在 Instagram 上有关注韩寒,微博上也是,所以我对 wufazhuce 很眼熟,所以我就能判断这个应该是获取信息的地址:

展开之后,可以看到 Request 如下:

Response 如下:

想要知道请求的链接,我们可以选择右边的 Overview

我们可以将地址复制到浏览器中查看是否可以使用:

非常好!HTTP 抓包就是这样了。
还有非常重要的一点,手机的 Wi-Fi 设置需要改回来,改成原来的 Off(关闭),不然 Mac 端关闭 Charles 之后,手机端会无法访问网络。