首页
社区
课程
招聘
[原创]unidbg直接调用tiktok so生成签名
发表于: 2025-2-18 17:58 16094

[原创]unidbg直接调用tiktok so生成签名

2025-2-18 17:58
16094

Tiktok版本: 33.2.5 (24年1月25日)
1、前言
通过对Tiktok抓包发现TikTok的所有http请求的头部增加了参数签名(x-argus、x-goron、x-khronos、x-ladon):

图片描述

2、获取关键函数
直接将apk文件用jadx工具反编译,搜索关键字x-argus等,未搜索到任何关键字:
图片描述

使用frida hook java层 Header对象的构造方法,发现有监控到https请求头设置,但是始终没有发现签名字段

接着尝试hook interceptor拦截器,打印出请求头部,结果输出的请求头部中还是没有签名字段

Java层找了一遍始终找不到签名关键字符串,那很大可能是在native层设置,在native层在 https请求发出时进行设置。TikTok使用 cronet网络库 。将libsscronet拖IDA反编译,搜索 x-gorfon 关键字,确实找到了:
图片描述

结合 cronet源码,找到Native层设置请求Header函数:

定位到该libsscronet中偏移为:0x2C44BC,HOOK该地址并打印出参数:

这次全部头部都可以看到了,完美!
图片描述

然后打印设置参数签名字段时的调用栈:

有两处调用,分别是 0x3a662c 和 0x2c4b78:
图片描述

分别对两处进行反编译分析,0x3a662c 更像是tiktok定制的设置相关header处,关键代码反编译:
图片描述

v128是从某个函数调用返回的结果,对该结果分割处理就得到了参数签名字段,因此用frida hook这里,然后输出调用时的两个参数查看
图片描述

直接对0x3A658C地址进行HOOK,并打印出x0和x1寄存器的值,同时打印出X23寄存器的值:

输出如下:

参数1是https请求的url,参数2看起来是https请求的header, X23的地址位于 libmetasec_ov.so模块的0x88ee0处。这样基本可以确定0x88ee0 是获取签名的关键函数。

对该函数HOOK并打印参数和返回值:

如上,确定无误,四个签名字段和值是一块返回,以行分割后分别设置在请求头中。

3、直接调用
废话不说了,直接上代码:

测试通过
图片描述

var Header = Java.use("X.2jn");
Header.$init.implementation = function(key, val) {
    console.log(key + " : " + val);
    this.$init(key, val);
}
var Header = Java.use("X.2jn");
Header.$init.implementation = function(key, val) {
    console.log(key + " : " + val);
    this.$init(key, val);
}
    //添加intercept
    var Request = Java.use("X.LGn");
    Request.LIZJ.implementation = function(intercept){
        var newObj = Java.cast(intercept, Java.use("java.lang.Object"));
        //console.log(newObj.getClass());
        var new_cls = newObj.getClass();
        var class_name = new_cls.getName();
  
        if(!mmp[class_name]) {
            mmp[class_name] = 1;
            var hook_class = Java.use(class_name);
            hook_class.intercept.implementation = function(tt){
                var res = this.intercept(tt);
/*              var rq = tt.request();
                console.log(rq.getUrl()); */
  
                var request = getFieldVal(res, "LIZ");
                //console.log(getFieldVal(request, "LIZ"));
                //console.log(getFieldVal(request, "LIZJ"));
                //console.log(getFieldVal(request, "LJI"));
                  
                var headers = getFieldVal(request, "LIZLLL");
                //console.log(headers);
                //console.log("----------------------------------------------------");
                return res;
            }
        }
  
        this.LIZJ(intercept);
    }
    //添加intercept
    var Request = Java.use("X.LGn");
    Request.LIZJ.implementation = function(intercept){
        var newObj = Java.cast(intercept, Java.use("java.lang.Object"));
        //console.log(newObj.getClass());
        var new_cls = newObj.getClass();
        var class_name = new_cls.getName();
  
        if(!mmp[class_name]) {
            mmp[class_name] = 1;
            var hook_class = Java.use(class_name);
            hook_class.intercept.implementation = function(tt){
                var res = this.intercept(tt);
/*              var rq = tt.request();
                console.log(rq.getUrl()); */
  
                var request = getFieldVal(res, "LIZ");
                //console.log(getFieldVal(request, "LIZ"));
                //console.log(getFieldVal(request, "LIZJ"));
                //console.log(getFieldVal(request, "LJI"));
                  
                var headers = getFieldVal(request, "LIZLLL");
                //console.log(headers);
                //console.log("----------------------------------------------------");
                return res;
            }
        }
  
        this.LIZJ(intercept);
    }
