Mac下用Charles实现Android http和https抓包

背景

工作以后,团队需要,抓包工具用的特别多。Charles功能丰富,能满足需要抓包的大多数场景。
之所以专门讲一下Android抓包,一个原因是笔者从事Android开发,经常用;另外,就是网上关于Charles实现Android抓包的配置说明鱼龙混杂,不仅浪费时间还让人抓狂。

工具

(1)最新的charles工具,下载地址:https://www.charlesproxy.com/download/

(2)charles本身收费,如果不想掏钱,必须破解。破解的步骤只需要一步,参见http://charles.iiilab.com

Http

(1)配置代理端口号;
Proxy -》 Proxy Settings -》 Port,port可以随便指定,我这里取的8888;
这里写图片描述
这里写图片描述
(2)配置代理的ip;
Android手机的网络代理一般在设置页面,点击当前连着的wifi,手动修改代理配置,然后将你的电脑ip和第一步中配置的端口号填写到手机上即可。如下图:
这里写图片描述
有了上面两步,理论上已经能够实现http的抓包。至于如何抓,以及断点、map、rewrite等功能不是本文的重点,网上一大筐,请自行搜索。

Https

这个真的是,让人很无语。
在看了网上一大堆似曾相识的说明之后,笔者按照那些配置,不是乱码,就是一直处于这样⬆️吊死的请求状态。还有各种证书指导安装说的模棱两可,让人摸不着头脑。

在经过了半天的折腾后,笔者将亲身实践的经历总结如下,力图用最简洁的步骤,帮你实现https抓包。
(1)在上面两步的基础上,你需要为charles添加SSL Proxiyng。具体的步骤是:Proxy -》 SSL Proxiyng Settings -》勾选“Enable SSL Proxying”,并点击下方的Add,你可以这样配置:
这里写图片描述
这里写图片描述
这里写图片描述
host是你要抓的域名或者ip(这里用通配符*,表示抓去所有的https请求),port为443。

