Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘

作者头像
北京-宏哥
发布于 2023-03-01 02:41:22
发布于 2023-03-01 02:41:22
9K0
举报
文章被收录于专栏:Charles教程Charles教程北京宏哥

1.简介

Charles和Fiddler一样不但能截获各种浏览器发出的 HTTP 请求,也可以截获各种智能手机发出的HTTP/ HTTPS 请求。

Charles也能截获 AndroidWindows Phone 等设备发出的 HTTP/HTTPS 请求。

今天宏哥讲解和分享Charles如何截获安卓移动端发出的 HTTP/HTTPS 请求。

2.环境准备

Charles如果想要实现手机抓包,需要先满足下面 3 个条件:

(1)电脑上安装有Charles抓包工具。

(2)安装有Charles的电脑必须跟手机处在同一个网络里,并且手机网络代理必须设置为Charles,当我们的手机发送数据时必须经过Charles这一层服务。

(3)在Charles中设置好捕获 HTTPS。

1.宏哥的环境是Windows 10版本 64位系统。如下图所示:

2.夜神模拟器的安卓版本是:5.1.1 。   如下图所示:

3.大致思路步骤

1.电脑本地安装charles证书

2.查看电脑charles的IP和端口号

3.手机连接charles,抓取简单的http

4.charles设置ssl proxy setting

5.手机安装charles证书

4.为什么需要安装Charles的CA证书呢?

1)先理清一些概念的东西:

a)简单来说,https是http的安全版本,超文本传输协议http是以明文发送数据,而https是具有安全性的ssl加密传输协议,可以这么认为https=http+ssl。

b)采用https的服务器必须从CA申请一个用于证明服务器用途类型的证书,证书是唯一性,只用于对应的服务器。客户端要认可这个服务器是否是安全的,可以进行访问或者交易等操作,则需要进行对服务端的验证。

下图是客户端对服务器的验证过程:

c)ssl证书,遵循了ssl协议,在客户端和服务器之间建立了一条ssl安全通道,一般ssl证书都是在验证服务器身份后颁发给客户端。

d)由于ssl技术已建立在所有主要的浏览器和web服务器程序中,因此,仅需安装服务器证书就可以激活ssl协议,所以客户端通过信任该证书,就相当于信任了该主机(服务器)。

下图是客户端和服务端加密通讯的流程:

2)通过以上一个简单的理顺之后,这也就为什么当我们在使用Charles进行抓包的时候需要安装证书,可以通过ssl数字证书中的私用密钥来解译加密的信息,展示在Charles中,但是Charles有一个特殊的地方,就是实际上客户端安装的是Charles的CA证书,然后Charles安装服务器的CA证书,实际上流程还是一样的。

5.安卓手机抓包配置

5.1Charles PC端http配置

http是默认配置好的,要是默认安装完没配置好,我们就自己配置一下,默认的端口号是“8888”我们后面设置手机代理的的时候也要注意这个端口要保持一致。

Charles的配置:这是要打开代理功能,具体操作步骤如下:

1.启动Charles,点击“Proxy-->Proxy Settings”,然后在Proxy Settings中填好端口(8888),并且勾选上“Enable transparent HTTP proxying”,最后点击“OK”。如下图所示:

2.查看运行Charles的电脑的IP地址,可以在命令行中运行ipconfig或者直接查看网络配置,如下图所示:

3.可以对照一下当前所安装的Charles中的ip地址是否一致,你可以直接在Charles上可以直接查看Charles的IP和端口,点击“Help-->SSL Proxying”,然后点击“Install Charles Root Certificate on a Mobile Device or Remote Browser”,如下图所示:

5.2Charles PC端SSL(https)配置

无论电脑端还是手机端进行抓取Https的包,都需要先安装对应证书才能使用。具体操作步骤如下:

1.打开charles,点击help-->SSL Proxying-->Install Charles root  Certificate 安装证书,如下图所示:

2.点击完“Install Charles root  Certificate”后,然后点击“安装证书”,如下图所示:

3.点击“安装证书”后,选择存储位置“本地计算机”,点击“下一步”,如下图所示:

4.证书存储位置选择‘将所有的证书都放入下列存储’,然后点击证书存储后的“浏览”,证书存储选择“受信任的根证书颁发机构”,点击“确定”,如下图所示:

5.点击“下一步”,如下图所示:

6.点击“完成”,提示导入成功。如下图所示:

7.点击proxy》 SSL Proxyng Settings。如下图所示:

8.打开界面如下 弄到跟我一样就可以 如果没有*;443自己按add手动添host :*,port:443 。如下图所示:

这样就可以抓取PC端的http和https类型的包了,接下来我们就来进行安卓手机端代理的配置。

5.3安卓手机设置

本节内容适合所有的 Android设备。下面以夜神模拟器为例进行讲解,其他品牌的模拟器和真实的手机操作方法与此差不多。具体操作步骤如下:

1.在确定了手机和Charles在同一局域网下之后, 那么我们来到Android手机的设置选项下,找到夜神模拟器手机当前连接的WLAN(一些 Android 手机是单击右边的箭头,有的是长按弹出对话框),如下图所示:

2.看到有一个wifi信号,长按这个信号,出现修改网络的弹窗。如下图所示:

3.点击修改网络,选中高级选项,打开高级选项,将代理设为手动,代理服务器主机名填写电脑的IP,端口号填写为主机抓包工具的监听端口。如下图所示:

4.点击保存,就成功完成代理的设置了。如下图所示:

5.电脑出现允许代理的提示,点击Allow即可,如下图所示:

那么到此Android手机的网络代理设置就到此为止,其他不同型号的Android模拟器和真机设置大同小异,以此类推,实在不会的自己可以百度一下。到此处表示已经可以抓http的手机包了。

5.4测试Charles捕获手机发出的 HTTP

1.打开手机上的浏览器,在浏览器中输入链接:http://open.vipexam.org。中科VIPExam考试学习资源数据库网站用的是 HTTP 协议而不是 HTTPS 协议,查看 Fiddler 是否捕获到了 HTTP 数据包。如下图所示:

2.打开手机上的 APP,在 APP 中进行一些操作,查看 Fiddler 是否能捕获到 HTTP 数据包。如下图所示:

如果抓不到 HTTP 的包,很可能是 Windows 防火墙的问题,到控制面板中关闭防火墙后再试试。

5.5测试Fiddler捕获手机发出的HTTPS

1.打开手机上的浏览器,在浏览器中输入HTTPS协议,查看Charles是否捕获到了HTTPS数据包。一直在报证书安全警告错误,无法抓取,因此需要我们安装证书,原因宏哥在抓取PC端Web页面包已经说过了,这里就不做赘述了。如下图所示:

2.打开手机上的APP,在APP中进行一些操作,查看Fiddler是否能捕获到HTTPS数据包。又出现了Unknown,如下图所示:

到此,我们知道了要想抓取手机端Https的数据,还的配置证书,证书不用问了,还是Charles下发的。

5.6Android手机配置证书

通过前边宏哥的测试,我们知道在抓取Android手机数据包的时候 跟web端也是一样,都需要配置证书,否则是无法正常进行抓包的。之前已经在我们的android手机上配置好了Charles的代理服务了,那么现在就可以通过ip+port的方式来访问Charles从而下载对应的证书。具体操作步骤如下:

1.在Android手机上打开(自带)的浏览器,输入:http://chls.pro/ssl 来下载证书。如果不出意外的话就会出现如下界面:

2.给证书命名为:CharlesRoot,点击“确定”,如下图所示:

3.点击“确定”后,需要输入凭据存储的密码。如下图所示:

4.再次点击“确定”,提示需要设置锁屏密码(注:选择安装的文件后,需要输入手机的锁屏密码。Android一定要有锁屏密码才能安装证书),如下图所示:

5.点击“确定”。按要求设置一个手机密码,自己设置一个,记住密码就行,最后不用了去系统-安全-密码中去掉即可,如下图所示:

6.完成锁屏密码后,提示证书已安装,证书安装成功后,如果你的手机系统没有设置密码或者锁屏图案,则系统会提示你设置锁屏图案或者密码。如下图所示:

7.证书安装好后,查看已信任证书:具体位置在【设置--->安全--->信任的凭据--->用户】,如下图所示:

6.开始Android抓包

通过前边的配置,我们现在可以开始抓安卓手机的https的包了。

1.打开手机上的浏览器,在浏览器中输入HTTPS协议的网站,例如:百度。如下图所示:

7.小结

 Charles和Fiddler一样,一个手机可以安装多个证书,但是每安装的一个证书里面都设置有IP地址,所以:安装的证书和电脑IP是一一对应的,当前的这个证书只能针对某一台电脑使用,更换电脑后,该证书将不能使用,只能重新安装与更换的电脑的IP相同的证书才能使用。

