Android charles https抓包——剑指封喉

写在前面

我们在使用charles抓包是经常遇到无法查看到https数据请求的内容,这是因为https使用到了证书对数据内容做了加密,我们只有使用中间人攻击的方式,往Android设备上安装我们自己的证书,才能对https请求中的数据做解密。然而,自Android 7.0以后,已经是无法通过常规手段,来让Android系统安装上我们的根证书。在此,将会介绍一种能够突破这类限制的方法,让我们能够在高版本的Android系统上轻松实现抓包自由。亲测Android 13有效。

准备环境

  • macos系统。
  • 可root设备,推荐用Pixel或者小米。
  • Magisk。

本文描述的内容都是在macos上来操作,使用Magisk对Android设备实现root,具体的root流程可自行谷歌搜索,这里就不详细描述。

生成证书

  1. 打开charles软件,并保存证书,Help->SSL Proxying -> Save Charles Root Certificate。下载完本地会存在一个.pem文件,如下图。

  1. macos上安装好openssl(好像现在系统默认都是自带这个命令的),打开终端,输入命令:openssl x509 -subject_hash_old -in xxx.pem,其中xxx.pem为1中保存下来到本地的.pem文件。输入上面命令后可以看到一个八位的十六进制数字,如下图。
  1. xxx.pem文件改名为xxx.0,其中xxx为2中输入命令后得到的八位十六进制数字,如:17c22b75.0

安装证书

如何将charles证书文件安装到设备上,将是全文的核心。在Android 8.0设备上root设备只需要将上面生成的xxx.0文件直接拷贝到/system/etc/security/cacerts目录下即可导入成功。但是在再高版本的系统上,即使是获取了root权限,也难以修改系统分区文件属性来进行读写。经常会出现一下错误提示:

  • Read-only file system
  • mount: '/system' not in /proc/mounts
  • 等等。

总之,就是已经很难直接将证书文件直接拷贝到系统目录下了,在此我们将利用Magisk来实现证书导入。

Magisk证书导入

  1. 创建Magisk模块,具体模块下载连接,提取码gym6,模块目录结构如下图:
  1. 将上面生成的证书拷贝到system/etc/security/cacerts/目录下。
  2. 将所有文件压缩成个zip包,注意,zip压缩包中customize.sh,META-INF等这些文件是处于根目录。
  3. 将zip包拷贝到手机sd卡下,一般是拷贝到/sdcard/Download/目录,如下图。
  1. 打开Magisk,"模块" -> "从本地安装",选择上面制作成功的zip包,确认安装,分别如下图。

  1. 进入system/etc/security/cacerts/目录确认charles证书顺利安装。

设置代理

  1. macos上打开charles软件,Proxy-> Proxy Settings,进入设置代理端口,默认设置8888,如下图。

  1. 开启https请求抓包,Proxy-> SSL Proxying Settings,开启SSL Proxying,如下图配置。

  1. 手机与macos电脑连上同个wifi,手机打开wifi高级设置,代理改为"手动",代理主机名为:macos电脑内网ip,代理端口为:8888(与1中设置的端口一致)。

开干

至此,我们将能够实现https网络请求抓包,如下图:

相关推荐
2501_9151063213 小时前
全面理解 iOS 帧率,构建从渲染到系统行为的多工具协同流畅度分析体系
android·ios·小程序·https·uni-app·iphone·webview
2501_9160088915 小时前
iOS 能耗检测的工程化方法,构建多工具协同的电量分析与性能能效体系
android·ios·小程序·https·uni-app·iphone·webview
2501_9159214316 小时前
重新理解 iOS 的 Bundle Id 从创建、管理到协作的工程策略
android·ios·小程序·https·uni-app·iphone·webview
2501_9151063216 小时前
当 altool 退出历史舞台,iOS 上传链路的演变与替代方案的工程实践
android·ios·小程序·https·uni-app·iphone·webview
00后程序员张16 小时前
Transporter 的局限与替代路径,iOS 上传流程在多平台团队中的演进
android·ios·小程序·https·uni-app·iphone·webview
游戏开发爱好者820 小时前
iPhone HTTPS 抓包实战指南,移动端加密流量分析、代理解密失败排查与底层数据流捕获
android·ios·小程序·https·uni-app·iphone·webview
橘子真甜~2 天前
C/C++ Linux网络编程11 - 数据加密与https协议
linux·服务器·网络·http·https·密码学·加密解密
2501_916007472 天前
iOS 应用上架流程的工程化拆解 从签名体系到提交审核的全过程管控
android·ios·小程序·https·uni-app·iphone·webview
2501_915918412 天前
构建可靠的 iOS 日志导出体系,从真机日志到系统行为的多工具协同实践
android·ios·小程序·https·uni-app·iphone·webview
Fr2ed0m2 天前
HTTP vs HTTPS vs SSL/TLS:https协议全面解析(附HTTPS部署指南)
http·https·ssl