void HttpRequestHeaders::SetHeader(const base::StringPiece& key,
                                   const base::StringPiece& value) {
  DCHECK(HttpUtil::IsValidHeaderName(key.as_string()));
  // TODO(ricea): Revert this. See crbug.com/627398.
  CHECK(HttpUtil::IsValidHeaderValue(value.as_string()));
  HeaderVector::iterator it = FindHeader(key);
  if (it != headers_.end())
    it->value.assign(value.data(), value.size());
  else
    headers_.push_back(HeaderKeyValuePair(key, value));
}
void HttpRequestHeaders::SetHeader(const base::StringPiece& key,
                                   const base::StringPiece& value) {
  DCHECK(HttpUtil::IsValidHeaderName(key.as_string()));
  // TODO(ricea): Revert this. See crbug.com/627398.
  CHECK(HttpUtil::IsValidHeaderValue(value.as_string()));
  HeaderVector::iterator it = FindHeader(key);
  if (it != headers_.end())
    it->value.assign(value.data(), value.size());
  else
    headers_.push_back(HeaderKeyValuePair(key, value));
}
var SetHeaders = lib.base.add(0x2C44BC);
Interceptor.attach(SetHeaders, {
    onEnter: function (args) {
        var key = args[1].readPointer().readUtf8String();  //第一个属性是字符串的地址, 第二个属性长度
        var val = args[2].readPointer().readUtf8String();
        console.log(key + " : " + val);
    },
    onLeave: function (retval) {
          
    }
});
var SetHeaders = lib.base.add(0x2C44BC);
Interceptor.attach(SetHeaders, {
    onEnter: function (args) {
        var key = args[1].readPointer().readUtf8String();  //第一个属性是字符串的地址, 第二个属性长度
        var val = args[2].readPointer().readUtf8String();
        console.log(key + " : " + val);
    },
    onLeave: function (retval) {
          
    }
});
var SetHeaders = lib.base.add(0x2C44BC);
Interceptor.attach(SetHeaders, {
    onEnter: function (args) {
  
        var key = args[1].readPointer().readUtf8String();  //第一个属性是字符串的地址, 第二个属性长度
        var val = args[2].readPointer().readUtf8String();
        if(key.indexOf("X-Gorgon") !== -1) {
            console.log(key + " : " + val);
            console.log('SetHeaders called from:\n' + Thread.backtrace(this.context, Backtracer.ACCURATE).map(DebugSymbol.fromAddress).join('\n') + '\n');
            console.log("---------------------------end----------------------------------");
        }
    },
    onLeave: function (retval) {
          
    }
});
var SetHeaders = lib.base.add(0x2C44BC);
Interceptor.attach(SetHeaders, {
    onEnter: function (args) {
  
        var key = args[1].readPointer().readUtf8String();  //第一个属性是字符串的地址, 第二个属性长度
        var val = args[2].readPointer().readUtf8String();
        if(key.indexOf("X-Gorgon") !== -1) {
            console.log(key + " : " + val);
            console.log('SetHeaders called from:\n' + Thread.backtrace(this.context, Backtracer.ACCURATE).map(DebugSymbol.fromAddress).join('\n') + '\n');
            console.log("---------------------------end----------------------------------");
        }
    },
    onLeave: function (retval) {
          
    }
});
var test = lib.base.add(0x3A658C);
Interceptor.attach(test, {
    onEnter: function (args) {
        console.log(args[0].readUtf8String());
        console.log(args[1].readUtf8String());
        console.log("X23:" + this.context.x23);
    },
    onLeave: function (retval) {
          
    }
});
var test = lib.base.add(0x3A658C);
Interceptor.attach(test, {
    onEnter: function (args) {
        console.log(args[0].readUtf8String());
        console.log(args[1].readUtf8String());
        console.log("X23:" + this.context.x23);
    },
    onLeave: function (retval) {
          
    }
});
https://pitaya-ttp2.us.tiktokv.com/api/v2/pitaya/distribute
cookie
passport_csrf_token=5766c07398074a324465468bd4bab579; passport_csrf_token_default=5766c07398074a324465468bd4bab579; d_ticket=474b6c31b9b433d344ad9368558503f7c0b97; multi_sids=7158650562190427178%3A41a587d2b1bda3bdf9a41a6ad5e966dd; cmpl_token=AgQQAPNSF-RPsLNmTGWesB0T_9hlCYxU_4dFYNGQWw; sid_guard=41a587d2b1bda3bdf9a41a6ad5e966dd%7C1706690864%7C5183999%7CSun%2C+31-Mar-2024+08%3A47%3A43+GMT; uid_tt=7ea855d54c1e8757b958a57c70ae4460747f060968a2b87122b64b9885ef693c; uid_tt_ss=7ea855d54c1e8757b958a57c70ae4460747f060968a2b87122b64b9885ef693c; sid_tt=41a587d2b1bda3bdf9a41a6ad5e966dd; sessionid=41a587d2b1bda3bdf9a41a6ad5e966dd; sessionid_ss=41a587d2b1bda3bdf9a41a6ad5e966dd; store-idc=useast5; store-country-code=us; store-country-code-src=uid; tt-target-idc=useast5; tt-target-idc-sign=TTaFL_-1FbxEnf7WPS8zSLktQ9q_ifo6_mDz3Av0v8FRvfiClSjLH0kitsJa9NPbyFwN8SuqcgAf5RVQ_6pupKVUrkkLUROrihSkzo6xgNW-cni9Upf7Cb8L-lH6iXsKuLG9rjNatWULp7Q0ttS4Hru25ZA2_piENXsxaYc_89Z_ZgwyZhzLe4dXLBLDW4YtWrXAazxRLpNwkL_LQ8fnueZBRmZgJ0QNA3SyztUm9UnjDrqCZtTsTqrOS6zSxPoOfEL0UFxY12F5qPCgX84eh3_gifeiXxcmNkHZgPTNwSX0NOpTEw9kYLc9zOEWQ1IPMgXEgGZueXyYE-gHE7GfSrGZq41r_KC6qgb26LryHaXNg324JZbTPRBbz-AwRyHE0YeexTdtw260Yid1TDSUQx6jbHI7zDxMfCE9cJCPJye25D3Uj3hP7TsPt4bBkCt5jaHGdXvMIHeGDXSDfnhZy0HU64KS3Yh9sVNSA3nniaYgC4T2mekD3k4KvvmFIB74; install_id=7330181047176857374; ttreq=1$ef5245324d322906a97679c1d5607b943302a796; odin_tt=1aa7c920ceb63edc6557473a4e1787da2c6a470b275459df0bc31298c6923c6e66dc4673cf75b9373e546e2654bc598fda5ba22e95d91ceb33de9a5ebdeb90ff7c27f43f5e7825b5ba92ac9ea05f8932; msToken=7DDzVQRIMB7ctDaC0N7hcu7PbQ4dQmHhHa9Ggd1-kGq0ZuDkSXR3cxNzjfie5mEcNUksJSMEhiniITA8vwhqdOkXXJgm5tbe6-3Cf_ZdS8hSWMQBslxhNYshHyweLw==
x-vc-bdturing-sdk-version
2.3.5.i18n
x-bd-kmsv
0
x-tt-dm-status
login=1;ct=1;rt=1
x-ss-req-ticket
1707126766871
x-bd-client-key
#baXvVHqzV2VM8S1JcXbNUSdy2etUU3s95T2Yea6/0XO4pibZxVQ/PXaR09LfGTqLTlCPYtNGJ26+tkzb
pns_event_id
75
content-type
application/json; charset=utf-8
content-length
919
x-tt-store-region
us
x-tt-store-region-src
uid
x-ss-dp
1233
x-tt-trace-id
00-78af3eb21065b9fc3a23cbc6058a04d1-78af3eb21065b9fc-01
user-agent
com.zhiliaoapp.musically/2023302050 (Linux; U; Android 11; en; Mi 9T Pro; Build/RKQ1.200826.002; Cronet/TTNetVersion:996128d2 2024-01-12 QuicVersion:ce58f68a 2024-01-12)
accept-encoding
gzip, deflate, br
X23:0x790584aee0
https://pitaya-ttp2.us.tiktokv.com/api/v2/pitaya/distribute
cookie
passport_csrf_token=5766c07398074a324465468bd4bab579; passport_csrf_token_default=5766c07398074a324465468bd4bab579; d_ticket=474b6c31b9b433d344ad9368558503f7c0b97; multi_sids=7158650562190427178%3A41a587d2b1bda3bdf9a41a6ad5e966dd; cmpl_token=AgQQAPNSF-RPsLNmTGWesB0T_9hlCYxU_4dFYNGQWw; sid_guard=41a587d2b1bda3bdf9a41a6ad5e966dd%7C1706690864%7C5183999%7CSun%2C+31-Mar-2024+08%3A47%3A43+GMT; uid_tt=7ea855d54c1e8757b958a57c70ae4460747f060968a2b87122b64b9885ef693c; uid_tt_ss=7ea855d54c1e8757b958a57c70ae4460747f060968a2b87122b64b9885ef693c; sid_tt=41a587d2b1bda3bdf9a41a6ad5e966dd; sessionid=41a587d2b1bda3bdf9a41a6ad5e966dd; sessionid_ss=41a587d2b1bda3bdf9a41a6ad5e966dd; store-idc=useast5; store-country-code=us; store-country-code-src=uid; tt-target-idc=useast5; tt-target-idc-sign=TTaFL_-1FbxEnf7WPS8zSLktQ9q_ifo6_mDz3Av0v8FRvfiClSjLH0kitsJa9NPbyFwN8SuqcgAf5RVQ_6pupKVUrkkLUROrihSkzo6xgNW-cni9Upf7Cb8L-lH6iXsKuLG9rjNatWULp7Q0ttS4Hru25ZA2_piENXsxaYc_89Z_ZgwyZhzLe4dXLBLDW4YtWrXAazxRLpNwkL_LQ8fnueZBRmZgJ0QNA3SyztUm9UnjDrqCZtTsTqrOS6zSxPoOfEL0UFxY12F5qPCgX84eh3_gifeiXxcmNkHZgPTNwSX0NOpTEw9kYLc9zOEWQ1IPMgXEgGZueXyYE-gHE7GfSrGZq41r_KC6qgb26LryHaXNg324JZbTPRBbz-AwRyHE0YeexTdtw260Yid1TDSUQx6jbHI7zDxMfCE9cJCPJye25D3Uj3hP7TsPt4bBkCt5jaHGdXvMIHeGDXSDfnhZy0HU64KS3Yh9sVNSA3nniaYgC4T2mekD3k4KvvmFIB74; install_id=7330181047176857374; ttreq=1$ef5245324d322906a97679c1d5607b943302a796; odin_tt=1aa7c920ceb63edc6557473a4e1787da2c6a470b275459df0bc31298c6923c6e66dc4673cf75b9373e546e2654bc598fda5ba22e95d91ceb33de9a5ebdeb90ff7c27f43f5e7825b5ba92ac9ea05f8932; msToken=7DDzVQRIMB7ctDaC0N7hcu7PbQ4dQmHhHa9Ggd1-kGq0ZuDkSXR3cxNzjfie5mEcNUksJSMEhiniITA8vwhqdOkXXJgm5tbe6-3Cf_ZdS8hSWMQBslxhNYshHyweLw==
x-vc-bdturing-sdk-version
2.3.5.i18n
x-bd-kmsv
0
x-tt-dm-status
login=1;ct=1;rt=1
x-ss-req-ticket
1707126766871
x-bd-client-key
#baXvVHqzV2VM8S1JcXbNUSdy2etUU3s95T2Yea6/0XO4pibZxVQ/PXaR09LfGTqLTlCPYtNGJ26+tkzb
pns_event_id
75
content-type
application/json; charset=utf-8
content-length
919
x-tt-store-region
us
x-tt-store-region-src
uid
x-ss-dp
1233
x-tt-trace-id
00-78af3eb21065b9fc3a23cbc6058a04d1-78af3eb21065b9fc-01
user-agent
com.zhiliaoapp.musically/2023302050 (Linux; U; Android 11; en; Mi 9T Pro; Build/RKQ1.200826.002; Cronet/TTNetVersion:996128d2 2024-01-12 QuicVersion:ce58f68a 2024-01-12)
accept-encoding
gzip, deflate, br
X23:0x790584aee0
function waitForModule(moduleName) {
    return new Promise(resolve => {
        const interval = setInterval(() => {
            const module = Process.findModuleByName(moduleName);
            if (module != null) {
                clearInterval(interval);
                resolve(module);
            }
        }, 0);
    });
}
  
  
waitForModule("libmetasec_ov.so").then((lib) => {
    logger(`[*][+] Found libsscronet at: ${lib.base}`)
    hook_tt_get_sig(lib);
});
  
  
function hook_tt_get_sig(lib) {
    var get_sig = lib.base.add(0x88ee0);
    Interceptor.attach(get_sig, {
        onEnter: function (args) {
            console.log("arg0:" + args[0].readUtf8String());
            console.log("arg1:" + args[1].readUtf8String());
        },
        onLeave: function (retval) {
            console.log("retval: " + retval.readUtf8String());
        }
    });
}
function waitForModule(moduleName) {
    return new Promise(resolve => {
        const interval = setInterval(() => {
            const module = Process.findModuleByName(moduleName);
            if (module != null) {
                clearInterval(interval);
                resolve(module);
            }
        }, 0);
    });
}
  
  
waitForModule("libmetasec_ov.so").then((lib) => {
    logger(`[*][+] Found libsscronet at: ${lib.base}`)
    hook_tt_get_sig(lib);
});
  
  
function hook_tt_get_sig(lib) {
    var get_sig = lib.base.add(0x88ee0);
    Interceptor.attach(get_sig, {
        onEnter: function (args) {
            console.log("arg0:" + args[0].readUtf8String());
            console.log("arg1:" + args[1].readUtf8String());
        },
        onLeave: function (retval) {
            console.log("retval: " + retval.readUtf8String());
        }
    });
}
arg0:https://log16-normal-useast8.us.tiktokv.com/service/2/app_alert_check/?device_id=7330167195161052677&aid=1233&tt_info=dGMFEAAAcbZMj0j60zx0QZ36CmqwscC_mg_FI33giq8TCyxwgZ0k7cu5UKyTp1L9dV-LfNfW4lXh%0Ar0nUiGJiKZ3gDTrfQD3ReFJzPYPt0nAafGTrwTYpE-PyqOZoVMC5oDuJFBWuFqqya6HwUuGxN5yO%0AP49E6kSu1rM_1-xY36xXTYPC8gekr5bUXyHyfmxJnNIap0t8JqKQW72gWlmb7RGJWnEqALZSuTrS%0ATlIvTOFF4LzJrprGoRGAbUs0pqvYanBTbQfZ8c-8VUd8A1FOepNFvxnnbv6168SjPh9alAq0NGfz%0AgYkwcsVvqb5POQBKWMJskxct2mcizBAqpKVQsDteOKuuci_QYcniwyQ7B5AF-nQsWAhLmuJVb_ya%0A3a3Dt6701GKDFSB7ObdAdK7JU5xlLCeevWdvdXCWvtDURvMiB1lhnCTf2lF--_UEmTCx5TxkHDnK%0AJUYq36SEDO1I1K5dy9PDtJ4HhgpdraMbymScFDrVVZAdflINaUbBcXSGrbjyRrfGke4Zi0LivqZq%0A1cRpYWELr9AoDT48PziFXh6Bmj3CXGRJAa-d0XdNtyDvvik5PhCeqN8PTH1PwA6vv7VsqkpnLny0%0APtL34eTrw0ThDdJQGH3UTr9jVNixJZ4dMTLhu8MZJCaNpEgAoWhWOPErTN9O3YkOutVsDXiqgjIJ%0AG8lpRCK2LGWEIoZXa0qKBtzG0nvO52hs6XRFER6t6wSm1Ix2alR_SlxnzdMnqRxTdHkc_KU-QJ2d%0A_fThvP_9TseeU1T1T5miiLEOsrRqlYEmV_h48Zh-lPteWeMnGb-h4T4c_K6k8B6nWSUA3blq1M6J%0A7qW6dmcdhNpRfXP3WGsLa0D1XqUkPhhIS5Y6bd5N3yLxy_Q%3D%0A&iid=7330181047176857374&ac=wifi&channel=googleplay&app_name=musical_ly&version_code=330205&version_name=33.2.5&device_platform=android&os=android&ab_version=33.2.5&ssmix=a&device_type=Mi+9T+Pro&device_brand=Xiaomi&language=en&os_api=30&os_version=11&openudid=3e2d515cedf5f2b2&manifest_version_code=2023302050&resolution=1080*1920&dpi=480&update_version_code=2023302050&_rticket=1707127562679&is_pad=0&current_region=NZ&app_type=normal&sys_region=US&mcc_mnc=53028&timezone_name=Pacific%2FAuckland&residence=NZ&app_language=en&carrier_region=NZ&ac2=wifi5g&uoo=0&op_region=NZ&timezone_offset=43200&build_number=33.2.5&host_abi=arm64-v8a&locale=en&region=US&ts=1707127561&cdid=5c3ed0c6-8aaf-4018-9fb1-f7ada8bcea34&cronet_version=996128d2_2024-01-12&ttnet_version=4.2.137.48-tiktok&use_store_region_cookie=1
arg1:cookie
passport_csrf_token=5766c07398074a324465468bd4bab579; passport_csrf_token_default=5766c07398074a324465468bd4bab579; d_ticket=474b6c31b9b433d344ad9368558503f7c0b97; multi_sids=7158650562190427178%3A41a587d2b1bda3bdf9a41a6ad5e966dd; cmpl_token=AgQQAPNSF-RPsLNmTGWesB0T_9hlCYxU_4dFYNGQWw; sid_guard=41a587d2b1bda3bdf9a41a6ad5e966dd%7C1706690864%7C5183999%7CSun%2C+31-Mar-2024+08%3A47%3A43+GMT; uid_tt=7ea855d54c1e8757b958a57c70ae4460747f060968a2b87122b64b9885ef693c; uid_tt_ss=7ea855d54c1e8757b958a57c70ae4460747f060968a2b87122b64b9885ef693c; sid_tt=41a587d2b1bda3bdf9a41a6ad5e966dd; sessionid=41a587d2b1bda3bdf9a41a6ad5e966dd; sessionid_ss=41a587d2b1bda3bdf9a41a6ad5e966dd; store-idc=useast5; store-country-code=us; store-country-code-src=uid; tt-target-idc=useast5; tt-target-idc-sign=TTaFL_-1FbxEnf7WPS8zSLktQ9q_ifo6_mDz3Av0v8FRvfiClSjLH0kitsJa9NPbyFwN8SuqcgAf5RVQ_6pupKVUrkkLUROrihSkzo6xgNW-cni9Upf7Cb8L-lH6iXsKuLG9rjNatWULp7Q0ttS4Hru25ZA2_piENXsxaYc_89Z_ZgwyZhzLe4dXLBLDW4YtWrXAazxRLpNwkL_LQ8fnueZBRmZgJ0QNA3SyztUm9UnjDrqCZtTsTqrOS6zSxPoOfEL0UFxY12F5qPCgX84eh3_gifeiXxcmNkHZgPTNwSX0NOpTEw9kYLc9zOEWQ1IPMgXEgGZueXyYE-gHE7GfSrGZq41r_KC6qgb26LryHaXNg324JZbTPRBbz-AwRyHE0YeexTdtw260Yid1TDSUQx6jbHI7zDxMfCE9cJCPJye25D3Uj3hP7TsPt4bBkCt5jaHGdXvMIHeGDXSDfnhZy0HU64KS3Yh9sVNSA3nniaYgC4T2mekD3k4KvvmFIB74; install_id=7330181047176857374; ttreq=1$ef5245324d322906a97679c1d5607b943302a796; odin_tt=1aa7c920ceb63edc6557473a4e1787da2c6a470b275459df0bc31298c6923c6e66dc4673cf75b9373e546e2654bc598fda5ba22e95d91ceb33de9a5ebdeb90ff7c27f43f5e7825b5ba92ac9ea05f8932; msToken=KaEq98vvNTLCC9vvMJwobggElABP3DvaLMgNf9zMFpurwzHDGdnJbn7NJ53sdDQ6iyM_yaDcpgAxLQevASt6DqNlXZ7NNzYuOFnU6EHixIwVOy6KOhAVe2XkyGq47g==
x-tt-multi-sids
7158650562190427178%3A41a587d2b1bda3bdf9a41a6ad5e966dd
sdk-version
2
x-bd-kmsv
0
x-tt-dm-status
login=1;ct=1;rt=1
x-tt-token
0441a587d2b1bda3bdf9a41a6ad5e966dd041679e9cfeb96c72898bb183b8222bb1073d351793c1da7dca678b7cfc8c54af218b43f5dd2a4e0c8a71da5e1c2c8c45699afd524957260286c4b116e0df117c1c87de2a72c1faf791269c934718e8616e-1.0.1
x-ss-req-ticket
1707127562691
x-bd-client-key
#baXvVHqzV2VM8S1JcXbNUSdy2etUU3s95T2Yea6/0XO4pibZxVQ/PXaR09LfGTqLTlCPYtNGJ26+tkzb
multi_login
1
passport-sdk-version
19
pns_event_id
22
x-vc-bdturing-sdk-version
2.3.5.i18n
x-ss-dp
1233
x-tt-trace-id
00-78bb64b11065b9fc3a23cbc6055904d1-78bb64b11065b9fc-01
user-agent
com.zhiliaoapp.musically/2023302050 (Linux; U; Android 11; en; Mi 9T Pro; Build/RKQ1.200826.002; Cronet/TTNetVersion:996128d2 2024-01-12 QuicVersion:ce58f68a 2024-01-12)
accept-encoding
gzip, deflate, br
retval: X-Argus
DXfY6mO6hlrcmaQgpgzBwrXD6AJCuKss3FonR0C+ub/vtTBhj92rDuroEsi57jh6qUM04M1lRoxdSx2brJ7D+fkvjPnDFGwEbHLhGu8oR7wrdOU1TNIbzQoI+UMmLg8ySyqHEiFWG8l3XWHXbaJDgsmCZv1Zry2v9g0ORukQvDUfhxKgdBwPFAeQf8MxZDE4AuGzTWJ5QxZcIQUlGgAynnKqvPrzQiauq8xcD99TyYrrZVNfdBS5RsVfZZWTeI7dLjxMoV+grZVc9Bp7FViXJ7G4zIzkSvpEWMjI+fzUN3EClwzg+rcrCQOUZ1tsiREzOGnLoAAX91uXBq/QQ9xGy4/+9Vw7W5izejUj0lamUT0eoi5hLFDxKFtrqgRzRVd6ABu8Pc7hT0Bt/WKDpUKn7WTZB8S95kv9MnN3sEkfsX42s1lhAGlI+ZbC8J8d5xWaTKpkIItRm289PHZ9iiSqhz6q8fpwPBEAz3mrqJbrJsXP6Zub6iUZajGTNg9lc0urDbHJb3SvsOB3TsM4TMk83Kf1zTy9xcEL8ScQtWXMvdvi21lc1Mm3oAdFU+LXQ6zwekz4yzEMqaIfCqPTThehF/H0z9zlzz6CNCCJQTdDneTfiA==
X-Gorgon
8404203b0000114869cdb5ab8afdb91780878d0dc9ec86447c3f
X-Khronos
1707127563
X-Ladon
3iXZQdDtf+Q2E+rNj0dWBJ+O3XXJVszo5g4df4lQV1NNdQBz
arg0:https://log16-normal-useast8.us.tiktokv.com/service/2/app_alert_check/?device_id=7330167195161052677&aid=1233&tt_info=dGMFEAAAcbZMj0j60zx0QZ36CmqwscC_mg_FI33giq8TCyxwgZ0k7cu5UKyTp1L9dV-LfNfW4lXh%0Ar0nUiGJiKZ3gDTrfQD3ReFJzPYPt0nAafGTrwTYpE-PyqOZoVMC5oDuJFBWuFqqya6HwUuGxN5yO%0AP49E6kSu1rM_1-xY36xXTYPC8gekr5bUXyHyfmxJnNIap0t8JqKQW72gWlmb7RGJWnEqALZSuTrS%0ATlIvTOFF4LzJrprGoRGAbUs0pqvYanBTbQfZ8c-8VUd8A1FOepNFvxnnbv6168SjPh9alAq0NGfz%0AgYkwcsVvqb5POQBKWMJskxct2mcizBAqpKVQsDteOKuuci_QYcniwyQ7B5AF-nQsWAhLmuJVb_ya%0A3a3Dt6701GKDFSB7ObdAdK7JU5xlLCeevWdvdXCWvtDURvMiB1lhnCTf2lF--_UEmTCx5TxkHDnK%0AJUYq36SEDO1I1K5dy9PDtJ4HhgpdraMbymScFDrVVZAdflINaUbBcXSGrbjyRrfGke4Zi0LivqZq%0A1cRpYWELr9AoDT48PziFXh6Bmj3CXGRJAa-d0XdNtyDvvik5PhCeqN8PTH1PwA6vv7VsqkpnLny0%0APtL34eTrw0ThDdJQGH3UTr9jVNixJZ4dMTLhu8MZJCaNpEgAoWhWOPErTN9O3YkOutVsDXiqgjIJ%0AG8lpRCK2LGWEIoZXa0qKBtzG0nvO52hs6XRFER6t6wSm1Ix2alR_SlxnzdMnqRxTdHkc_KU-QJ2d%0A_fThvP_9TseeU1T1T5miiLEOsrRqlYEmV_h48Zh-lPteWeMnGb-h4T4c_K6k8B6nWSUA3blq1M6J%0A7qW6dmcdhNpRfXP3WGsLa0D1XqUkPhhIS5Y6bd5N3yLxy_Q%3D%0A&iid=7330181047176857374&ac=wifi&channel=googleplay&app_name=musical_ly&version_code=330205&version_name=33.2.5&device_platform=android&os=android&ab_version=33.2.5&ssmix=a&device_type=Mi+9T+Pro&device_brand=Xiaomi&language=en&os_api=30&os_version=11&openudid=3e2d515cedf5f2b2&manifest_version_code=2023302050&resolution=1080*1920&dpi=480&update_version_code=2023302050&_rticket=1707127562679&is_pad=0&current_region=NZ&app_type=normal&sys_region=US&mcc_mnc=53028&timezone_name=Pacific%2FAuckland&residence=NZ&app_language=en&carrier_region=NZ&ac2=wifi5g&uoo=0&op_region=NZ&timezone_offset=43200&build_number=33.2.5&host_abi=arm64-v8a&locale=en&region=US&ts=1707127561&cdid=5c3ed0c6-8aaf-4018-9fb1-f7ada8bcea34&cronet_version=996128d2_2024-01-12&ttnet_version=4.2.137.48-tiktok&use_store_region_cookie=1
arg1:cookie
passport_csrf_token=5766c07398074a324465468bd4bab579; passport_csrf_token_default=5766c07398074a324465468bd4bab579; d_ticket=474b6c31b9b433d344ad9368558503f7c0b97; multi_sids=7158650562190427178%3A41a587d2b1bda3bdf9a41a6ad5e966dd; cmpl_token=AgQQAPNSF-RPsLNmTGWesB0T_9hlCYxU_4dFYNGQWw; sid_guard=41a587d2b1bda3bdf9a41a6ad5e966dd%7C1706690864%7C5183999%7CSun%2C+31-Mar-2024+08%3A47%3A43+GMT; uid_tt=7ea855d54c1e8757b958a57c70ae4460747f060968a2b87122b64b9885ef693c; uid_tt_ss=7ea855d54c1e8757b958a57c70ae4460747f060968a2b87122b64b9885ef693c; sid_tt=41a587d2b1bda3bdf9a41a6ad5e966dd; sessionid=41a587d2b1bda3bdf9a41a6ad5e966dd; sessionid_ss=41a587d2b1bda3bdf9a41a6ad5e966dd; store-idc=useast5; store-country-code=us; store-country-code-src=uid; tt-target-idc=useast5; tt-target-idc-sign=TTaFL_-1FbxEnf7WPS8zSLktQ9q_ifo6_mDz3Av0v8FRvfiClSjLH0kitsJa9NPbyFwN8SuqcgAf5RVQ_6pupKVUrkkLUROrihSkzo6xgNW-cni9Upf7Cb8L-lH6iXsKuLG9rjNatWULp7Q0ttS4Hru25ZA2_piENXsxaYc_89Z_ZgwyZhzLe4dXLBLDW4YtWrXAazxRLpNwkL_LQ8fnueZBRmZgJ0QNA3SyztUm9UnjDrqCZtTsTqrOS6zSxPoOfEL0UFxY12F5qPCgX84eh3_gifeiXxcmNkHZgPTNwSX0NOpTEw9kYLc9zOEWQ1IPMgXEgGZueXyYE-gHE7GfSrGZq41r_KC6qgb26LryHaXNg324JZbTPRBbz-AwRyHE0YeexTdtw260Yid1TDSUQx6jbHI7zDxMfCE9cJCPJye25D3Uj3hP7TsPt4bBkCt5jaHGdXvMIHeGDXSDfnhZy0HU64KS3Yh9sVNSA3nniaYgC4T2mekD3k4KvvmFIB74; install_id=7330181047176857374; ttreq=1$ef5245324d322906a97679c1d5607b943302a796; odin_tt=1aa7c920ceb63edc6557473a4e1787da2c6a470b275459df0bc31298c6923c6e66dc4673cf75b9373e546e2654bc598fda5ba22e95d91ceb33de9a5ebdeb90ff7c27f43f5e7825b5ba92ac9ea05f8932; msToken=KaEq98vvNTLCC9vvMJwobggElABP3DvaLMgNf9zMFpurwzHDGdnJbn7NJ53sdDQ6iyM_yaDcpgAxLQevASt6DqNlXZ7NNzYuOFnU6EHixIwVOy6KOhAVe2XkyGq47g==
x-tt-multi-sids
7158650562190427178%3A41a587d2b1bda3bdf9a41a6ad5e966dd
sdk-version
2
x-bd-kmsv
0
x-tt-dm-status
login=1;ct=1;rt=1
x-tt-token
0441a587d2b1bda3bdf9a41a6ad5e966dd041679e9cfeb96c72898bb183b8222bb1073d351793c1da7dca678b7cfc8c54af218b43f5dd2a4e0c8a71da5e1c2c8c45699afd524957260286c4b116e0df117c1c87de2a72c1faf791269c934718e8616e-1.0.1
x-ss-req-ticket
1707127562691
x-bd-client-key
#baXvVHqzV2VM8S1JcXbNUSdy2etUU3s95T2Yea6/0XO4pibZxVQ/PXaR09LfGTqLTlCPYtNGJ26+tkzb

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 350
支持
分享
最新回复 (312)
雪    币: 6
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2025-2-18 18:05
0
雪    币: 5
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
感谢楼主
2025-2-18 18:19
0
雪    币: 204
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
感谢分享
2025-2-18 18:20
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
感谢楼主
2025-2-18 18:21
0
雪    币: 230
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
感谢分享
2025-2-18 18:21
0
雪    币: 253
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
感谢分享
2025-2-18 18:21
0
雪    币: 15
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
666
2025-2-18 18:23
1
雪    币: 7003
活跃值: (7532)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
牛逼
2025-2-18 18:41
0
雪    币: 363
活跃值: (2453)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
666
2025-2-18 19:41
0
雪    币: 204
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11

