模拟器安卓抓包实战202509

背景

自从安卓7开始,由于不再信任用户证书,在不Root的情况下,几乎主流app都无法抓取到https只能抓到http。与之同步发生的是,国内手机厂商对Root的权限逐步收紧,普通用户获取Root权限的门槛和成本非常高;即使拿到Root权限,大厂app又会将Root用户标记为高风险用户,日常app体验受影响

因此,能在备用机上Root是更好的选择,最好的选择是在模拟器/虚拟机上Root抓包

工具准备

环境配置

  1. PC内安装:双击安装charles和夜神模拟器到电脑上
  2. 模拟器内安装:将MT管理器的apk文件拖到已安装好的夜神模拟器的主界面,即可自动安装到模拟器中
  3. charles基础配置:
    1. proxy –> SSL Proxying Settings –> (SSL Proxying选项卡) –> (include) ADD –> (Host和Port都填写) *
    2. proxy –> Proxying Settings –> Enable transparent HTTP proxying
  4. 将charles证书安装到安卓中:
    1. help –> SSL Proxying –> Save Charles Root Certificate 将证书保存到桌面,命名为charles.pem
    2. Install Charles Root Certificate on a Mobile Device or Remote Browser 将弹出提示窗口,内容中有个内网IP地址和端口,将在下一步填写使用
    3. 在安卓内,打开 设置 –> WLAN –> (长按已连接的WIFI) WiredSSID –> 修改网络 –> (高级选项) –> (代理)手动 –> (代理服务器地址/端口)填写上一步的内网IP地址和端口号,如10.0.2.15和8888
    4. 在git bash或任意linux服务器中执行命令:openssl x509 -inform PEM -subject_hash_old -in charles.pem。命令输出结果的第一行是个短文本(如de4e1e82),根据这个短文本重命名charles.pem为.0的后缀(如将charles.pem重命名为de4e1e82.0)
    5. 将xxxxxxxx.0证书文件,通过MT管理器(永久同意超级用户请求),拖动复制到安卓/system/etc/security/cacerts/目录内
    6. /system/etc/security/cacerts/xxxxxxxx.0的权限属性修改为644(即rw-r–r–),否则浏览器一直会报证书问题甚至部分APP无法https联网
  5. 现在就可以愉快地抓包啦 ^v^

参考资料