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 | HttpURLConnection不走代理 |
这样虽然能抓包,但是仍然没法解密解开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 | 先推送 |
经过测试,这个在Android12模拟器中没问题,但是在Android15模拟器中就出现了问题,主要原因是证书路径机制发生了改变。这个问题后续再探究。
在reqable中看到的说明是:
2.手动复制文件
2.1下载证书8ece7551.0,复制到系统/system/etc/security/cacerts 目录,并保持文件权限和其他证书文件一致。
2.2对于Android14或以上版本设备,还需要额外复制到系统/apex/com.android.conscrypt/cacerts 目录,并保持文件权限和其他证书文件一致。
这里表示只需要复制两次就行,后续测试一下。
无法解密SSL的原因
- 证书
- 没有放到证书目录
- 模拟器