移动端APP抓包实战:Frida+SSL Pinning绕过的完整配置 前言日常移动端渗透测试、接口数据分析、APP 逆向调试中SSL 证书锁定SSL Pinning是绝大多数 APP 最常用的防抓包手段。普通 Charles、Fiddler 安装系统证书后依旧无法抓取 HTTPS 数据包提示证书不信任、连接失败、请求直接拦截。本文从零搭建环境完整讲解虚拟机 / 真机 RootFrida 部署 SSL Pinning 一键绕过 代理抓包全流程适配 Android 7~Android 14 主流机型零基础也可直接照着配置实操。一、前期必备环境准备1. 硬件与设备要求安卓设备Root 真机/ 雷电模拟器、夜神模拟器、Genymotion推荐模拟器免拆机一键 Root电脑端Windows/Mac/Linux 均可配置 Python 环境抓包工具Charles 或 Fiddler二选一即可网络环境手机 / 模拟器与电脑处于同一局域网2. 电脑端基础环境安装1安装 Python3官网下载 Python3.8 及以上版本安装时勾选Add Python to PATH安装完成终端验证bash运行python --version pip --version2安装 ADB 调试工具下载安卓 ADB 工具包解压配置系统环境变量终端输入adb devices能识别设备即为配置成功3设备开启调试模式安卓设备连续点击版本号开启开发者选项开启USB 调试、网络 ADB 调试模拟器直接自带调试权限无需额外开启二、Frida 全套环境部署核心步骤1. 电脑端安装 Frida 核心库bash运行# 安装frida主程序 pip install frida # 安装frida-tools命令行工具 pip install frida-tools验证安装bash运行frida --version2. 匹配设备架构下载 Frida 服务端先查看设备 CPU 架构bash运行adb shell getprop ro.product.cpu.abi常见结果arm64-v8a主流机型、x86_64模拟器2. 前往 Frida 官方仓库下载对应架构frida-server3. 解压后推送至安卓设备bash运行# 推送服务端到手机/data/local/tmp目录 adb push frida-server-xxx /data/local/tmp/ # 进入手机shell adb shell # 切换root权限 su # 赋予执行权限 chmod 755 /data/local/tmp/frida-server # 后台运行frida服务端 /data/local/tmp/frida-server 3. 验证 Frida 连接成功电脑终端执行bash运行frida-ps -U正常输出设备进程列表代表 Frida 服务端与客户端连通成功。三、抓包工具基础代理配置以 Charles 为例Fiddler 操作逻辑一致电脑打开 Charles开启 HTTP/HTTPS 抓包监听设置代理端口默认 8888手机 / WiFi 手动设置代理填写电脑 IP8888 端口手机浏览器访问chls.pro/ssl下载安装 Charles 根证书重点高版本安卓需将证书安装至系统证书目录仅用户证书依旧会被 SSL Pinning 拦截。四、SSL Pinning 原理与绕过思路1. 什么是 SSL PinningAPP 内置固定合法域名证书发起 HTTPS 请求时强制校验服务端证书与内置证书一致无视手机系统安装的中间人证书直接断开连接彻底阻断普通抓包。2. Frida 绕过核心原理通过 Frida 注入 JS 脚本HOOK 安卓网络请求核心类OkHttp3 网络框架证书校验方法WebView 网页证书校验函数Apache、原生 HttpURLConnection 校验逻辑直接禁用 APP 内所有证书校验逻辑无视证书合法性实现全局 HTTPS 抓包。五、实战Frida 一键绕过 SSL Pinning1. 通用万能绕过脚本适配 99% 安卓 APP新建文件命名ssl_bypass.js写入以下完整脚本javascript运行/* Frida全局SSL Pinning绕过脚本 */ Java.perform(function () { // 绕过OkHttp证书锁定 try { const CertificatePinner Java.use(okhttp3.CertificatePinner); CertificatePinner.check.implementation function(){}; }catch(e){} // 绕过原生URLConnection证书校验 try { const HttpsURLConnection Java.use(javax.net.ssl.HttpsURLConnection); HttpsURLConnection.setDefaultSSLSocketFactory.implementation function(){}; }catch(e){} // 绕过WebView网页SSL校验 try { const WebViewClient Java.use(android.webkit.WebViewClient); WebViewClient.onReceivedSslError.implementation function(webview, errorHandler, sslError){ errorHandler.proceed(); }; }catch(e){} // 全局信任所有证书 try { const X509TrustManager Java.use(javax.net.ssl.X509TrustManager); X509TrustManager.checkClientTrusted.implementation function(){}; X509TrustManager.checkServerTrusted.implementation function(){}; }catch(e){} }); console.log( SSL Pinning 绕过成功 );2. 注入脚本启动抓包先在设备打开需要抓包的目标 APP电脑终端执行注入命令bash运行# 方式1按APP包名注入 frida -U -f 目标APP包名 -l ssl_bypass.js --no-pause # 方式2附加已运行APP进程 frida -U 目标APP进程名 -l ssl_bypass.js3. 快速获取 APP 包名bash运行# 列出手机所有应用包名 adb shell pm list packages # 查找指定APP包名 adb shell pm list packages | grep 关键词六、常见问题排查与解决方案问题 1Frida 启动报错端口占用解决结束设备内重复运行的 frida-server重新后台启动。问题 2注入脚本成功依旧无法抓包确认手机代理配置正确电脑与设备同网段确认证书已安装为系统证书非用户证书部分加固 APP 需先脱壳再进行 Frida 注入问题 3安卓 13/14 高版本绕过失效解决使用新版 Frida 服务端搭配高适配绕过脚本关闭 APP 安全检测、隐私权限拦截。问题 4APP 检测到 Frida 环境闪退优化方案使用Frida 隐藏模块隐藏 frida 特征屏蔽设备 Root 特征检测采用静默注入模式避免进程特征暴露七、进阶拓展用法批量绕过脚本常驻注入无需每次重启 APP动态修改请求参数Frida HOOK 请求实体篡改 POST/GET 数据免 Root 绕过搭配 MagiskLSPosed 模块实现无 Root SSL 抓包小程序 / 内嵌 H5 抓包脚本内置 WebView 绕过通杀内嵌网页请求八、合规声明本文所有技术内容仅用于企业内部安全测试、个人学习研究、合法 APP 接口调试严禁用于非法爬取数据、恶意篡改业务请求、侵犯用户隐私、商业违规爬取等违法行为一切违规操作后果由操作者自行承担请严格遵守《网络安全法》相关法律法规。文末总结SSL Pinning 作为移动端主流防抓包防护依靠传统证书安装已经完全失效Frida 注入 HOOK 证书校验是目前最稳定、最高效的绕过方案。整套流程总结搭建 ADBPython 环境→设备部署 Frida 服务端→配置局域网代理 根证书→注入 SSL 绕过脚本→一键抓取全量 HTTP/HTTPS 接口数据。熟练掌握这套配置可轻松应对市面上绝大多数安卓 APP 抓包逆向需求。