抓包工具_Charles使用

1、Charles准备工作
  • Charles是一种抓包工具,和fiddler、mitmproxy功能差不多,既可以抓包网页的数据,也可以抓包app的数据

  • 下载Charles,一路next即可安装完成。Charles激活,将生成的激活码复制下来,在 charles 的help》Registered输入版本号和key值就可以激活
    在这里插入图片描述

  • windows证书配置:打开Charles→点击Help→SSL Proxying→Install Charles Root Certificate→进入证书安装页面→点击安装证书→选择证书存储区域→将所有的证书放入下列存储→受信任的根证书颁发机构→下一步完成导入
    在这里插入图片描述
    在这里插入图片描述

  • 设置Proxy代理: 这里proxy的端口是8888, socket的端口是8889,也可以修改其它的,则相应的app端设置也需要保持端口号一致
    在这里插入图片描述
    在这里插入图片描述

  • 配置SSL代理
    在这里插入图片描述

  • Android设置手动代理:手机和电脑端连着同一个网 > 然后电脑端打开cmd输入ipconfig查看ip > 然后手机端对当前wifi设置手动代理,代理ip即电脑的ip,端口即如上图所示的8888 > 此时电脑弹出窗口,点击Allow > 然后刷手机端的内容,电脑端就正常抓手机包了
    在这里插入图片描述

  • Android安装ssl证书:手机端浏览器进入链接https://chls.pro/ssl下载charles-proxy-ssl-proxying-certificate.pem证书 , 然后手机端安装,如果安装不了,可以将后缀名.pem改成.cer ,其中在设置>安全>加密和凭据里面>信任的凭据>需要把用户的下面的凭据移动到系统的位置(原因因为Android7以后,只信任系统证书,所以还需要将用户证书移动成系统证书,否则可能导致https抓包失败)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 这个移动上面的用户证书,这里借助Magisk的Move Certificates模块来移动证书,模块下载安装好后会重启手机,重启手机后会自动将证书移动到系统下
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 上面介绍的Android是代理的方式抓包的,这里更推荐选择设置Vpn抓包的方式来替代,此时需要依赖Postern代理工具下载Postern代理工具,第一步添加代理服务器,然后按如下设置,注意注意代理的方式抓包和vpn的设置抓包二选一,使用vpn的方式抓包,则需关掉代理的方式抓包,参考文章
    在这里插入图片描述
    然后配置规则,按如下设置
    在这里插入图片描述
    然后关闭再打开VPN,然后charles就可以正常抓包了
    在这里插入图片描述

  • 当上面的都设置好后,我们打开一个app,看charles抓包情况,https正常抓包,开心,结束
    在这里插入图片描述
    在这里插入图片描述

2、Charles抓包原理
  • osi七层参考模型了解
    在这里插入图片描述
    在这里插入图片描述
  • 首先Charles运行在自己的PC上:Charles运行的时候会在PC的8888端口开启一个代理服务,这个服务实际上是一个HTTP/HTTPS的代理
  • 确保手机和PC在同一个局域网内:我们可以使用手机模拟器(如夜神)通过虚拟网络连接,也可以使用手机真机和PC通过无线网络连接,
  • 设置手机代理为Charles的代理地址:这样手机访问互联网的数据包就会流经Charles,Charles再转发这些数据包到真实的服务器,服务器返回的数据包再由Charles转发回手机,Charles就起到中间人的作用,所有流量包都可以捕捉到,因此所有HTTP请求和响应都可以捕获到,同时Charles还有权力对请求和响应进行修改,而这一过程称为代理的方式抓包,也就是在上图的应用层,代理方式的抓包在最上层(应用层)易被检测到
  • 另一种方法:使用vpn方式抓包,运行在网络层,更加底层,可以捕获到更多的上层流量,常常借助Postern代理工具,可以将http请求转为socket(socket在会话层,也是底层一些,可以捕获到更多的上层流量),并且包转发到Charles上,这样就可以抓到更多的包
3、Charles抓包步骤
  • 以京东app为例,通过Charles抓取App运行过程中的网络数据包,然后查看具体的Request和Rseponse内容,以此来了解Charles的用法

  • (1) 初始状态,监听按钮红色显示打开,灰色是关闭;
    在这里插入图片描述

  • (2) Charles监听手机发生的网络数据包,捕获到的数据包显式在左侧,随着时间的推移,捕获到的数据包会越来越多,左侧列表内容也会越来越多;点击左侧条目,右侧显示请求的详细信息;
    在这里插入图片描述

  • (3)操作:打开手机京东,打开一个商品,查看评论,并不断上拉加载评论;这时左侧api.m.jd.com链接不停闪动,展开查看里面条目详情,切换到Contents选项卡,可以在CommentData字段里面查看到评论内容;

  • (4)操作:这时可以确定,此请求对应的接口就是获取商品评论的接口,这样我们就成功的捕获到了在上拉刷新过程中发生的请求和响应内容;
    在这里插入图片描述

4、Charles抓包分析
  • 在Overview选项卡中,显示 请求接口的URL,响应状态,以及请求方式Method,由于是POST请求,还需要切换到Contents选项卡中Form表单查看详细信息;
  • 这样我们就成功抓取App中的评论接口请求和响应,并且可以查看Response返回的JSON数据;
    在这里插入图片描述
5、Charles重发请求
  • Charles可以将捕获到的请求加以修改并发送修改后的请求。点击修改按钮可进行修改;
    在这里插入图片描述
  • 有了这个功能,我们就可以使用Charles来做调试,通过修改参数、接口等来测试不同请求的响应状态,就可以发现参数有哪些规律,最后的到最简单的接口和参数形式供程序模拟调用使用。
    在这里插入图片描述
  • 9
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Charles 是一款网络抓包工具,它可以让你查看应用程序和网站之间的通信数据,从而帮助你进行调试和分析。以下是使用 Charles 的详细步骤: 1. 下载并安装 Charles:在官方网站上下载 Charles 并按照提示进行安装。 2. 配置 Charles:打开 Charles,然后在菜单栏中选择“Proxy” -> “Proxy Settings”,在弹出的窗口中选择“HTTP”选项卡,将“Port”设置为 8888,并勾选“Enable transparent HTTP proxying”和“Enable macOS Proxy”。 3. 配置移动设备:如果你想抓取移动设备的数据包,需要将移动设备的网络代理设置为 Charles 的 IP 地址和端口号(默认为 8888)。具体方法请查看 Charles 官方文档。 4. 开始抓包:在 Charles 中点击“Record”按钮,然后使用你的应用程序或浏览器访问网站,在 Charles 中就可以看到通信数据了。 5. 查看数据:在 Charles 中可以看到所有的请求和响应数据。你可以选择任何一个请求或响应来查看其详细信息,包括请求头、响应头、请求体和响应体等。 6. 修改数据:如果你需要修改某个请求的数据,可以右键点击请求并选择“Edit”,然后进行修改即可。 7. 断点调试:如果你需要在某个请求或响应时暂停抓包以进行调试,可以在 Charles 中右键点击该请求或响应并选择“Breakpoints” -> “Add”,然后在弹出的窗口中勾选“Request”或“Response”,并设置相应的条件即可。 总之,Charles 是一款非常方便的网络抓包工具,可以帮助你快速定位和解决各种网络问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值