Android 7/8/9/10+高新版本 https charles 模拟器抓包 抓取网络流量方法教程
准备工作
-
网络环境 :确保你的电脑和夜神模拟器在同一个局域网下。
-
辅助工具 :在模拟器中安装一个文件管理器(如 MT管理器 ),方便后续移动证书文件。如果计划将证书安装为系统证书,电脑上还需要安装 OpenSSL 工具。
Charles 配置
-
开启 SSL 代理 :点击
Proxy->SSL Proxying Settings,勾选Enable SSL Proxying。然后点击Add,在 Location 部分,Host 和 Port 都填*,以解密所有 SSL 流量。 -
查看代理地址 :点击
Help->SSL Proxying->Install Charles Root Certificate on a Mobile Device or Remote Browser,会弹出窗口显示你的电脑 IP 地址和代理端口(默认为8888)。
夜神模拟器代理设置
-
在夜神模拟器中,打开 设置 -> WLAN。
-
长按当前连接的 Wi-Fi 网络(通常是
WiredSSID),选择 修改网络。 -
勾选 显示高级选项 ,将 代理 设置为 手动。
-
在 代理服务器主机名 和 代理服务器端口 中,填入你在 Charles 中查看到的 IP 地址 和 端口号 (
8888)。 -
点击 保存。
安装 SSL 证书(关键)
这是最关键的一步,否则只能看到 unknown 或乱码。
-
方案一:安装用户证书(简单,但可能无效)
-
在模拟器浏览器中访问
chls.pro/ssl。 -
下载并安装证书。此方法在 Android 7.0 以上系统可能无效。
-
-
方案二:安装为系统证书(推荐,适用于 Android 7.0+)
-
导出证书 :在 Charles 中,点击
Help->SSL Proxying->Save Charles Root Certificate...,选择.pem格式保存到电脑。 -
生成证书名 :打开电脑命令行,进入证书目录,运行
openssl x509 -subject_hash_old -in 你的证书.pem。得到的一串字符(如269953ba)即为证书名。将.pem证书文件重命名为哈希值.0(如269953ba.0)。 -
将证书推送到模拟器 :进入夜神模拟器安装目录下的
bin文件夹,在命令行中执行以下命令:-
nox_adb.exe root -
nox_adb.exe remount -
nox_adb.exe push 你的证书.0 /system/etc/security/cacerts/
-
-
设置证书权限(可选):
-
nox_adb.exe shell -
chmod 644 /system/etc/security/cacerts/你的证书.0
-
-
验证与抓包
完成以上步骤后,在模拟器中打开目标 App,你应该能在 Charles 中看到数据请求了。如果第一次连接时弹出确认框,点击 Allow 即可。
常见问题
-
看不到任何请求:检查模拟器的代理 IP 和端口是否正确,并确保电脑防火墙没有拦截 Charles。
-
看到
unknown或乱码:通常是 SSL 证书未正确安装,请重点检查将证书安装为系统证书的步骤。 -
Charles 提示"Connection Failed":检查电脑和模拟器是否在同一局域网,或尝试暂时关闭电脑防火墙。