应客户需求,今天来研究下tiktok的一些算法风控和视频播放量检测的问题。以安卓版为例,这里我们用的是tiktok 25.9.4的较新版本
一、抓包预准备
抓包对于绝大多数海外tt玩家是一件比较头疼的事。android的,网络通信协议绕不过去,好不容易xposed能搞定的绕过去了,发现手机参数搞不定,不展示大陆区内容,直接黑屏。ios的改改手机参数倒是能用,然鹅,新系统新版本一律不让抓包。
对此,笔者提供2个目前来看最完美的解决方案“思路”,android的so魔改和ios的升级策略,可以避开国区检测,也可以避开通讯协议检测。so魔改涉及的东西太多,包括jada逆向、ida反编译、adb操作。大致跟各位分享下过程:
android:使用重编译的apk,加上修改的libsscronet.so,可完美避开检测和断网
ios:登录账号后,升级ipa的策略对于抓包来说,可直接通过缓存证书无视网络检测
二、抓包进行时
1、风控算法
(1)设备注册算法
跟国内某音的设备算法不一样。某音再某些接口对设备的要求极高,得正确加密register接口+点击确认接口+活动范库接口+日志或者监控接口+配置接口+激活策略之一,才能做一些比较高端的操作(播放、点赞、关注等,采集之类的接口可仅保留头尾策略即可),而tiktok相对简洁,只需要正确加密register接口+mac绑定+google频道绑定+激活策略之一即可,相比流程少了很多
{
'device_id': 7165349508607477253,
'install_id': 7165350779095746309
}
(2)加密算法
早期的加密算法只有x-gorgon和x-khronos两个核心参数,新版本加上了x-argus和x-ladon,并且在jadx里面通过关键字已经无法定位到算法入口了。对于绝大部分的接口,其实可以不需要这两个参数,比如feed、视频post、search等,但是user、stats、follow、digg之类的是需要新的加密参数的
{
'x-gorgon': '0404009200006554a694efece28b9e104bd2b035e5534edb1039',
'x-khronos': '1668316731',
'x-ladon': '3ZUzVd9TsVZQCYAqzNTkcjcz/7VFZsvgPfl/euzI2zqogVdX',
'x-argus': 'Sk1EW3Y8M+z+iSOS1j3+TvvcbwKOpgxMksDXdntgvzV6bNlX77GQhPewX1FqhUb/ufeSl8IEvSUe1GkRYiwXyPVaWbmMSL0rYcWuIL+3gHV0J2SPjhLBQsG8qlDwn8CHBWbrS5ensYnQw0n3wTVcX65g9M0tQnTSTpZRcJa+JL5lRxQx5ru2IHpaA0Be39O5ZNLqxKayJQ2j7DOfhrXMSI/kIk/xWDQUw9HKEzLcQIi+5eIV8g2lhu9UCsd8+gklnA2sgcJk167lREK0laBMVV0h'
}
{
"log_pb": {
"impr_id": "202211130520592109A770F334650DD710"
},
"status_code": 0,
"user": {
"ad_virtual": false,
"avatar_medium": {
"url_list": [
"https://p16-sign-sg.tiktokcdn.com/tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2~tplv-tiktok-shrink:282:282.jpeg?x-expires\u003d1668337200\u0026x-signature\u003dB3vl0lpZN0Dh5JpXH2VHAC2Upbs%3D\u0026s\u003dPACK_GO_API\u0026se\u003dfalse\u0026sh\u003d282_282\u0026sc\u003davatar\u0026l\u003d202211130520592109A77