使用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中查看安卓设备的被抓的内容。

相关推荐
拭心1 小时前
Google 提供的 Android 端上大模型组件:MediaPipe LLM 介绍
android
带电的小王3 小时前
WhisperKit: Android 端测试 Whisper -- Android手机(Qualcomm GPU)部署音频大模型
android·智能手机·whisper·qualcomm
梦想平凡3 小时前
PHP 微信棋牌开发全解析:高级教程
android·数据库·oracle
元争栈道4 小时前
webview和H5来实现的android短视频(短剧)音视频播放依赖控件
android·音视频
阿甘知识库5 小时前
宝塔面板跨服务器数据同步教程:双机备份零停机
android·运维·服务器·备份·同步·宝塔面板·建站
元争栈道5 小时前
webview+H5来实现的android短视频(短剧)音视频播放依赖控件资源
android·音视频
MuYe5 小时前
Android Hook - 动态加载so库
android
居居飒6 小时前
Android学习(四)-Kotlin编程语言-for循环
android·学习·kotlin
Henry_He9 小时前
桌面列表小部件不能点击的问题分析
android
工程师老罗9 小时前
Android笔试面试题AI答之Android基础(1)
android