最后于 2025-2-18 21:20 被mb_tkrgetye编辑 ,原因: 已经解决
2025-2-18 20:16
0
雪    币: 116
活跃值: (2758)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
膜拜大佬
2025-2-18 20:33
0
雪    币: 721
活跃值: (1462)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
111
2025-2-18 20:38
0
雪    币: 740
活跃值: (5868)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
14
1
2025-2-18 20:42
0
雪    币: 87
活跃值: (667)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
1
2025-2-18 20:48
0
雪    币: 541
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
1
2025-2-18 22:13
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
1
2025-2-18 22:15
0
雪    币: 226
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
牛逼
2025-2-18 22:15
0
雪    币: 3065
活跃值: (4422)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
19
火钳刘明
2025-2-18 22:18
0
雪    币: 220
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
20
牛逼
2025-2-18 22:18
0
雪    币: 910
活跃值: (1498)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
学习学习
2025-2-18 22:22
0
雪    币: 31
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
非常好
2025-2-18 22:27
0
雪    币: 1837
活跃值: (3680)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
666
2025-2-18 22:34
0
雪    币: 544
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
24
666
2025-2-18 22:36
0
雪    币: 70
活跃值: (731)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
666
2025-2-18 22:47
4
游客
登录 | 注册 方可回帖
返回