手把手教你用Charles抓包

简介: 本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 日常开发过程中难免要进行抓包,查看服务端返回的数据是否正常,而Charles可谓是抓包利器了。

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

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

原理浅析

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

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

使用Charles

普通http抓包

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

image

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

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

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

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

image

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

image

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

  • 打开手机当前连接的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,双击打开,选择始终信任即可

image

(2)手机安装Https证书

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

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

(3)Charles设置

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

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

其他

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


                       欢迎关注我的微信公众号,和我一起每天进步一点点!

AntDream

目录
相关文章
|
关系型数据库 数据库 C语言
PostgreSQL服务端开发学习 -- Datum
在使用C语言开发PostgreSQL后端、客户端应用时,Datum无处不在,所以必须要对Datum有很清楚的了解。
|
存储 Android开发 Python
使用 MitmProxy 自动抓取微信公众号阅读数、点赞和再看数据(一)
某天接到一个需要抓取某某微信公众的所有历史文章的阅读数、点赞和再看数据的需求。 为了解放双手,就用 Python 代码撸一个,选择 MitmProxy 代理作为抓包工具,因为它可以使用 Python 代码监听抓取到的 url,用于自动获取 cookie 等场景。
2079 0
使用 MitmProxy 自动抓取微信公众号阅读数、点赞和再看数据(一)
|
11月前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
427 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
算法 UED 开发者
🚀短链(Short Link):发展动态与工具推荐🚀
短链是将冗长的URL通过特定算法压缩成简短的字符串,便于用户在社交媒体和营销活动中分享。短链不仅美化了链接,还提升了用户体验,并具有易于传播和跟踪分析的优势。本文介绍了短链的作用、发展历程,以及在goo.gl退出后,推荐的替代工具如Dub.co,帮助用户继续享受短链带来的便利与营销价值。
1340 1
🚀短链(Short Link):发展动态与工具推荐🚀
|
JavaScript 内存技术
NodeJs——nvm安装和使用
NodeJs——nvm安装和使用
382 0
NodeJs——nvm安装和使用
|
负载均衡 算法 Java
Spring Cloud Netflix 之 Ribbon
Spring Cloud Netflix Ribbon是客户端负载均衡器,用于在微服务架构中分发请求。它与RestTemplate结合,自动在服务发现(如Eureka)注册的服务之间进行调用。配置包括在pom.xml中添加依赖,设置application.yml以连接Eureka服务器,并在配置类中创建@LoadBalanced的RestTemplate。通过这种方式,当调用如`/user/userInfoList`的接口时,Ribbon会自动处理到多个可用服务实例的负载均衡。
|
缓存 负载均衡 Linux
获取真实 IP 地址(一):判断是否使用 CDN(附链接)
获取真实 IP 地址(一):判断是否使用 CDN(附链接)
|
Shell Android开发 数据安全/隐私保护
安卓逆向 -- Frida环境搭建(HOOK实例)
安卓逆向 -- Frida环境搭建(HOOK实例)
410 0
|
网络协议 数据库 C++
|
存储 前端开发 安全
Springboot+vue 前后端分离登录验证码功能
Springboot+vue 前后端分离登录验证码功能
1250 1