对了,关于Android7.0的版本在Fiddler那里已经详细地介绍了,只不过是工具换了一下,原理都差不多,这里和后边就不再做介绍了。而且这里介绍的和Fiddler抓包安卓手机的设置也基本一致,种种原因这里又啰嗦水了一遍。凑合看吧。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Golang流媒体实战之一:体验开源项目lal
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于《Golang流媒体实战》 因为工作需要,开始了流媒体开发学习,于是打算选择一个Go版本的开源流媒体服务器作为学习方向 lal是个不错的开源项目:项目活跃、功能齐全、有详细的中文资料,因此,就选择了它 仓库地址:https://github.com/q191201771/lal 文档地址:https://pengrl.com/lal/#/ 《Golang
程序员欣宸
2023/03/26
1.8K0
Golang流媒体实战之一:体验开源项目lal
利用Simple-RTMP-Server搭建RTMP和HLS直播服务(上)
1、推流地址:rtmp://192.168.43.118:1935/live/livestream
LiveVideoStack
2021/09/02
3.1K0
利用Simple-RTMP-Server搭建RTMP和HLS直播服务(上)
ffmpeg推流到流媒体服务器
流媒体服务器 流媒体服务器接管了和用户交互的一部分操作,后端通过ffmpeg推流到流媒体服务器 smart-rtmp地址:https://gitee.com/mirrors/smart_rtmpd?
sofu456
2021/02/02
3.7K0
FFmpeg流媒体处理-收流与推流
本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10623968.html
叶余
2019/04/19
10.5K1
FFmpeg流媒体处理-收流与推流
Golang流媒体实战之四:lalserver的启动源码阅读
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 《Golang流媒体实战》系列的链接 体验开源项目lal 回源 转推和录制 本篇概览 要想深入了解lalserver,除了前面几篇文章的使用,还必须读源码,这里就从最基本的启动开始,再逐步延伸到深入了解各核心功能 本次源码阅读对应的lal代码仓库在这里:https://github.com/q191201771/lal 分支用的是master,截止目前的comm
程序员欣宸
2023/04/03
7270
SRS(Simple Realtime Server) 开源直播/双录服务器
SRS(Simple Realtime Server) 是一个纯 C++ 编写的高性能开源流媒体服务器,目标是打造简单、高效、易用、支持多协议的直播服务系统。自 2013 年开源以来,已成为国内外广泛使用的 RTMP/WebRTC 服务端方案之一。
井九
2025/07/11
1860
SRS(Simple Realtime Server) 开源直播/双录服务器
国产开源流媒体SRS4.0对视频监控GB28181的支持
1. SRS最大的特点就是简单,表现在代码架构简单,实现简单,部署简单,运维简单;
潇湘落木
2020/11/12
8.2K1
国产开源流媒体SRS4.0对视频监控GB28181的支持
Golang流媒体实战之七:hls拉流服务源码阅读
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《Golang流媒体实战》系列的第七篇,继续学习一个重要且通用的知识点:hls拉流 在《体验开源项目lal》一文中,咱们先是用rtmp协议推流,然后就行了拉流操作,尽管只用rtmp推流,然而拉流的时候却可以使用多种协议:rtmp、flv、hls,这就有意思了,想必lal在处理推流数据时有特殊处理吧,所以才能用各种协议来拉流 为了弄明白其中原因,本
程序员欣宸
2023/04/24
1.4K0
Golang流媒体实战之七:hls拉流服务源码阅读
开源流媒体服务器SRS学习笔记(1) - 安装、推流、拉流
SRS(Simple RTMP Server) 是国人写的一款非常优秀的开源流媒体服务器软件,可用于直播/录播/视频客服等多种场景,其定位是运营级的互联网直播服务器集群。
菩提树下的杨过
2019/09/12
11.5K0
Golang流媒体实战之五:lal推流服务源码阅读
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 《Golang流媒体实战》系列的链接 体验开源项目lal 回源 转推和录制 lalserver的启动源码阅读 准备工作 本文要学习的是lalserver处理rtmp推流的功能代码,因此必须要对rtmp协议有所了解,至少要知道握手、chunk、message、messageType、amf0命令的基本概念,有关rtmp协议的资料在网上已经很丰富了,这里就不展开了,
程序员欣宸
2023/04/09
8970
Golang流媒体实战之五:lal推流服务源码阅读
工具使用:利用SRS和FFmpeg搭建流媒体直播和点播系统
最近解决一些摄像头上云问题,由于自研播放器有时存在一些播放问题,按照音视频常见问题分析和解决:延时和抖动这篇文章说的定位问题思路,我决定搭建一些RTMP流媒体服务器,供测试用标准播放器如VLC交叉验证。之所以存在这么多奇怪的问题,是因为接上来的摄像头或者平台总是存在一些私有码流或者码流格式不规范导致。下面简单说下RTMP服务器搭建和测试方法,包括FMS和SRS在win和linux下的搭建方法。
潇湘落木
2020/11/12
6K0
工具使用:利用SRS和FFmpeg搭建流媒体直播和点播系统
SRS6.0: 七年长跑,全面支持H.265
经过七年的酝酿和开发,SRS在6.0中终于正式支持了HEVC(H.265),几乎全面支持,包括RTMP、FLV、SRT、TS、HLS、DASH、GB28181、WebRTC(Safari)、DVR
Winlin
2023/04/02
3.1K0
SRS6.0: 七年长跑,全面支持H.265
SRS-开源流媒体服务器
SRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。SRS提供了丰富的接入方案将RTMP流接入SRS,
爱撸猫的杰
2019/03/28
28.8K0
SRS-开源流媒体服务器
JavaCV推流实战(MP4文件)
本篇概览 自己的mp4文件,如何让更多的人远程播放?如下图所示: 这里简单解释一下上图的功能: 部署开源流媒体服务器SRS 开发名为PushMp4的java应用,该应用会读取本机磁盘上的Mp4文件,读取每一帧,推送到SRS上 每个想看视频的人,就在自己电脑上用流媒体播放软件(例如VLC)连接SRS,播放PushMp4推上来的视频 今天咱们就来完成上图中的实战,整个过程分为以下步骤: 环境信息 准备MP4文件 用docker部署SRS java应用开发和运行 VLC播放 环境信息 本次实战,我这边涉及
程序员欣宸
2021/12/07
1.5K2
JavaCV推流实战(MP4文件)
【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )
流媒体服务器 在 推流 和 拉流 操作中 , 扮演者重要的角色 , 其主要任务 是 将视频 和 音频等多媒体内容进行 编解码 和 传输 ;
韩曙亮
2024/05/10
8.5K0
【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )
FFmpeg开发笔记(四十八)从0开始搭建直播系统的开源软件架构
​音视频技术的一个主要用途是直播,包括电视直播、电脑直播、手机直播等等,甚至在线课堂、在线问诊、安防监控等应用都属于直播系统的范畴。由于直播系统不仅涉及到音视频数据的编解码,还涉及到音视频数据的实时传输,因此直播领域采用的网络技术标准比较高,实现起来也比一般的WEB系统复杂。
aqi00
2024/08/18
4300
FFmpeg开发笔记(四十八)从0开始搭建直播系统的开源软件架构
OSSRS搭建rtmp推流服务器
文中测试视频:https://pan.baidu.com/s/1Cs9bULQ26zmDjbNqiIyUow 密码:q839
西里国际站
2023/04/18
4.3K0
FFmpeg开发笔记(三十六)Linux环境安装SRS实现视频直播推流
​《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKit。
aqi00
2024/07/07
6480
FFmpeg开发笔记(三十六)Linux环境安装SRS实现视频直播推流
从零到1搭建流媒体服务器
我在实际开发过程中遇到这样的需求,将摄像头采集的画面信息传输到Linux服务器上,然后传输到windows11端进行播放。基于此需求,所以我们需要在Linux环境下搭建一台类似"中转站"的流媒体服务器,摄像头将采集的数据信息推流到"流媒体服务器",然后windows环境下的播放器从流媒体服务器进行"拉流"。这就是我们常见的推拉流动作。
破晓的历程
2025/04/04
2970
从零到1搭建流媒体服务器
FFmpeg开发笔记(四十一)结合OBS与MediaMTX实现SRT直播推流
​《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2  FFmpeg推流和拉流”提到直播行业存在RTSP和RTMP两种常见的流媒体协议。除此以外,还有于2017年推出的SRT协议,相比常见的RTMP协议,SRT协议具有更低的延迟,并且消除了卡帧、抖动等花屏现象。腾讯视频云已经引入了SRT协议,在实践中取得了良好的视频直播效果。
aqi00
2024/07/27
9820
FFmpeg开发笔记(四十一)结合OBS与MediaMTX实现SRT直播推流
推荐阅读
相关推荐
Golang流媒体实战之一:体验开源项目lal
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档