吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 17848|回复: 85
收起左侧

[Android 原创] 关于tiktok(抖音)的注册协议的分析

  [复制链接]
qiucx 发表于 2021-5-5 23:46
本帖最后由 qiucx 于 2021-6-6 22:17 编辑

1. 首先是发送验证码:

"https://api16-normal-c-alisg.tiktokv.com/passport/mobile/send_code/v1/?passport-sdk-version=17&os_api=22&device_type=OPPO+R9m&ssmix=a&manifest_version_code=2021705050&dpi=480&uoo=1®ion=US&app_name=musical_ly&version_name=17.5.5&timezone_offset=28800&ts=1619101443&ab_version=17.5.5&residence=US&pass-route=1&cpu_support64=true&pass-region=1¤t_region=US&storage_type=0&ac2=wifi&app_type=normal&ac=wifi&host_abi=armeabi-v7a&update_version_code=2021705050&channel=googleplay&_rticket=1619101443703&device_platform=android&iid=6950565326678279942&build_number=17.5.5&locale=en&op_region=US&version_code=170505&timezone_name=Asia%2FShanghai&cdid=a6d131ba-934f-436a-9fe9-ef851658d8fc&openudid=5607690bd12d555e&sys_region=US&device_id=6950565064088782341&app_language=en&resolution=1080*1920&os_version=5.1&language=zh-Hans&device_brand=OPPO&aid=123"

带的参数是:
payload={'mix_mode': '1',
'multi_login': '1',
'unbind_exist': '35',
'mobile': encode(mobile),
'auto_read': '0',
'account_sdk_source': 'app',
'check_register': '0',
'type': '3731'}

关键的数据都在cookie里,其中重要的是 x-ss-stub,主要md5操作。
xSsStubEncode('mix_mode=1&multi_login=1&unbind_exist=35&mobile='+encode(mobile)+'&auto_read=0&account_sdk_source=app&check_register=0&type=3731')
[Python] 纯文本查看 复制代码
def xSsStubEncode( bArr):
    m = hashlib.md5()
    m.update(bArr.encode('utf-8'))
    md = m.digest()
    return xSsStubEncodeHex(md,'0123456789ABCDEF')
  
def xSsStubEncodeHex(bArr,cArr):
    length = len(bArr)
    cArr2 = [''] * (length << 1)
    i2 = 0
    for i3 in range(0, length):
        i4 = i2 + 1
        cArr2[i2] = cArr[unsigned_right_shitf(bArr[i3] & 240, 4)]
        i2 = i4 + 1
        cArr2[i4] = cArr[bArr[i3] & 15]
      
    return ''.join(cArr2[0:])


[Python] 纯文本查看 复制代码
def encode(str):
    try:
        bytessstr = bytes(str, encoding = "utf8") 
        bytess=[]
        for c in bytessstr:
            bytess.append(c ^ 5)
        i3 = len(bytess) * 2
        i4 = 0
        cArr=['']*100
        for bb in bytess:
            b = (bb & 255)
            i6 = i4 + 1
            cArr2 ='0123456789abcdef'
            cArr[i4] = cArr2[b >> 4]
            i4 = i6 + 1
            cArr[i6] = cArr2[b & 15]
        return ''.join(cArr[0:i3])
    except:
        print('the encode string is unrecoganized - ' + str)

  'x-gorgon'和 'x-khronos'根据协议版本计算,主要是对url,x-ss-stub,cookie数据进行加密。

#########################################################开始短信登录第一步######################################################
xsub2 = xSsStubEncode('account_sdk_source=app&mix_mode=1&multi_login=1&mobile='+encode(mobile)+'&code=' + encode('收到的验证码'))
headers['x-ss-stub'] = xsub2

