Android 7/8/9/10+高新版本 https charles 模拟器抓包 抓取网络流量方法教程

Android 7/8/9/10+高新版本 https charles 模拟器抓包 抓取网络流量方法教程

准备工作

  • 软件下载 :安装好 Charles夜神模拟器

  • 网络环境 :确保你的电脑和夜神模拟器在同一个局域网下。

  • 辅助工具 :在模拟器中安装一个文件管理器(如 MT管理器 ),方便后续移动证书文件。如果计划将证书安装为系统证书,电脑上还需要安装 OpenSSL 工具。

Charles 配置

  1. 开启 SSL 代理 :点击 Proxy -> SSL Proxying Settings,勾选 Enable SSL Proxying。然后点击 Add,在 Location 部分,Host 和 Port 都填 *,以解密所有 SSL 流量。

  2. 查看代理地址 :点击 Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser,会弹出窗口显示你的电脑 IP 地址和代理端口(默认为 8888)。

夜神模拟器代理设置

  1. 在夜神模拟器中,打开 设置 -> WLAN

  2. 长按当前连接的 Wi-Fi 网络(通常是 WiredSSID),选择 修改网络

  3. 勾选 显示高级选项 ,将 代理 设置为 手动

  4. 代理服务器主机名代理服务器端口 中,填入你在 Charles 中查看到的 IP 地址端口号8888)。

  5. 点击 保存

安装 SSL 证书(关键)

这是最关键的一步,否则只能看到 unknown 或乱码。

  • 方案一:安装用户证书(简单,但可能无效)

    1. 在模拟器浏览器中访问 chls.pro/ssl

    2. 下载并安装证书。此方法在 Android 7.0 以上系统可能无效。

  • 方案二:安装为系统证书(推荐,适用于 Android 7.0+)

    1. 导出证书 :在 Charles 中,点击 Help -> SSL Proxying -> Save Charles Root Certificate...,选择 .pem 格式保存到电脑。

    2. 生成证书名 :打开电脑命令行,进入证书目录,运行 openssl x509 -subject_hash_old -in 你的证书.pem。得到的一串字符(如 269953ba)即为证书名。将 .pem 证书文件重命名为 哈希值.0(如 269953ba.0)。

    3. 将证书推送到模拟器 :进入夜神模拟器安装目录下的 bin 文件夹,在命令行中执行以下命令:

      • nox_adb.exe root

      • nox_adb.exe remount

      • nox_adb.exe push 你的证书.0 /system/etc/security/cacerts/

    4. 设置证书权限(可选):

      • nox_adb.exe shell

      • chmod 644 /system/etc/security/cacerts/你的证书.0

验证与抓包

完成以上步骤后,在模拟器中打开目标 App,你应该能在 Charles 中看到数据请求了。如果第一次连接时弹出确认框,点击 Allow 即可。

常见问题

  • 看不到任何请求:检查模拟器的代理 IP 和端口是否正确,并确保电脑防火墙没有拦截 Charles。

  • 看到 unknown 或乱码:通常是 SSL 证书未正确安装,请重点检查将证书安装为系统证书的步骤。

  • Charles 提示"Connection Failed":检查电脑和模拟器是否在同一局域网,或尝试暂时关闭电脑防火墙。