使用Charles对安卓手机进行抓包

写在前面的话

Charles 介绍

Charles 的主要功能

网络请求拦截与分析

Charles 通过将自己配置成系统的代理服务器,拦截所有通过它的 HTTP 和 HTTPS 请求与响应。开发者可以查看每个网络请求的详细信息,包括请求的 URL、请求头、请求体、响应头、响应体、状态码等,便于调试和分析网络通信问题。

SSL 抓包

Charles 支持 HTTPS 协议的抓包。通过安装 Charles 提供的 CA 证书,Charles 能够解密 SSL/TLS 加密的网络请求,查看明文内容。这对分析第三方应用的网络通讯协议特别有用。

重发和修改请求:开发者可以使用 Charles 修改网络请求的内容,然后重新发送这些请求。这种功能常用于测试接口,模拟不同的请求参数或 HTTP 状态码。

带宽限制

Charles 允许开发者模拟不同网络环境下的带宽、延迟、丢包等网络条件,从而分析应用在不同网络环境下的表现,特别适用于优化移动端应用的网络性能。

会话记录与导出

Charles 能够保存网络抓包会话,便于以后查看和分析。它还支持导出会话为多种格式,如 HAR 文件格式,用于进一步分析或分享。

Charles 的应用场景

移动端开发调试

在开发 Android 或 iOS 应用时,调试应用与服务器的网络通信协议是非常常见的需求。通过配置移动设备的代理为 Charles 的 IP 地址和端口,Charles 可以拦截和分析应用发出的网络请求。这在接口调试、错误定位、网络性能优化等方面尤为有用。

第三方应用分析

Charles 也可以用于分析第三方应用的网络通讯协议。通过配置代理以及 SSL 证书,即可捕获到 HTTPS 请求,并解密查看明文数据。这在逆向工程、协议分析、数据抓取等场景中有较大应用价值。

网络性能调优

利用 Charles 提供的带宽控制功能,开发者可以在不同的网络条件下(如慢速 3G、4G 网络)模拟测试应用的表现,帮助优化网络请求的响应速度、减少延迟,提升用户体验。

注意事项

隐私与法律问题:在使用 Charles 抓包时,要注意遵守相关的法律法规和隐私政策。未经授权抓取他人网络请求,尤其是解密 HTTPS 请求,可能会侵犯隐私和违反法律。

证书信任问题:安装 Charles CA 证书后,部分应用可能会检测到非官方证书而阻止网络请求。在这种情况下,可以考虑使用 Charles 的 SSL Pinning 解除功能,或者尝试其他抓包工具。

Charles使用步骤

下载安装Charles

前往官网下载Charles 官网下载地址

安装对应系统的版本

设置SSL代理

这样就可以对抓取https的链接

启动Chrales,打开 "菜单栏 -> Proxy -> SSL Proxying Settings"

在PC上安装本地证书

菜单栏 -> Help -> SSL Proxying -> Install Charles Root Cert...





在安卓设备设置代理

  1. 查看代理IP和端口

  2. 确保安卓设备和PC在同一个局域网后,修改安卓的WLAN设置

修改红框中的内容,点击保存后,电脑上会出现弹窗,点击"allow"确认。

  1. 准备charles证书

以下方式选一种即可

  • 安卓设备启动浏览器,输入"http://chls.pro/ssl",下载CA证书

    注意:可能浏览器有网站不安全之类提示。

  • PC浏览器打开,输入"http://chls.pro/ssl",下载CA证书后复制到安卓设备

  1. 设置CA证书

在安卓设备的设置中搜索"CA证书",进入CA证书设置。安装上一步准备的CA证书。


至此,即可在Charles中查看安卓设备的被抓的内容。

相关推荐
2501_932750262 小时前
Android BottomNavigationView 入门介绍
android
Godikov4 小时前
硬件异步事件下的业务一致性:智能柜领取/归还流程的竞态设计
android
Godikov4 小时前
不用 Netty:Android 手写 TCP 客户端实战——自定义协议帧、粘包处理与可靠重连
android
事圆则缓4 小时前
Java 面向对象如何落到 Android View 体系
android
iPad协议个微协议5 小时前
# 微信自动营销系统如何基于 WechatApi 做事件驱动设计
android·微信·企业微信·个人开发·wechatapi·微信个人号开发
AirDroid_cn5 小时前
隐私沙盒:第三方应用读取剪切板内容如何拦截?
android·gitee
2501_915918417 小时前
怎么把 Python 写的 Flet 应用打包成 iOS App 并上架 App Store?
android·ios·小程序·https·uni-app·iphone·webview
邪修king9 小时前
Re:Linux系统篇(二十六):文件系统(二):Ext 文件系统底层详解:从 inode、块组到软硬链接,结合 Windows 讲透文件管理本质
android·java·linux
又见情义9 小时前
RK3568 Android 13 版本号管理实战:基于 ROCKCHIP_BUILD_NUMBER 的定制化方案
android
终端安全笔记10 小时前
iOS 27 强制 TLS 1.2:租赁设备的注册链路会在哪一环断
android·网络·安全·ios·智能手机