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 文件#

  1. 打开 MT 管理器,找到“安装包提取”功能,选择抖音应用,点击 Apk 路径。

  2. 定位 so 文件:依次进入 lib/arm64 目录,找到 libsscronet.so 文件。

  3. 导出文件:将 libsscronet.so 移动到 sdcard ,然后传输到电脑进行操作。

2.2 使用 IDA 分析#

  1. 打开 IDA Pro:在电脑上用 IDA 打开 libsscronet.so 文件,等待加载完成。

  2. 搜索关键函数:按 ALT+T 打开文本搜索,搜索字符串 VerifyCert

  3. 定位校验函数:找到 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 保存修改#

  1. 在 IDA 中按 Ctrl+S 保存修改
  2. 选择“Patch file”选项,生成修改后的 so 文件

4. 替换 so 文件并配置权限#

4.1 定位应用目录#

  1. 找到抖音应用目录
    Terminal window
    /data/app/com.ss.android.ugc.aweme-XXXX-XXXXXXX/lib/arm64/

4.2 替换文件#

  1. 删除原文件

    Terminal window
    rm libsscronet.so
  2. 复制修改后的文件 到应用目录

  3. 设置正确权限

    Terminal window
    chmod 755 libsscronet.so

4.3 重启应用#

  1. 完全关闭抖音应用
  2. 清除应用数据(可选,但推荐)
  3. 重新启动抖音

重要提示:该方案适用于所有已 ROOT 的安卓设备,不限制安卓版本。

5. 验证抓包效果#

5.1 配置抓包工具#

  1. 启动 Charles/Fiddler,确保代理配置正确
  2. 检查证书安装:确保手机已正确安装抓包工具的证书
  3. 验证网络连接:确保手机和电脑在同一局域网

5.2 测试抓包#

  1. 打开抖音应用
  2. 执行任意操作(如刷新首页、搜索内容等)
  3. 检查抓包工具:应该能看到抖音的 HTTPS 请求和响应

5.3 常见验证点#

  • ✅ 首页数据加载正常
  • ✅ 搜索功能正常
  • ✅ 视频播放正常
  • ✅ 抓包工具显示 HTTPS 流量

常见问题与补充说明#

  • 为什么 Frida/Xposed 无效?
    • 新版抖音的 SSL 校验逻辑已下沉到 so 层,需直接修改 native 层代码。
  • Patch 方案的优势?
    • 一次修改,长期生效,无需每次启动都 hook。
  • 风险提示:
    • 替换系统 so 文件有一定风险,建议备份原文件。
    • 仅供学习与研究使用,切勿用于非法用途。

抖音抓包与 libsscronet.so 分析教程
https://linso.top/posts/dyssl/
作者
Linso
发布于
2025-07-04
许可协议
CC BY-NC-SA 4.0