关于 frida-tls-pinning
使用 Frida 调查移动应用中的 TLS 证书固定和自定义信任验证行为。技能帮助识别网络技术栈、探测钩子并验证针对性修改,而非依赖通用绕过方案。
主要功能
- 01识别 Android、iOS 及跨平台网络技术栈
- 02探测 Java、Objective-C 和原生组件
- 03通过公开脚本定位生效的钩子
- 04列出验证请求修改效果的检查项
- 05要求记录应用版本、平台、库及回滚方式
适用场景
- 01调查被证书固定阻止的 HTTPS 流量
- 02定位移动应用中的信任验证钩子
- 03验证针对性钩子是否改变受阻请求
- 04记录测试环境和回滚步骤
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ rudra-ravi/ frida-skills --skill frida-tls-pinning安装后在 Claude Code 中输入/frida-tls-pinning确认已加载。
附带文件agents/openai.yamlreferences/tls-patterns.md
详细介绍
Frida TLS Pinning
当 HTTPS 流量因证书固定或自定义信任验证而被阻止时,使用此技能。
先识别技术栈
- Android Java:OkHttp、TrustManager、Conscrypt、WebView、network security config。
- Android 原生:BoringSSL、OpenSSL、Cronet、proxygen、Flutter engine。
- iOS:
NSURLSession、委托信任质询、SecTrustEvaluate*、原生 BoringSSL。 - 跨平台:React Native、Flutter、Unity、自定义原生网络通信。
不要一开始就把通用绕过方案作为最终答案。使用公开脚本找出触发的钩子,然后只保留必需的钩子。
Android 探测
Java.perform(() => {
for (const name of [
"okhttp3.CertificatePinner",
"com.android.org.conscrypt.TrustManagerImpl",
"javax.net.ssl.SSLContext"
]) {
try { console.log("found", name, Java.use(name)); } catch (_) {}
}
});
iOS 探测
if (ObjC.available) {
for (const name of Object.keys(ObjC.classes).filter(n => n.includes("Trust") || n.includes("Session"))) {
console.log(name);
}
}
原生探测
for (const m of Process.enumerateModules()) {
if (/ssl|crypto|boring|cronet|liger/i.test(m.name)) console.log(m.name, m.base, m.path);
}
验证
- 设备或应用配置文件信任代理。
- 在被阻止的确切请求期间,钩子会记录日志。
- 修改后,同一请求能够成功。
- 流量可见,或应用行为证明已绕过信任验证。
- 最终脚本注明应用版本、平台、库和回滚命令。
参考资料
阅读 references/tls-patterns.md,了解针对特定框架的钩子选项。
评论
支持 Markdown