(2)下载手机的SSL证书。这一步很关键,你需要点击help -》SSL Proxying-》Save Charles Root Certificate,然后选择目录,保存一个类似于这样的“charles-ssl-proxying-certificate.pem”文件(笔者的环境是mac下,windows有可能文件后缀不一样);
这里写图片描述
(3)给手机安装证书。这一步很坑,因为不同的手机可能会有不同的表现

  • 首先命令行切换到(2)的文件夹下,可用adb将(2)中的文件推入手机中,具体的命令参考:“adb push charles-ssl-proxying-certificate.pem sdcard/charles.pem”,表示将charles-ssl-proxying-certificate.pem推入sdcard中,并重命名为charles.pem,注意后缀一般必须是pem。
  • 打开手机的文件管理器,找到charles.pem,点击安装。如果安装成功,那么恭喜你,理论上,现在手机的https访问数据,已经能被charles获取。不过,如果你的手机出现了类似下图的说明,请继续执行下一步。
    这里写图片描述
  • 打开手机设置 -》更多设置 -》系统安全 -》从存储设备安装 -》选择charles.pem,点击安装。如果安装成功,那么恭喜你,理论上已经能抓包https的数据了。
    这里写图片描述
    如果你是小米的用户,而且出现了问你要“凭据存储的密码”的弹窗,请继续往下看。
    这里写图片描述
  • 小米手机对sdcard文件的存取,做了安全限制。如果你没有设置屏幕锁,或者没有开启屏幕锁,操作sdcard文件时会出现上面的提示(具体可参见http://www.miui.com/thread-3244178-1-1.html)。这时,你需要设置一下屏幕锁,再重新安装一下就行了。

要补充的是,在小米机器上,如果经过上述操作,.pem还是无法正常安装,请尝试把文件重命名为.crt,再重复上述操作

到这里,已经完成charles对https抓包的全部配置。正常的情况,你的charles会显示https的数据,并且没有乱码。如果按照上面的步骤,仍然无法抓https包,笔者建议你可以考虑重新装一个版本的charles了。

总而言之

(1)https抓包确实需要安装证书,不过电脑端可以不装,要抓包的手机必须装,而不是像许多博客指出的那样,电脑和手机都必须装证书;
(2)部分版本的破解可能导致charles出现异常,对的配置却仍然无法正常抓https包,可能受破解的影响,可以考虑重装软件了。
(3)https从头到尾,电脑只需要配置一下SSL Proxiyng Settings,手机只需要安装一个证书即可。并不需要乌七八糟的乱撞一通证书。


  • 27
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
### 回答1: Mac Charles是一款流行的抓包工具,可以用于HTTPHTTPS协议的抓包。对于HTTPS协议,Mac Charles可以通过中间人攻击的方式,将客户端和服务器之间的通信流量拦截下来,从而实现抓包。但是需要注意的是,这种方式可能会引起安全问题,因此在使用时需要谨慎。 ### 回答2: Mac Charles是一款强大的抓包工具,可以用于分析网络流量。其中,HTTPS是一种安全的HTTP协议,采用了SSL或TLS加密技术,可以保护数据的安全性。在HTTPS通讯中,传输数据是通过加密的通道传输的,因此在通讯过程中很难对数据进行篡改或者窃听。 然而,我们仍然可以使用Mac CharlesHTTPS通讯进行抓包。具体步骤如下: 1. 安装证书。首先需要安装Mac Charles的证书,以便Mac Charles可以拦截和分析HTTPS请求。可以打开Mac Charles的Proxy菜单,选择SSL Proxy Settings,在这里可以生成和安装证书。 2. 配置代理。在Mac Charles的Proxy菜单中,选择Proxy Settings,在这里可以配置浏览器和其他应用程序的代理设置。在这里可以设置代理服务器和端口号。 3. 开始抓包。现在可以使用浏览器访问HTTPS网站,Mac Charles会自动拦截和分析请求,显示请求和响应的内容。在这里可以查看请求和响应的头部和主体信息,可以对数据进行修改和重放。可以使用Mac Charles的过滤器,筛选出感兴趣的请求和响应。 需要注意的是,在使用Mac Charles抓包时,不要泄露敏感信息,不要对他人的HTTPS请求进行窃听和篡改。 ### 回答3: Mac Charles 是一款非常实用的抓包工具,具有很好的协议支持和功能完善的优点。当我们想要抓取 HTTPS 请求时,Mac Charles 也可以做到。下面我将为大家详细介绍一下 Mac Charles 抓包 HTTPS 的方法。 首先,我们需要在 Mac 中安装并打开 Mac Charles 抓包工具。接着,在工具的菜单栏里点击“Proxy”,然后选择“SSL Proxying Setting...”进入 SSL 代理设置界面。在该界面中,我们需要勾选上“Enable SSL Proxying”的选项,然后点击“Add/Edit”按钮,添加需要抓包HTTPS 请求域名,如“*.google.com”。此外,对于需要用户授权的 HTTPS 请求,我们还需要在 SSL Proxying Setting 界面中点击“SSL Proxying”标签,然后勾选上“Enable SSL Proxying”。这样就可以实现HTTPS 请求的抓包了。 在进行实际操作时,我们需要在 Mac Charles 工具的主界面点击“Record”按钮,开始录制 HTTPS 请求。在此过程中,如果出现 SSL Proxying 请求时,Mac Charles 工具会提示用户要进行证书安装,用户需要在弹出的对话框中点击“Install”按钮来安装证书。证书安装过程中会提示要输入 Mac 的管理员密码,用户需要根据提示输入密码,完成证书安装即可。安装完成后,我们就可以重新发起 HTTPS 请求,此时 Mac Charles 就可以抓包 HTTPS 请求了。 总之,通过上述方法,我们可以使用 Mac Charles 工具抓包 HTTPS 请求,实现HTTPS 请求的数据抓取和分析。这对于我们了解网络通信过程中的数据传输和数据处理起到了非常重要的帮助作用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值