当前位置:   article > 正文

抖音X-GorgonXgorgon等参数在线生成_x-ss-stub

x-ss-stub

概述

抖音版本里面加了好几个算法,有as,cp(早期就这两个),mas,X-Gorgon,X-SS-STUB,X-Khronos算法,很多关键key之间有相互关联,只要有一个环节算错了,就会请求不到数据。目前版本的抖音加了很多的验证,及代码混淆,难度偏大。

初探

抖音的签名算法在libcms.so中,在JNI_Onload中动态注册jni函数。
算法用ollvm混淆了,主要是流程平坦化,流程混淆和运算替换
主要用到一些逆向工具IDA,Xposed框架

研究

8.0版本之后的算法主要是X-Gorgon和X-SS-STUB.之后经过抓包抖音接口,查看Java层,so层代码,分析如下原理。

  • X-SS-STUB是post请求时body部分的md5值,但是在为空的情况下,有时候不参与加密,有时候参与加密,具体接口需要具体分析
  • X-Khronos比较简单就是一个unix时间戳
  • X-Gorgon是对cookie,X-SS-STUB,X-Khronos,Url进行混合加密之后的参数。这里也区分情况,有些接口只有url和X-Khronos参与接口加密,有些是url,X-Khronos,X-SS-STUB参与接口加密,有些则是所有都进行接口加密。具体接口具体分析

使用

具体使用方法为

http://47.97.157.144:8090/api/douyin/getSign

请先分析抖音接口影响因子,有的是cookie+form+url 有的是form+url,有的只是url,根据影响不同,传入参数也不同,如果没有影响,那么对应的参数要填空,否则拿来请求会不通过

  • HEADERS
    Content-Typeapplication/x-www-form-urlencoded
  • METHOD
    post
  • 参数
    • api_token:d63cbf0daffb92fc7b161f4b32b07fec
      充值后给的api_token

    • url:https://ib.snssdk.com/service/1/app_notice_status/?ac=WIFI&iid=90589159330&device_id=69611166288&os_api=18&app_name=aweme&channel=App%20Store&idfa=F39847A9-464E-4073-AE50-54595BA2A49C&device_platform=iphone&build_number=83101&vid=8B66FDBE-9CC1-46C0-B1C3-7423B51CA782&openudid=921adae173f64b4f15e0517c3ea0d976308c014e&device_type=iPhone7,2&app_version=8.3.1&js_sdk_version=1.32.2.1&version_code=8.3.1&os_version=12.4.2&screen_width=750&aid=1128&mcc_mnc=46007
      对方接口完整url,url中参数有转义字符需要先转义,比如空格转义为%20

    • form:aid=1128&app_name=aweme&device_id=69611166288&ext=%7B%0A%20%20%22alert_setting%22%20%3A%20%22enabled%22%2C%0A%20%20%22alert_style%22%20%3A%20%22banner%22%2C%0A%20%20%22notification_center_setting%22%20%3A%20%22enabled%22%2C%0A%20%20%22lock_screen_setting%22%20%3A%20%22enabled%22%2C%0A%20%20%22show_prviews_setting%22%20%3A%20%22always%22%2C%0A%20%20%22authorization_status%22%20%3A%20%22authorized%22%2C%0A%20%20%22badge_setting%22%20%3A%20%22enabled%22%2C%0A%20%20%22sound_setting%22%20%3A%20%22enabled%22%2C%0A%20%20%22push_status_level%22%20%3A%20%22defalut%22%0A%7D&install_id=90589159330&notice=0&system_notify_status=1
      post请求时的form字符串,就是body部分。参数有转义字符需要先转义,比如空格转义为%20;如果不影响,则填空字符串,接口为请求类型为get时基本都为空

    • needStub:
      大多数情况这个不需要设置。这个是X-Ss-Stub的生成规则之一,X-Ss-Stub跟form有关。默认情况下如果form为空,X-Ss-Stub就为空。但是部分接口即使form为空,X-Ss-Stub也是有值的,也参与X-Gorgon的计算,对于这类接口,needStub必须设置为1,否则会计算错误

  • 返回值
	{
  "code": 0,
  "data": {
    "X-Gorgon": "03543b6b00006a1f1295c4c2aba99b2d65a17890d4c4426c6fdf",
    "X-Khronos": "1578030422",
    "X-Ss-Stub": "930E4250D4DA4AAA9CA3647F64CD97E0"
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
{
  "code": 401,
  "msg": "api_token不存在"
}
  • 1
  • 2
  • 3
  • 4

若因使用本服务与抖音官方造成不必要的纠纷,本人盖不负责
此贴存粹技术爱好,若侵犯其他公司权益,请告知

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/133265
推荐阅读
相关标签
  

闽ICP备14008679号