smsLoginOnlyUrl = "https://api19-normal-c-alisg.tiktokv.com/passport/mobile/sms_login_only/?passport-sdk-version=17&os_api=22&device_type=OPPO+R9m&ssmix=a&manifest_version_code=2021705050&dpi=480&uoo=1&#174;ion=US&app_name=musical_ly&version_name=17.5.5&timezone_offset=28800&ts=1619267633&ab_version=17.5.5&residence=US&pass-route=1&cpu_support64=true&pass-region=1¤t_region=US&storage_type=0&ac2=wifi&app_type=normal&ac=wifi&host_abi=armeabi-v7a&update_version_code=2021705050&channel=googleplay&_rticket=1619267634930&device_platform=android&iid=6950565326678279942&build_number=17.5.5&locale=en&op_region=US&version_code=170505&timezone_name=Asia%2FShanghai&cdid=a6d131ba-934f-436a-9fe9-ef851658d8fc&openudid=5607690bd12d555e&sys_region=US&device_id=6950565064088782341&app_language=en&resolution=1080*1920&os_version=5.1&language=zh-Hans&device_brand=OPPO&aid=1233";

获取 sms_code_key 数据。

###################################################  开始短信登录第二步 - login continue   ####################################################
xsub3 = xSsStubEncode('account_sdk_source=app&mix_mode=1&multi_login=1&mobile=' + encode(mobile) + '&sms_code_key=' + encode(sms_code_key))
headers['x-ss-stub'] = xsub3

smsLoginContinueUrl = "https://api19-normal-c-alisg.tiktokv.com/passport/mobile/sms_login_continue/?passport-sdk-version=17&os_api=22&device_type=OPPO+R9m&ssmix=a&manifest_version_code=2021705050&dpi=480&uoo=1&#174;ion=US&app_name=musical_ly&version_name=17.5.5&timezone_offset=28800&ts=1619267634&ab_version=17.5.5&residence=US&pass-route=1&cpu_support64=true&pass-region=1¤t_region=US&storage_type=0&ac2=wifi&app_type=normal&ac=wifi&host_abi=armeabi-v7a&update_version_code=2021705050&channel=googleplay&_rticket=1619267635904&device_platform=android&iid=6950565326678279942&build_number=17.5.5&locale=en&op_region=US&version_code=170505&timezone_name=Asia%2FShanghai&cdid=a6d131ba-934f-436a-9fe9-ef851658d8fc&openudid=5607690bd12d555e&sys_region=US&device_id=6950565064088782341&app_language=en&resolution=1080*1920&os_version=5.1&language=zh-Hans&device_brand=OPPO&aid=1233";

#############################################set password########################################################
xsub4 = xSsStubEncode('mix_mode=1&multi_login=1&password=' + encode(mobile) + '&account_sdk_source=app')
headers['x-ss-stub'] = xsub4

setPasswordUrl = "https://api19-normal-c-alisg.tiktokv.com/passport/password/set/?passport-sdk-version=17&os_api=22&device_type=OPPO+R9m&ssmix=a&manifest_version_code=2021705050&dpi=480&uoo=1&#174;ion=CN&app_name=musical_ly&version_name=17.5.5&timezone_offset=28800&ts=1619267652&ab_version=17.5.5&residence=CN&pass-route=1&cpu_support64=true&pass-region=1¤t_region=CN&storage_type=0&ac2=wifi&app_type=normal&ac=wifi&host_abi=armeabi-v7a&update_version_code=2021705050&channel=googleplay&_rticket=1619267653839&device_platform=android&iid=6950565326678279942&build_number=17.5.5&locale=en&op_region=CN&version_code=170505&timezone_name=Asia%2FShanghai&cdid=a6d131ba-934f-436a-9fe9-ef851658d8fc&openudid=5607690bd12d555e&sys_region=CN&device_id=6950565064088782341&app_language=en&resolution=1080*1920&os_version=5.1&language=zh-Hans&device_brand=OPPO&aid=1233";

#############################################set login name########################################################
xsub5 = xSsStubEncode('login_name=qiucx0161')
headers['x-ss-stub'] = xsub5

setLoginNameUrl = "https://api19-normal-c-alisg.tiktokv.com/passport/login_name/register/?os_api=22&device_type=OPPO+R9m&ssmix=a&manifest_version_code=2021705050&dpi=480&uoo=1&#174;ion=CN&app_name=musical_ly&version_name=17.5.5&timezone_offset=28800&ts=1619267668&ab_version=17.5.5&residence=CN&pass-route=1&cpu_support64=true&pass-region=1¤t_region=CN&storage_type=0&ac2=wifi&app_type=normal&ac=wifi&host_abi=armeabi-v7a&update_version_code=2021705050&channel=googleplay&_rticket=1619267669849&device_platform=android&iid=6950565326678279942&build_number=17.5.5&locale=en&op_region=CN&version_code=170505&timezone_name=Asia%2FShanghai&cdid=a6d131ba-934f-436a-9fe9-ef851658d8fc&openudid=5607690bd12d555e&sys_region=CN&device_id=6950565064088782341&app_language=en&resolution=1080*1920&os_version=5.1&language=zh-Hans&device_brand=OPPO&aid=1233";

