安卓手机高版本抓包方案
安卓 7.0 以后,每个应用可以自定义可信 CA 集,默认情况下,应用只会信任系统级的证书,不再信任用户级的证书。通过 Fiddler/Charles 安装的证书属于用户级的证书,因此会被视作不安全的证书,导致无法正常抓包
解决方案
修改 APP 配置文件允许信任用户证书,但前提是可以获取到 APP 的源码
将证书安装到系统证书中,但需要 root 权限
安装好用户证书,系统已 root,安装 re 文件管理器,使用 re 文件管理器将证书移动到系统证书文件夹
用户证书路径:/data/misc/user/0/cacerts-added/<证书 Hash 值>. 编号
系统证书路径:/system/etc/security/cacerts
方法 1: 使用 adb 连接
Copy
执行:
- adb push 0dd2455e.0 /sdcard
- adb shell
- su
- mount -o remount,rw /system
#mount -o rw,remount /system
5. cp /sdcard/0dd2455e.0 /system/etc/security/cacerts/
6. chmod 644 /system/etc/security/cacerts/0dd2455e.0
使用第三方文件管理器 (推荐)
下载酷安市场 app –> 分别搜索 Syslock 和 RE 管理器 并下载安装 (其他应用市场下载也可以)
给 Syslock 和 RE 管理器 root 权限 (以小米为例:安全中心–> 应用管理–> 权限–>ROOT 权限管理–> 找到应用并开启)
打开 Syslock 并解锁 /system (每次重启后都得开启一次)
将文件拷贝至手机中
使用 RE 管理器将文件拷贝到 /system/etc/security/cacerts 下
修改文件权限
到此然后重启手机。就可以正常抓 https 数据包了。
也可以到手机 设置 -> 安全 -> 信任凭据–> 系统 查看。
安卓模拟器(兼容性差,很多应用闪退)
安卓虚拟机 VMOS,官网: http://www.vmos.cn/,该方案相对简单
vmos 设置 wifi 代理
- 找到 vmos 主屏右下角的设置 — 其他设置 — 网络 adb (记录 ip + 端口)
- 连接 vmos:
adb connect ip+端口
- 打开 wlan 设置:
adb shell am start -a android.intent.action.MAIN -n com.android.settings/.wifi.WifiSettings
- 长按 wifi,修改网络,添加代理