Android抓包工具及面具安装使用

手机抓包工具介绍及面具安装和模块安装。

抓包工具分类

全局抓包工具 Http v7、Http debugger pro一般用来抓电脑程序发出去的包
代理抓包工具 Charles、Fiddler 代理抓包的模式
VPN抓包工具 HttpCanary 直接安装到手机,能抓到更多的包
网卡抓包工具 WireShark
手机抓包工具 tcpdump
Hook抓包工具 r0Capture

Charles & SocksDroid

下载页面:Download a Free Trial of Charles • Charles Web Debugging Proxy
破解页面:Charles破解工具

直接安装破解即可。

去proxy setting中将socks5代理打开。默认端口是8889。记得在Proxy将Windows代理开关关了,没打算抓本地的包。

SocksDroid
这是一个代理转发软件,非常古老。进入后,配置端口是8889,ip是192.168.1.xxx这个本地主机局域网ip(需要和手机互相访问的通)。右上角打开代理,电脑端就能收到

有一些软件可以强制不走代理,直接出去,这样就不走代理了。

1
2
HttpURLConnection不走代理
okhttp不走代理

这样虽然能抓包,但是仍然没法解密解开https的流量。
在Charles的help->SSL Proxying->Install Charles Root Certificate on a Mobile Device or Remote Browser就会出现一个地址,到手机浏览器搜索就可以下载了,但是这样会被防火墙拦截。
另一种方式的help->SSL Proxying->Save Charles Root Certificate,保存待安装证书以pem格式到本地

然后在Charles中配置SSL代理,在Proxy->SSL Proxying settings中,新增一项,ip和端口都是*表示SSL全部走代理,并且勾选启用代理。

证书push到安卓机,在手机设置中搜索加密与凭据,安装证书。在安装证书的时候还是要用到magisk和里面的模块,这里就要分情况了。

MUMU+Android12

方式1(个人测试没成功)

这个好说,直接下载安装 KitsuneMagisk(狐狸面具),不走手机上那种“修补 boot.img”的流程,因为官方没提供。打开对应安卓实例的「设置中心」:
- 磁盘设置->磁盘共享:可写系统盘
- 其他设置->开启手机 ROOT 权限
- 保存设置,完整重启模拟器(关掉再开,不是热重启)
打开 Kitsune Mask,弹 ROOT 请求->勾“记住选择”→ 允许;首页 Magisk 卡片点「安装」;直接安装(Direct Install,直接修改 /system)。看不到该选项:杀掉 Kitsune Mask 后台重开。
重启系统就好

下载MoveCertificate模块:发行版 v1.6.2 · ys1231/MoveCertificate
push到下载区

1
adb -s 127.0.0.1:16416 push MoveUserCertificate.zip /sdcard/Download

然后在面具中的模块中从本地安装即可。
这个模块的作用是把你之后在系统设置里装的用户证书,开机自动搬进系统证书目录 /system/etc/security/cacerts,解决 Android 7+ 默认不信任用户证书的问题。

安装后还是不被信任,研究了一下大概率是Charles的自身证书生成日期过期了,重新生成证书。Help->SSL Proxying->Reset Charles Root Certificate

mumu的Android安装的位置的设置->网络与互联网->互联网->网络偏好设置->安装证书安装后,重启系统,面具会自动安装证书。

下载一个RE 文件管理器(Root Explorer),打开路径/system/etc/security/cacerts/。查看已经有的证书,不过很难分辨。

方式2,要有root权限和可写入系统文件权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
先推送
adb -s 127.0.0.1:16416 push "D:\data\code\APK\工具\charles证书\8f0d27c3.0" /data/local/tmp/8f0d27c3.0

adb root

移动证书位置
adb -s 127.0.0.1:16416 shell "su -c 'sh -c \"cp /data/local/tmp/8f0d27c3.0 /system/etc/security/cacerts/8f0d27c3.0\"'"


给予权限
adb -s 127.0.0.1:16416 shell "su -c 'chmod 664 /system/etc/security/cacerts/8f0d27c3.0'"
adb -s 127.0.0.1:16416 shell "su 0 chown root:root /system/etc/security/cacerts/8f0d27c3.0"

如果失败了,查看用户
adb -s 127.0.0.1:16416 shell whoami
如果是root,直接执行即可
adb -s 127.0.0.1:16416 shell "cp /data/local/tmp/8f0d27c3.0 /system/etc/security/cacerts/"
adb -s 127.0.0.1:16416 shell "chmod 664 /system/etc/security/cacerts/8f0d27c3.0"
adb -s 127.0.0.1:16416 shell "chown root:root /system/etc/security/cacerts/8f0d27c3.0"

查看证书是否真的存在
C:\Users\test>adb -s 127.0.0.1:16416 shell "ls /system/etc/security/cacerts/8f0d27c3.0"

经过测试,这个在Android12模拟器中没问题,但是在Android15模拟器中就出现了问题,主要原因是证书路径机制发生了改变。这个问题后续再探究。

在reqable中看到的说明是:
2.手动复制文件
2.1下载证书8ece7551.0,复制到系统/system/etc/security/cacerts 目录,并保持文件权限和其他证书文件一致。
2.2对于Android14或以上版本设备,还需要额外复制到系统/apex/com.android.conscrypt/cacerts 目录,并保持文件权限和其他证书文件一致。
这里表示只需要复制两次就行,后续测试一下。

无法解密SSL的原因

  1. 证书
  2. 没有放到证书目录
  3. 模拟器
作者

纹云

发布于

2026-10-26

更新于

2026-10-26

许可协议