TT设备注册激活

本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除!

抓包

TT的设备需要先注册,注册成功后在激活。

注册:https://log-boot.tiktokv.com/service/2/device_register

激活:https://log-boot.tiktokv.com/service/2/app_alert_check

注册

先看看网上的大佬们是怎么解决的。某音系tiktok设备注册-阿里云开发者社区。还真找的到。

根据文章知道他是在java层使用GZIP进行压缩,然后调用so层的ttEncrypt进行加密的,新版本你很难使用文章的方式找到加密位置,既然我们提前知道了他是GZIP压缩的那就hook下GZIP的wirte方法,同时打印下调用堆栈就行。

代码
function main() {
    Java.perform(function () {
        var DeflaterOutputStream = Java.use('java.util.zip.DeflaterOutputStream');
        var writeMethod = DeflaterOutputStream.write.overload('[B', 'int', 'int');
        var originalWrite = writeMethod.implementation;
        var java_str = Java.use('java.lang.String');
        writeMethod.implementation = function (bArr, offset, length) {
            console.log("\n[+] GZIPOutputStream.write called");
            let data = java_str.$new(bArr)
            if (data.indexOf("ss_app_log") !== -1) {
                console.log("[+] Data: " + data);
                console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new()));
            }
        };
        console.log("[*] DeflaterOutputStream.write hooked successfully!");
    });
}

setImmediate(main);

LIZIZ就是调用的地方了

LIZ就是so层加密方法了,和文章里写的一样

总结:参数模拟下,搞出X-Khronos,X-Gorgon,X-SS-STUB,请求data就好

激活

注册完之后就是激活了,激活比注册简单多了,参数模拟下即可。

激活请求里有个tt_info的参数,在java层搜索

hook下知道参数
function main() {
    Java.perform(function () {
        let C136552k4h = Java.use("X.k4h");
        C136552k4h["LIZLLL"].implementation = function (str) {
            console.log(`C136552k4h.111111111111 is called: str=${str}`);
            let result = this["LIZLLL"](str);
            console.log(`C136552k4h.111111111111 result=${result}`);
            return result;
        };

        var java_str = Java.use('java.lang.String');
        C136552k4h["LIZIZ"].implementation = function (context, bArr) {
            let data = java_str.$new(bArr)
            console.log(`C136552k4h.2222222222222 is called: data=${data}`);
            let result = this["LIZIZ"](context, bArr);
            console.log(`C136552k4h.2222222222222 result=${result}`);
            return result;
        };
    });
}

setImmediate(main);

看得出来是先url里的参数取出后进行GZIP压缩,再进行ttEncrypt加密,最后进行base64加密。

验证

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