模拟器安卓抓包实战202509

模拟器安卓抓包实战202509
AllenTT背景
自从安卓7开始,由于不再信任用户证书,在不Root的情况下,几乎主流app都无法抓取到https只能抓到http。与之同步发生的是,国内手机厂商对Root的权限逐步收紧,普通用户获取Root权限的门槛和成本非常高;即使拿到Root权限,大厂app又会将Root用户标记为高风险用户,日常app体验受影响
因此,能在备用机上Root是更好的选择,最好的选择是在模拟器/虚拟机上Root抓包
工具准备
- charles v4.6.8: 抓包工具(免费试用30天)
- 夜神模拟器 v7.0.6.2: 安卓模拟器(完全免费)
- MT管理器 v2.18.3: 一款可以操作系统目录文件的安卓app(完全免费)
环境配置
- PC内安装:双击安装charles和夜神模拟器到电脑上
- 模拟器内安装:将MT管理器的apk文件拖到已安装好的夜神模拟器的主界面,即可自动安装到模拟器中
- charles基础配置:
- proxy –> SSL Proxying Settings –> (SSL Proxying选项卡) –> (include) ADD –> (Host和Port都填写) *
- proxy –> Proxying Settings –> Enable transparent HTTP proxying
- 将charles证书安装到安卓中:
- help –> SSL Proxying –> Save Charles Root Certificate 将证书保存到桌面,命名为charles.pem
- Install Charles Root Certificate on a Mobile Device or Remote Browser 将弹出提示窗口,内容中有个内网IP地址和端口,将在下一步填写使用
- 在安卓内,打开 设置 –> WLAN –> (长按已连接的WIFI) WiredSSID –> 修改网络 –> (高级选项) –> (代理)手动 –> (代理服务器地址/端口)填写上一步的内网IP地址和端口号,如10.0.2.15和8888
- 在git bash或任意linux服务器中执行命令:
openssl x509 -inform PEM -subject_hash_old -in charles.pem。命令输出结果的第一行是个短文本(如de4e1e82),根据这个短文本重命名charles.pem为.0的后缀(如将charles.pem重命名为de4e1e82.0) - 将xxxxxxxx.0证书文件,通过MT管理器(永久同意超级用户请求),拖动复制到安卓
/system/etc/security/cacerts/目录内 - 将
/system/etc/security/cacerts/xxxxxxxx.0的权限属性修改为644(即rw-r–r–),否则浏览器一直会报证书问题甚至部分APP无法https联网
- 现在就可以愉快地抓包啦 ^v^




