写点什么

手把手教你用 Charles 抓包

作者:AntDream
  • 2024-06-26
    浙江
  • 本文字数:1293 字

    阅读完需:约 4 分钟

手把手教你用Charles抓包

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点


日常开发过程中难免要进行抓包,查看服务端返回的数据是否正常,而 Charles 可谓是抓包利器了。


下载安装地址:https://www.charlesproxy.com/

原理浅析

配置好以后,Charles 实际上让电脑成了一个中间代理服务器,我们手机上的所有请求都会经过电脑,被 Charles 拦截,然后 Charles 把自己伪装成手机向我们的远程服务器地址发送请求,所以 Charles 能记录我们发送的请求信息;


而等服务端响应请求时,实际上是响应了 Charles 的请求,Charles 获得服务端的请求以后,又转发给我们的手机,所以 Chaerles 能获得服务端响应的详细信息。

使用 Charles

普通 http 抓包

安装好 Charles 后启动,我们就能看到很多的请求信息了,因为 Charles 启动的时候默认是抓取 Mac 的所有网络请求的:



如果要关掉,可以在顶部菜单栏Proxy-->macProxy勾选去掉


那我们要抓手机应用的网络请求呢?


首先我们需要让手机的所有网络请求都经过装有 Charles 的 Mac 电脑,要达到这个效果只需要给手机的网络设置一个代理,代理 IP 就是 Mac 的 IP,代理的端口就是 Charles 中设置的端口


贴心的是,Charles 还提供了查询本机 IP 的工具:顶部菜单help-->Local IP Address,就能很方便的获取本机的 IP 地址



拿到电脑的 IP 地址以后,我们还需要知道代理的端口,Charles 默认的端口是8888,这个也可以查看和设置。打开顶部菜单Proxy-->Proxy Setting



接下去就是设置手机的网络代理了,设置方式也很简单。


  • 打开手机当前连接的 WI-FI 详情页,可以找到一个代理的选项

  • 然后选择手动,就会出现主机名端口的选项,分别填入上面查到的 IP 地址和端口号保存即可

  • 这时电脑端的 Charles 就会弹出一个提示,大意是选择是否监听抓包之类的,选择Allow即可


记过以上简单几步,charles 就能抓手机的包了。

Https 抓包

现在很多了网页链接都是 Https 的了,而上面的设置只能抓 Http 的请求。要想抓 Https 请求,我们还需要几步设置才行。


Https 的一个特点是请求时会校验证书,而从文章开头我们简单介绍的 charles 的原理中我们也能大概知道,只需要在 Http 抓包的基础上增加一个 Https 的证书就可以实现 Https 抓包了。这个 Https 证书包括 2 个:


  • 一个是 Charles 本身需要配置一个 Https 证书,这样 Charles 才能和服务端正常的通信

  • 再一个就是手机端的 Https 证书了,这样手机才能和 Charles 正常通信

  • 实际上,相当于 Charles 从普通的 Http 代理服务器变成了 Https 服务器

(1)Charles 安装 Https 证书

首先打开顶部 Charles 菜单:Help-->SSL Proxying,可以看到有很多选项


  • 选择Install Charles Root Certificate,也就是安装 Charles 的根证书

  • 在打开的钥匙串里面,选择Charles Proxy CA,双击打开,选择始终信任即可


(2)手机安装 Https 证书

还是上面的同一个菜单入口,这次就要根据手机不同选择不同了



选择对应手机型号以后,就会出现一个提示框,里面有下载证书的地址http://chls.pro/ssl,手机上打开对应的链接即可下载安装

(3)Charles 设置

手机安装好证书以后,打开 Charles 的菜单:Proxy-->SSL Proxying Settings



经过以上几步,Charles 就可以进行 Https 抓包啦!

其他

使用完 Charles 以后,手机上记得把代理去掉,不然手机就没办法上网了哦


发布于: 刚刚阅读数: 4
用户头像

AntDream

关注

AntDream,欢迎一起交流学习 2024-06-07 加入

专注移动端,偶尔搞点别的,哈哈

评论

发布
暂无评论
手把手教你用Charles抓包_网络_AntDream_InfoQ写作社区