记录Mac下使用Charles抓包
抓包
简述
在网络应用如后端系统,app,小程序等的开发过程中,免不了接口可能会报错,但是一般在app中或者小程序中没有便捷的console控制台,而且线上环境也不会开启调试模式,所以想看一下接口的响应就显得比较麻烦,最近,博主就遇到小程序接口报错,想查看却抓不了包详情的问题:(。每次都是找测试同学,但是测试同学也有自己的事情,所以就想着自己抓包。
以前在windows电脑下,用过fidder工具来经常做安全测试,现在用mac电脑,fidder目前也已经支持mac系统了好像,但奈何有点贵,而且还未找到免费的用一哈,所以就换了一个Charles的工具,实战操作了一番,在此记录一下,帮助有需要的人。
环境装备
此处罗列的是个人的配置,其他参考就行
- mac os 11.1,无线网连接
- Charles软件安装,版本:4.6.2
- ios14设备,连接同一无线网
开始
说明:如果只是抓取本机的http请求,那么打开Charles自动配置就可以实现抓取,如果需要抓取https的接口或者抓取手机上的网络请求,参考下面步骤操作
证书安装
Help --> SSL Proxying --> Install Charles Root Certificate

点击上述菜单后会进入到钥匙串里:

如果不是完全信任名称旁边的图标会是红色的。双击charles钥匙串,选择【显示简介】,将信任改为始终信任;如下

SSL代理配置
Proxy --> SSL Proxy Settings


先勾选Enable SSL Proxying,然后配置抓取路由,Add点击
Host: *
Port: 443
- 标识所有网址都抓取,443代表Https,当然此处的host可以配置成自己想抓的网站地址前缀只抓取特定网站
至此,电脑端https就可以实现抓取了,可重新抓取试试。
如果想要实现抓取手机上App端或者小程序端的接口怎么办呢?请继续参考下面
开启代理


勾选Enable transparent HTTP proxying,然后下方的端口port默认为8888,和本机端口不冲突占用就行,我这里填的是8889,记住这个端口号
手机端配置
设置手机代理
设置手机代理需要注意手机与电脑连接的是同一个wifi,保证在同一局域网内即可,查看电脑端的IP地址,mac下进入命令窗口输入ifconfig(或者在设置->网络中查看)
手机上点击连接上的wifi,找到代理设置,不同手机可能方式不同哈,然后选择手动,就刚刚电脑上的IP填入到此处,charles中配置的端口号填入到这里,存储,代理就配置好了。


恭喜,到这里的话,手机上http请求就可以实现抓取了
手机上安装证书
要想实现手机上的https接口也可以抓取,还需要配置一下。如下,点击 Help --> SSL Proxying --> Install Charles Root Certificate on a Mobile Device or Remote Browser,接着会弹出一个info框,上面指示了手机上需要配置的ip和端口等提示信息。
手机下载证书,将chls.pro/ssl复制到浏览器中,会提示安装证书,这里安装证书按各自手机型号安装就可以。安装好只好,一定要记得去将证书设置为信任模式,比如ios下,去设置 -> 通用 -> 关于本机 -> 证书信任设置 打开信任

OK,到这里就已经配置完成了,就可以实现在电脑端抓取手机端的http/https接口,下面来看下效果;

问题总结
抓取显示unknow或乱码等问题
出现这个问题的可能原因:
- 首先检查证书配置是否正确,手机端以及电脑端的;
- 是否已经信任证书;
- 电脑端Charles代理的端口是否一致;
还有其他问题可以参考这里,unknown、乱码问题等
这么一操作,就不用麻烦测试同学了,后续移动端接口的问题,可以自己抓包排查一下啦~
记录Mac下使用Charles抓包的更多相关文章
- Mac下使用Charles抓包Android
原文地址:http://fanjiajia.cn/2018/11/21/Mac%E4%B8%8B%E4%BD%BF%E7%94%A8Charles%E6%8A%93%E5%8C%85Android/ ...
- Mac下使用Charles抓包https接口
1 官方网站下载,安装好Charles https://www.charlesproxy.com/download/ 2 安装ssl证书 3 信任证书 4 手机iPhone配置 ,获取证书url 5 ...
- mac 下使用Charles抓包华为手机app
安装Charles:https://www.cnblogs.com/sea-stream/p/11577418.html 需要保证手机与电脑连接同一个Wi-Fi设置mac charles,打开代理 2 ...
- Mac 下安装Fiddler抓包工具
需求 我们都知道在Mac电脑下面有一个非常好的抓包工具:Charles.但是这个只能抓代理的数据包.但是有时候想要调试本地网卡的数据库 Charles 就没办法了.就想到了在windows下面的一个F ...
- MAC下安装Fiddler抓包工具
需求 我们都知道在Mac电脑下面有一个非常好的抓包工具:Charles.但是这个只能抓代理的数据包.但是有时候想要调试本地网卡的数据库 Charles 就没办法了.就想到了在windows下面的一个F ...
- 【这特么是个坑。。。】iOS 10.3下解决Charles抓包ssl证书信任问题
针对近期iOS 10.3以上的系统charles抓https信任问题 前言 最近iPhone系统更新到ios 10.3后,在公司里用Charles抓包竟然出现了一些问题,https的请求都会失败,提示 ...
- Mac 环境 下使用Charles 抓包Http/Https请求
实现目标 在Mac 上 对 iOS 真机 和 模拟器 进行 Http/Https抓包 使用工具 Mac 上 Charles 4.2 安装 参考链接 1. 和 链接 2. 抓包 http 请求 (1 ...
- 【接口工具】mac环境下使用Charles抓包Https请求
Charles支持针对Https包解析.具体安装导航请参考“[接口工具]接口抓包工具之Charles” 操作流程 电脑安装证书: Help-SSL Proxying-Install Charles R ...
- MAC下使用Charles抓取安卓模拟器数据
一.安装Charles,这个不多记录 二.Charles数据乱码问题(参照这篇文章 http://blog.csdn.net/huanghanqian/article/details/52973651 ...
随机推荐
- 【阅读笔记】Java核心技术卷一 #1.Chapter3
3 Java的基本程序设计结构 3.1 一个简单的 Java 应用程序(略) 3.2 注释(略) 3.3 数据类型 8种基本类型 byte,short,int,long float,double ch ...
- ECMAScript 2020(ES11)新特性简介
目录 简介 动态imports import.meta export加强 BigInt matchAll() globalThis Promise.allSettled() ??操作符 ?.操作符 总 ...
- vulnhub-DC:5靶机渗透记录
准备工作 在vulnhub官网下载DC:5靶机DC: 5 ~ VulnHub 导入到vmware,设置成NAT模式 打开kali准备进行渗透(ip:192.168.200.6) 信息收集 利用nmap ...
- 记一次针对excel导出的优化
最近发现我们系统导出excel文件时由于是导出百万级数据导出,速度过慢并且内存占用多,故进行了下面的一次优化. 我们使用apache的poi进行excel文件操作 主要耗时: 1.从数据库得到需要导出 ...
- 某学院m3u8视频解密获取分析实战分享
[免责声明]本文来源于作者个人学习整理,仅供学习交流使用,不构成商业目的.所有资源均系本人个人学习或网络收集,仅提供一个展示.介绍.观摩学习的博文,不对其内容的准确性.可靠性.正当性.安全性.合法性等 ...
- Session与Cookie的原理以及使用小案例>从零开始学JAVA系列
目录 Session与Cookie的原理以及使用小案例 Cookie和Session所解决的问题 Session与Cookie的原理 Cookie的原理 Cookie的失效时机 小提示 Session ...
- 方法对了,你做1年Android开发能顶别人做10年
前几天后台有读者问我这样的问题.他在一家互联网公司工作3年了,每天都很忙,事情又多又杂. 本想着学习多一些东西也不是坏事,可到头来一无所获,什么都没学会,满腔的热情也被消磨得差不多. 三天两头动辞职的 ...
- 2020互联网寒冬之下,作为一个Android老码农,是如何进入腾讯的?
由于众所周知的原因,原生Android开发如今已经日渐凋敝,作为一个Android程序员,不仅要会Java,Kotlin,JavaScript,Css,Html,还要会Flutter,C++,FFmp ...
- 第5篇-调用Java方法后弹出栈帧及处理返回结果
在前一篇 第4篇-JVM终于开始调用Java主类的main()方法啦 介绍了通过callq调用entry point,不过我们并没有看完generate_call_stub()函数的实现.接下来在ge ...
- 将MNIST手写数据集转换成图片保存到本地
# 加载图片 data = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = data.load_data() plt.im ...