写在前面
APP通过手机网络链接向网络服务器发送请求并收到响应。安卓手机抓包的原理其实就是在手机网络之前创建一个VPN。APP发送的请求经由VPN转发再发送给网络服务器,抓包软件就可以拿到请求包的内容。但是如果是传输的HTTPS的请求包,则需要安卓手机信任抓包APP颁发的SSL证书,认定这个应用是安全的才会同意通过VPN转发请求。
早期安卓版本,小黄鸟可以在非root环境下,直接安装自己的证书到安卓证书信任目录去,可以比较简单的去实现抓包功能。但是安卓7版本之后,安卓的安全框架有了极大的升级,小黄鸟的安装证书功能基本就是失效了(可能会提示安装成功,也可以开启VPN,但是打开目标APP,APP其实是断网状态的)。
这个问题一般的解决方法是root+面具,但不是很友好,高版本安卓可以root但是难度比较大,且root后手机安全没有办法保障。尤其是华为手机升级鸿蒙后,鸿蒙暂时没有root方案。
然后就有第一种替代方案,在手机里安装VMOS(其实就是安卓虚拟机),这个VMOS环境的安卓版本比较低,且已经root了,在这个环境下就可以通过安装Xposed模块:JustTrustMe来禁止SSL证书验证。具体的使用步骤如下:
一、安卓移动端APP真机抓包
1.1 下载小黄鸟、VMOS、待测试APP、JustTrustMe、MT管理器的安装包并导入手机
1.2 安装小黄鸟,安装后同意协议,在主页点击设置-SSL证书设置-导出HttpCanary根证书-授予权限-选择.0格式-记录证书导出的位置
1.3 安装VMOS并启动,进入虚拟环境后,使用文件中转功能将待测试APP、JustTrustMe、MT管理器的安装包、小黄鸟的证书文件导入到虚拟环境中,将三个APP安装(注意:TrustMeAlready.apk安装后是没有图标的)。然后使用MT管理器将小黄鸟证书复制到VMOS虚拟系统的/etc/security/cacerts/目录下。
1.4 返回真机环境,进入小黄鸟设置页面,设置抓包目标应用为VMOS,并开启网络监听,首次开启可能会提示说安装根证书、建立VPN等提示,选择同意,就可以看到网络监听正常开启。