所有的请求中,都会要求计算 'x-gorgon'和 'x-khronos',关于这个网上有很多解法,就不重复。
TT的核心算法就那么多,掌握上面内容后,可以实现tiktok的完全自主操作,关注大V,获取大v粉丝,关注粉丝,发送消息给粉丝,引流。
另外,TT给朋友发送消息的时候,会把消息打包成protobuf格式,比如以下是charles解析出来的protobuf text,请教一下自己的py程序,要怎么样才能构造出这样的结构,然后发送给服务器。https://www.yuanrenxue.com/app-crawl/parse-protobuf.html  不太清楚怎么跟服务器交互。。。万望了解的朋友指点。



1: 2016
2: 268550
3: "4.0.6.0.44"
4: "03fed6b99a65beab245ffe7227bbfca624013f1871a75d81be8e5d3f3d7c8655e7e546d7af30f5af099005ef9279cc75df1a241cf3e579d0847cc03343b24a67645c39b6a9c98f30085baf87d7d7b7dbe7422-1.0.0"
5: 1
6: 0
7: "4060"
8 {
  2016 {
    1 {
      1: 0
      2: "send_msg_by_ws"
      3: 1
    }
  }
}
9: "6967858592842679813"
10: "googleplay"
11: "android"
12: "MI 8"
13: "10"
14: "2021705050"
15 {
  1: "iid"
  2: "6967858732471699205"
}
15 {
  1: "aid"
  2: "1233"
}
15 {
  1: "user-agent"
  2: "okhttp/3.10.0.1"
}

免费评分

参与人数 15吾爱币 +12 热心值 +11 收起 理由
ruanjiandiguo + 1 + 1 谢谢@Thanks!
miner123 + 1 热心回复!
cyc536 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
v1331v + 1 + 1 大佬就是吊大
可乐翔 + 1 我很赞同!
求我别用冰块 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
开心的一逼 + 1 + 1 我很赞同!
LuciusQuinto + 1 + 1 &amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=
onlyclxy + 1 + 1 用心讨论,共获提升!
黑狐狸的口哨 + 1 我很赞同!很好!
Maise + 1 我很赞同!
爱你小吉君 + 1 热心回复!
2286624681 + 1 + 1 热心回复!
laingwei1024 + 1 + 1 用心讨论,共获提升!
大力柠檬 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

52896009 发表于 2021-5-6 08:25
分析的头头是道,很好,我也来分析个,
GetCode(Phone)//获取验证码
Register(Phone,Code)//注册

简单明了

免费评分

参与人数 2吾爱币 +3 热心值 +1 收起 理由
ffggddss + 1 缺一步发送验证码...
ermao + 2 + 1 我很赞同!

查看全部评分

行云丶尘伤 发表于 2021-5-6 09:49
52896009 发表于 2021-5-6 08:25
分析的头头是道,很好,我也来分析个,
GetCode(Phone)//获取验证码
Register(Phone,Code)//注册

。。那网易邮箱呢
Clearloveu 发表于 2021-5-6 00:01
jimo 发表于 2021-5-6 00:04
排版不太好,不容易看懂。
lingyinGR 发表于 2021-5-6 00:11
看不太明白
Eapoul 发表于 2021-5-6 00:27
牛人  真厉害
xxxt 发表于 2021-5-6 00:39
哦哦是安卓端的
travishua 发表于 2021-5-6 01:19
基本看不懂 哈哈哈哈哈
Eleven_ 发表于 2021-5-6 03:38
是不是排个版 会不会好看一点
ThalesSingapore 发表于 2021-5-6 04:58
怎么用?
ysy2001 发表于 2021-5-6 06:55
基本看不懂 哈哈哈
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-25 18:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表