Featured image of post 通过 WSA 抓取 android 的 https 网络请求包

通过 WSA 抓取 android 的 https 网络请求包

android 9 以上版本,app 不再信任用户安装的证书,只能通过 root 手机把证书移动到 system 分区才能实现抓包。一般日常使用手机为了安全是不可能 root 的,这里通过 Windows 的 WSA 来实现抓包。

准备环境

  1. WSABuilds 下载安装已 root 带 magisk 的 WSA 镜像(假如之前已安装过 WSA,需要先到系统应用列表中,把旧的卸载)

  2. 安装后,开始菜单中搜索 android,找到 WSA 设置应用并打开,选择 开发人员,并打开开发人员模式

  1. 安装APK 安装程序,实现双击安装 apk 和自动安装 adb 命令工具

  2. 安装WSA 工具箱,用于上传文件到 WSA

  3. 下载Magisk app,并安装

安装 charles 证书

  1. 打开 charles,选择菜单 Help -> SSL Proxying -> Save Charles Root Certificate,并选择把证书保存为 .cer 格式

  2. 打开WSA 工具箱,使用文件传输功能把刚刚保存的证书上传到 wsa 的Download目录

  3. 点击WSA 工具箱首页的Android设置,选择安全->更多安全设置->加密与凭据->安装证书菜单,选择并安装Download目录的charles证书

  1. 证书安装成功后,正常在加密与凭据->信任的凭据->用户项中能看到已安装的证书

把用户区证书移动到 system 分区

  1. 下载 MagiskMagiskTrustUserCerts模块压缩包,并通过WSA 工具箱上传到Download目录
  1. 打开 Magisk app,点击模块 -> 从本地安装,选择刚刚上传的Download目录下的AlwaysTrustUserCerts压缩包

  1. 安装成功后,正常会提示你重启 wsa,没的话,在命令行中执行adb reboot手工重启下

  2. 重启后正常能在加密与凭据->信任的凭据->系统中,看到charles证书

配置代理抓包

  1. 打开 charles,选择菜单Proxy -> SSL Proxying Settings...,勾选 Enable SSL Proxying,并添加新的 location,Host*Port443

  1. 打开命令行,执行下面的命令设置 WSA 代理:
adb connect 127.0.0.1:58526
adb shell settings put global http_proxy 192.168.x.x:8888

其中192.168.x.x需改为charles所在的 ip 地址

  1. 下载安装需要抓包的 app,访问就能在charles看到 https 流量了:)

删除代理

去掉代理需执行下面命令:

adb shell settings delete global http_proxy
adb shell settings delete global global_http_proxy_host
adb shell settings delete global global_http_proxy_port
Built with Hugo
主题 StackJimmy 设计