933 字
5 分钟
抖音抓包与 libsscronet.so 分析教程

前言:安卓抓包环境与 SSL Pinning 问题
最近在做抖音项目时需要抓取 HTTPS 数据包。按照常规流程安装 Proxypin 并配置证书、代理后,依然无法抓取抖音的数据,显示连接失败或网络无法连接。本文记录了近期研究出的解决思路。
通常抓取 HTTPS 数据包,只需电脑安装抓包工具(如 Charles),手机配置代理证书,并与电脑处于同一局域网即可。手机端可通过 Proxypin 软件和证书抓包。
但新版抖音 App 使用了非系统的自定义 SSL 库(libsscronet.so
),导致上述方法失效。
SSL Pinning 原理
SSL Pinning 是防止中间人攻击的安全措施,App 会在本地内置服务端证书或公钥,校验服务器返回的证书是否与本地一致,若不一致则拒绝连接。
解决方案详细步骤
1. 准备工作
- 电脑已安装IDA
- 手机已 ROOT
- 已配置好Proxypin的内容(电脑端则配置Charles)
- 安装 MT 文件管理器(或任意支持 root 权限的文件管理器)
2. 提取并分析 libsscronet.so
2.1 提取 so 文件
-
打开 MT 管理器,找到“安装包提取”功能,选择抖音应用,点击 Apk 路径。
-
定位 so 文件:依次进入
lib/arm64
目录,找到libsscronet.so
文件。 -
导出文件:将
libsscronet.so
移动到 sdcard ,然后传输到电脑进行操作。
2.2 使用 IDA 分析
-
打开 IDA Pro:在电脑上用 IDA 打开
libsscronet.so
文件,等待加载完成。 -
搜索关键函数:按
ALT+T
打开文本搜索,搜索字符串VerifyCert
。 -
定位校验函数:找到
VerifyCert
相关函数后,双击进入sub_3A6DF8
函数。
3. 修改 SSL 校验逻辑
3.1 分析函数结构
在 sub_3A6DF8
函数中,你会看到类似以下的汇编代码结构:
// 原始代码示例if (xxx) { sub_xxx(); sub_xxx(); return 1LL; // 返回值为 1 (校验通过)}
3.2 修改返回值
关键修改点:
- 将所有返回
1LL
(校验通过) 的指令修改为返回0
- 通常需要修改 2-3 个位置
3.3 保存修改
- 在 IDA 中按
Ctrl+S
保存修改 - 选择“Patch file”选项,生成修改后的 so 文件
4. 替换 so 文件并配置权限
4.1 定位应用目录
- 找到抖音应用目录:
Terminal window /data/app/com.ss.android.ugc.aweme-XXXX-XXXXXXX/lib/arm64/
4.2 替换文件
-
删除原文件:
Terminal window rm libsscronet.so -
复制修改后的文件 到应用目录
-
设置正确权限:
Terminal window chmod 755 libsscronet.so
4.3 重启应用
- 完全关闭抖音应用
- 清除应用数据(可选,但推荐)
- 重新启动抖音
重要提示:该方案适用于所有已 ROOT 的安卓设备,不限制安卓版本。
5. 验证抓包效果
5.1 配置抓包工具
- 启动 Charles/Fiddler,确保代理配置正确
- 检查证书安装:确保手机已正确安装抓包工具的证书
- 验证网络连接:确保手机和电脑在同一局域网
5.2 测试抓包
- 打开抖音应用
- 执行任意操作(如刷新首页、搜索内容等)
- 检查抓包工具:应该能看到抖音的 HTTPS 请求和响应
5.3 常见验证点
- ✅ 首页数据加载正常
- ✅ 搜索功能正常
- ✅ 视频播放正常
- ✅ 抓包工具显示 HTTPS 流量
常见问题与补充说明
- 为什么 Frida/Xposed 无效?
- 新版抖音的 SSL 校验逻辑已下沉到 so 层,需直接修改 native 层代码。
- Patch 方案的优势?
- 一次修改,长期生效,无需每次启动都 hook。
- 风险提示:
- 替换系统 so 文件有一定风险,建议备份原文件。
- 仅供学习与研究使用,切勿用于非法用途。
抖音抓包与 libsscronet.so 分析教程
https://linso.top/posts/dyssl/