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验签源码,即可获取下载链接。

目录
相关文章
|
数据挖掘
直播平台源码开发,信息收发功能搭建
信息发送消息实现代码 import java.util.ArrayList; import java.util.List; 信息接收消息实现代码 public void receiveMessage() { System.out.println("接收消息:");
直播平台源码开发,信息收发功能搭建
|
缓存 数据处理
海思3559万能平台搭建:协议的采集和解析
海思3559万能平台搭建:协议的采集和解析
175 0
海思3559万能平台搭建:协议的采集和解析
|
新零售 人工智能 算法
币安链BSC盲盒游戏开发正式版丨币安链BSC盲盒游戏系统开发(逻辑及方案)丨币安链BSC盲盒游戏源码及案例
  新零售,即个人、企业以互联网为依托,通过运用大数据、人工智能等先进技术手段,对商品的生产、流通与销售过程进行升级改造,进而重塑业态结构与生态圈,并对线上服务、线下体验以及现代物流进行深度融合的零售新模式。
|
人工智能 前端开发 大数据
BSC链盲盒游戏系统开发(开发详细)丨BSC链盲盒游戏源码开发
New retail refers to a new retail model in which individuals and enterprises,relying on the Internet,upgrade and transform the production,circulation and sales process of goods by using advanced technical means such as big data,artificial intelligence and psychological knowledge,thereby reshaping th
|
人工智能 安全 Ubuntu
DataTransmission:免费薅羊毛,Are you kidding me? 镭速传输 “百日计划”提前大曝光!Raysync传输协议要开放?
DataTransmission:免费薅羊毛,Are you kidding me? 镭速传输 “百日计划”提前大曝光!Raysync传输协议要开放?
DataTransmission:免费薅羊毛,Are you kidding me? 镭速传输 “百日计划”提前大曝光!Raysync传输协议要开放?
|
安全 搜索推荐
秒懂云通信:如何用阿里云平台发短信?
手把手教你如何用阿里云平台发短信,超详细控制台步骤解析,快速上手!更有1650元短信体验代金券和免费试用,点击速抢!
3989 0
秒懂云通信:如何用阿里云平台发短信?
|
移动开发
秒懂云通信:号码认证H5 JSSDK版本全新上线
云通信号码认证可以一键加速改善APP用户登录体验,已经成为当下很多APP的主流选择。阿里云号码认证服务H5 JSSDK版本全新上线,可以在手机打开数据流量的情况下,校验用户输入H5页面的手机号码跟当前手机SIM流量卡是否一致,确保输入手机号为机主本人,免输入短信验证码,提升用户体验和注册转化。
1137 0
秒懂云通信:号码认证H5 JSSDK版本全新上线
|
开发工具
告诉你制作直播平台都需要什么硬件和软件的干货文
告诉你制作直播平台都需要什么硬件和软件的干货文
|
安全 关系型数据库 数据库
云端资源,“掌”握手中 ——关于 阿里云 App你不知道的五件事
如果购买过阿里云的产品,亦或是关注着云计算的发展,那么你应该听说过阿里云官方推出的这款移动端应用 —— “阿里云 App”,它是云厂商中较早推出的移动端应用,功能较其他云厂商的移动端应用更为丰富。通过关注核心操作场景,阿里云 App 让用户能随时掌握自己云端资源的状况,接收报警后也可第一时间紧急处理止损,云端资源,掌握手中。
5463 0