Charles-抓包工具的使用

Charles是一个常用的HTTP/HTTPS抓包工具,这在抓取PC端、移动端APP、M端的web请求时非常实用,当然更多地用来抓取移动端APP中的web请求,因为PC端完全可以在浏览器F12来跟踪网页的请求。
如果想抓取UDP/TCP请求,Charles这个工具并不适合,不过可以使用Wireshark这个网络协议分析工具,当然前提是需要对计算机网络有一定了解,否则看到网络请求一定会眼花缭乱,一个TCP请求要3个握手的记录,请求中如果数据量大则会涉及到有更多的分组(Package)传输记录,能搞懂确实需要一定的网络基础和耐心。
好了废话不多说,接下来梳理下Charles的基本使用:抓取APP中HTTP/HTTPS请求的设置,同时也给自己做个备忘

  1. 下载Charles,直接从官网下载即可,如果初学可以下载免费的体验版,唯一的缺点是每30分钟后会自动关闭,如果介意的话,购买是最好的解决方案。

  2. 关掉PC端的代理,否则会干扰你对APP端请求的分析。
    首行菜单–>Proxy–>Windows Proxy,勾掉即可,注意是勾掉。
    Charles-抓包工具的使用

  3. 启动HTTP代理
    首行菜单–>Proxy–>Proxy Setting,端口号就默认为8888即可,并且勾上Enable transparent HTTP proxying,启用HTTP代理功能即可。就这么简单。不过这在很多情况下并不能满足我们的需要,因为很多网站为了安全性考虑,都已启用了HTTPS服务,这样的话我们通过Charles代理依然无法访问这些网站,当然也抓不到这些请求了。接下来设置下HTTPS请求即可。
    Charles-抓包工具的使用

  4. 启动HTTPS请求
    首行菜单–> Proxy --> SSL Proxying Settings,跟HTTP代理设置一样,勾上Enable SSL Proxy,启动HTTPS的SSL的证书即可,端口默认为443
    Charles-抓包工具的使用

  5. 查看代理的IP地址,以便在移动APP端设置此代理IP
    首行菜单 --> Help --> Local IP Address,这里记下实际联网对应的IP,因为我本地装有虚拟机所以显示多个IP,但实际上是通过无线上的网,所以就是第一个IP了。好了,有了这个IP,接下来打开手机吧
    Charles-抓包工具的使用

  6. 手机中设置代理的IP地址
    设置 --> WLAN --> 选中你联网的WIFI名称,修改网络设置,勾选上“高级属性”,填入WIFI密码和代理服务器IP及端口号,保存即可。好了,已经成功一半了,这是你会发现Charles中已经有APP端的请求了,当然这些就是默认运行的APP的请求。
    但此时你通过手机浏览器打开百度,发现还是不行,因为人家是HTTPS协议,所以接下来安装SSL证书吧。
    Charles-抓包工具的使用

  7. 安装SSL证书

  • 7.1 PC端安装SSL证书,首行菜单 --> Help --> SSL Proxying --> Install Charles Root Certificate ,在弹出框里安装,采用默认设置即可。
  • 7.2 移动APP端安装SSL证书,首行菜单 --> Help --> SSL Proxying --> Install Charles Root Certification on a Mobile Device or Remote Browser,记下弹出框里的地址:chls.pro/ssl,手机浏览器访问即可下载安装。安装成功后就可以 do what you want to do 了。。。
    Charles-抓包工具的使用Charles-抓包工具的使用
  1. 不过鉴于有些手机安全策略较高,在移动APP端下载完SSL证书后,并不会主动安装,并且在浏览器的下载管理里也没法安装,此时需要另一种办法:
    手机设置–> WLAN设置 --> 安装证书,找到下载的SSL证书,进行安装即可。

OVER