TikTok加密中的套娃模式

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: TikTok加密中的套娃模式

TikTok 加密中的套娃模式

引言

tiktok 相比国内的某音的网页版做的不错,以至于你基本可以将他的网页版当作 APP 来使用,登录也自然是可以的(整体看上去跟 APP 差别不大),也没有必要去搞什么拔卡、应用变量修改啥的,只要你有连接大世界的工具,你就可以来到抖音。这也给调试带来了方便(其实并不方便),因为网页意味着他写的代码你可见但不一定清晰,用不着反编译 TikTokAPP,去看一堆堆的混淆过后的代码。

起步

先随便看一个接口的参数

tiktok_param

这两个基本上是每一个接口都必须的,其他的根据不同的接口来动态构造,其中 verifyFp,通过搜索可以看到定义处:

verifyFp

很明显从 cookie 中获取,我本以为他是在某一个接口中返回的,当我看完一整个请求后,我发现我还是太年轻了,她根本没有,于是就搜索那个 cookie 的名称:

cookie_s_v_web_id

这里就很明显了,在此处设置了 cookie,便于后续获取,生成值 e 的代码如下

function() {
    var t = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split("")
      , e = t.length
      , n = (new Date).getTime().toString(36)
      , r = [];
    r[8] = r[13] = r[18] = r[23] = "_",
    r[14] = "4";
    for (var o, i = 0; i < 36; i++)
        r[i] || (o = 0 | Math.random() * e,
        r[i] = t[19 == i ? 3 & o | 8 : o]);
    return "verify_" + n + "_" + r.join("")
}();

看不懂不要管,能跑就行。

剩下的就是 sign 那个参数,第一次通过断点接口,触发断点后,真的怀疑人生,F10 按了半天没看到 sign 值的计算和出现,有一个循环是真的牛批,用了好多秒,”不走一遍内存的路,永远不知道内存承受了什么“,这里真的不建议去断点接口,更建议直接断点代码,老规矩,直接搜索_signature,就会发现只有三个 js 中出现,其中有一个 js 中很明显不是,就缩小了范围,当然这个断点也需要有耐心,也比较长,但比断点接口还是好的多。过程中你会发现有一个acrawler.js的文件,里面就是一个核心,内容如下:

acrawler_js

说他不像函数,他又用了函数构造器,说她像个函数,里面又有一些不该有的东西

小插曲 Function

Function(
  (function (t) {
    console.log(t);
  })("1111")
)();

(function (t) {
  console.log(t);
})("1111");

这两段代码效果是一样的。

根据上面的代码,直接把那个拿出来跑,发现返回值是一个 js 代码,另存为新的 js 文件,却又发现内部还是有一堆看起不来不像函数,却能用eval执行的”伪代码“,再运行,它的返回值又是一份 js 代码,在另存为新文件,发现里面又有一堆英文字母和数字组成的奇怪”代码“,于是我天真的以为这就是最后的结果,直接拿出来跑,结果一记暴击,控制台赫然出现undefined,TikTok 套娃成功,后来看了一些资料,发现代码执行后会生成一个全局byted_acrawler对象而没有返回值,里面就有 sign 方法用来生成参数_signature,最后也是成功的生成了参数_signature,并通过了校验,不过那个获取视频详情的接口,生成的_signature有点儿问题,要多次请求才有可能出现结果,其他的例如获取作者所有的视频接口还是可以通过的。

res_url

结尾

需要源码可以关注TopCode公众号

qrcode_for_gh_b645da873ba5_258

回复:TikTok验签源码,即可获取下载链接。

目录
相关文章
|
8天前
|
前端开发 数据安全/隐私保护
全新紫色新UI数码盲盒系统源码/全开源无加密/附教程
全新紫色新UI数码盲盒系统源码/全开源无加密/附教程 前端uniapp+H5 后端FastAdmin框架 可打包成APP多端运行 亲测可用
33 13
|
9天前
|
JSON 供应链 搜索推荐
某东API接口:开启电商数据交互与功能调用的新篇章
在当今的数字化时代,电商平台的开放API(Application Programming Interface,应用程序编程接口)已经成为连接开发者与电商平台之间的重要桥梁。京东作为中国领先的电商平台之一,其开放平台提供的API接口更是为开发者们带来了无限可能。本文将深入探讨京东API接口的功能、应用场景、使用流程以及其在电商领域的重要价值。
|
存储 区块链 数据库
多链钱包质押模式系统开发指南与细节
通俗来说,所谓去中心化,其实是分布式成长的结果。
|
数据挖掘
直播平台源码开发,信息收发功能搭建
信息发送消息实现代码 import java.util.ArrayList; import java.util.List; 信息接收消息实现代码 public void receiveMessage() { System.out.println("接收消息:");
直播平台源码开发,信息收发功能搭建
直播网站源码社区功能部署开发:连接世界的互动形式!
直播网站源码社区功能如何去实现from flask import Flask, request app = Flask(__name__) posts = [] @app.route('/post', methods=['POST'])
直播网站源码社区功能部署开发:连接世界的互动形式!
|
前端开发 测试技术 数据库
互助盘系统(海外版)点对点交易模式开发搭建部署
互助盘系统(海外版)点对点交易模式开发搭建部署
|
缓存 安全 API
网络平台挑选实名制认证API接口的注意事项
网络平台实名制认证是对用户真实性身份进行的一种查验审核,有助于建立完善可靠的互联网信用基础。对于网络平台运营者来说,身份实名认证除了符合工信部监管政策外,也可以帮助平台方筛选掉部分无效客户,规避一定的风险,净化网络环境。
352 0
网络平台挑选实名制认证API接口的注意事项
|
移动开发
秒懂云通信:号码认证H5 JSSDK版本全新上线
云通信号码认证可以一键加速改善APP用户登录体验,已经成为当下很多APP的主流选择。阿里云号码认证服务H5 JSSDK版本全新上线,可以在手机打开数据流量的情况下,校验用户输入H5页面的手机号码跟当前手机SIM流量卡是否一致,确保输入手机号为机主本人,免输入短信验证码,提升用户体验和注册转化。
1137 0
秒懂云通信:号码认证H5 JSSDK版本全新上线
|
小程序 安全 数据安全/隐私保护
带你读《中老年人学智能手机应用全攻略》之三:学会微信的常用功能
本书根据中老年人的学习特点,采用图文解说的形式进行讲解,清晰明了,并提供全程语音教学视频,非常适合想要用好智能手机的中老年人阅读。