httpCanary 中文文档 下载 App

SSL Pinning 绕过:当应用不信任你的证书

什么是 SSL Pinning

SSL Pinning(证书固定)是一种应用级别的安全机制——App 在代码里硬编码了服务器真实证书的指纹,每次建立 HTTPS 连接时都会验证:服务端返回的证书指纹是不是和代码里写死的一致。

如果 httpCanary 在中间替换了证书,证书指纹肯定对不上,App 会立即中断连接——不管 httpCanary 的 CA 证书有没有被系统信任。

和系统证书信任的区别

机制层级控制权
系统证书信任Android 系统层用户可以改
网络安全配置应用的 Manifest应用开发者设置
SSL Pinning应用代码内部用户难以干预

SSL Pinning 是 应用自己管的,绕不开系统信任链——这是它比网络安全配置更强的原因。

哪些 App 有 SSL Pinning

高安全级别的 App 通常会开启:

判断方法:如果只有某些 App 的 HTTPS 抓不到(乱码),而浏览器和其他 App 正常,基本可以确定是 SSL Pinning。

绕过方案总览

方案是否需要 Root难度兼容性
JustTrustMe(Xposed 模块)是中较好
TrustMeAlready(Xposed 模块)是中一般
太极 + 内置 Hook可选中较好
Frida 脚本是(模拟器免 Root)高好
VirtualApp 平行空间否中一般
模拟器 Frida(免 Root)否高好

方案一:JustTrustMe(最流行)

JustTrustMe 是 Xposed 框架上最流行的 SSL Pinning 绕过模块——它 Hook 了 Android 中所有用于 SSL 证书校验的 API,让证书校验永远返回成功。

使用步骤

  1. 安装 Xposed 框架(需要 Root)
  1. 安装 JustTrustMe
  1. 在 Xposed 中启用
  1. 重启目标 App
  2. 在 httpCanary 中重新抓包

JustTrustMe 的局限

方案二:太极(免 Root 首选)

太极(Taichi)是一个 Hook 框架,不修改系统分区(不需要 Root),通过修改目标 App 的 APK 来注入 Hook 代码。

使用步骤

  1. 安装太极 App
  2. 在太极中选择需要 Hook 的目标 App
  3. 太极会自动做 APK 重打包并生成「太极版」的 App
  4. 在太极里启用 JustTrustMe 模块
  5. 通过太极打开目标 App

太极的局限

方案三:Frida(灵活但技术门槛高)

Frida 是一个动态插桩框架,可以在运行时 Hook 任意函数。有成熟的 SSL Pinning 绕过脚本。

使用步骤

  1. Root 手机或用模拟器(模拟器免 Root)
  2. 启动 Frida Server
  3. 在电脑上运行 Frida 绕过脚本

Frida 的优势是灵活——可以针对具体 App 定制绕过逻辑,不像 JustTrustMe 是通用 Hook。但需要一定的逆向分析能力。

实战建议

你的情况推荐方案
设备已 RootLSPosed + JustTrustMe,最省心
没 Root 但可以改 APK太极 + JustTrustMe
用模拟器Frida 脚本,最灵活
只有一个特定 App 要抓先试试能不能改 App 的 network_security_config.xml

安全提示