UltraDebug

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: A C D R G Y M Z X S P
公益项目,接受捐赠
查看: 2374|回复: 0
收起左侧

[JavaScript] 某e通的m3u8文件解密

[复制链接]
English

主题

0

回帖

UD

新手上路

UID
34
积分
36
注册时间
2022-4-4
最后登录
1970-1-1
2023-9-14 18:27:32 | 显示全部楼层 |阅读模式
菜鸡一个,研究某利威失败,就找个网站研究一下重拾信心,然后看到有人说某e通的m3u8加密了,然后就研究了一下
感觉没有任何难度
直接搜索 [xiaoe] 就可以找到解密的位置,我就不贴图了

跟进去之后有个L函数,调试了一下,32位,应该是md5,那就随便找个md5调戏一下,结果一致,
那就复制粘贴,本地调戏,把L替换成md5,完事,然后发现最后面的 k.decode 要解码 u,感觉u像base64
然后本地调戏和他k.decode对比下,一样,那就替换成 atob 搞定

懒汉一个,就不贴图了

appid 是网址最前面那个app开头的字符串

注意,仅做学习使用,不要乱搞,乱搞我不负责


function r(r, n) {
    var t = (65535 & r) + (65535 & n);
    return (r >> 16) + (n >> 16) + (t >> 16) << 16 | 65535 & t;
}

function n(n, t, e, u, o, c) {
    return r((f = r(r(t, n), r(u, c))) << (a = o) | f >>> 32 - a, e);
    var f, a;
}

function t(r, t, e, u, o, c, f) {
    return n(t & e | ~t & u, r, t, o, c, f);
}

function e(r, t, e, u, o, c, f) {
    return n(t & u | e & ~u, r, t, o, c, f);
}

function u(r, t, e, u, o, c, f) {
    return n(t ^ e ^ u, r, t, o, c, f);
}

function o(r, t, e, u, o, c, f) {
    return n(e ^ (t | ~u), r, t, o, c, f);
}

function c(n) {
    for (var c = 1732584193, f = -271733879, a = -1732584194, i = 271733878, h = 0; h < n.length; h += 16) {
        var l = c, v = f, g = a, d = i;
        c = t(c, f, a, i, n[h + 0], 7, -680876936), i = t(i, c, f, a, n[h + 1], 12, -389564586),
            a = t(a, i, c, f, n[h + 2], 17, 606105819), f = t(f, a, i, c, n[h + 3], 22, -1044525330),
            c = t(c, f, a, i, n[h + 4], 7, -176418897), i = t(i, c, f, a, n[h + 5], 12, 1200080426),
            a = t(a, i, c, f, n[h + 6], 17, -1473231341), f = t(f, a, i, c, n[h + 7], 22, -45705983),
            c = t(c, f, a, i, n[h + 8], 7, 1770035416), i = t(i, c, f, a, n[h + 9], 12, -1958414417),
            a = t(a, i, c, f, n[h + 10], 17, -42063), f = t(f, a, i, c, n[h + 11], 22, -1990404162),
            c = t(c, f, a, i, n[h + 12], 7, 1804603682), i = t(i, c, f, a, n[h + 13], 12, -40341101),
            a = t(a, i, c, f, n[h + 14], 17, -1502002290), c = e(c, f = t(f, a, i, c, n[h + 15], 22, 1236535329), a, i, n[h + 1], 5, -165796510),
            i = e(i, c, f, a, n[h + 6], 9, -1069501632), a = e(a, i, c, f, n[h + 11], 14, 643717713),
            f = e(f, a, i, c, n[h + 0], 20, -373897302), c = e(c, f, a, i, n[h + 5], 5, -701558691),
            i = e(i, c, f, a, n[h + 10], 9, 38016083), a = e(a, i, c, f, n[h + 15], 14, -660478335),
            f = e(f, a, i, c, n[h + 4], 20, -405537848), c = e(c, f, a, i, n[h + 9], 5, 568446438),
            i = e(i, c, f, a, n[h + 14], 9, -1019803690), a = e(a, i, c, f, n[h + 3], 14, -187363961),
            f = e(f, a, i, c, n[h + 8], 20, 1163531501), c = e(c, f, a, i, n[h + 13], 5, -1444681467),
            i = e(i, c, f, a, n[h + 2], 9, -51403784), a = e(a, i, c, f, n[h + 7], 14, 1735328473),
            c = u(c, f = e(f, a, i, c, n[h + 12], 20, -1926607734), a, i, n[h + 5], 4, -378558),
            i = u(i, c, f, a, n[h + 8], 11, -2022574463), a = u(a, i, c, f, n[h + 11], 16, 1839030562),
            f = u(f, a, i, c, n[h + 14], 23, -35309556), c = u(c, f, a, i, n[h + 1], 4, -1530992060),
            i = u(i, c, f, a, n[h + 4], 11, 1272893353), a = u(a, i, c, f, n[h + 7], 16, -155497632),
            f = u(f, a, i, c, n[h + 10], 23, -1094730640), c = u(c, f, a, i, n[h + 13], 4, 681279174),
            i = u(i, c, f, a, n[h + 0], 11, -358537222), a = u(a, i, c, f, n[h + 3], 16, -722521979),
            f = u(f, a, i, c, n[h + 6], 23, 76029189), c = u(c, f, a, i, n[h + 9], 4, -640364487),
            i = u(i, c, f, a, n[h + 12], 11, -421815835), a = u(a, i, c, f, n[h + 15], 16, 530742520),
            c = o(c, f = u(f, a, i, c, n[h + 2], 23, -995338651), a, i, n[h + 0], 6, -198630844),
            i = o(i, c, f, a, n[h + 7], 10, 1126891415), a = o(a, i, c, f, n[h + 14], 15, -1416354905),
            f = o(f, a, i, c, n[h + 5], 21, -57434055), c = o(c, f, a, i, n[h + 12], 6, 1700485571),
            i = o(i, c, f, a, n[h + 3], 10, -1894986606), a = o(a, i, c, f, n[h + 10], 15, -1051523),
            f = o(f, a, i, c, n[h + 1], 21, -2054922799), c = o(c, f, a, i, n[h + 8], 6, 1873313359),
            i = o(i, c, f, a, n[h + 15], 10, -30611744), a = o(a, i, c, f, n[h + 6], 15, -1560198380),
            f = o(f, a, i, c, n[h + 13], 21, 1309151649), c = o(c, f, a, i, n[h + 4], 6, -145523070),
            i = o(i, c, f, a, n[h + 11], 10, -1120210379), a = o(a, i, c, f, n[h + 2], 15, 718787259),
            f = o(f, a, i, c, n[h + 9], 21, -343485551), c = r(c, l), f = r(f, v), a = r(a, g),
            i = r(i, d);
    }
    return [ c, f, a, i ];
}

function f(r) {
    for (var n = "", t = 0; t < 4 * r.length; t++) n += "0123456789abcdef".charAt(r[t >> 2] >> t % 4 * 8 + 4 & 15) + "0123456789abcdef".charAt(r[t >> 2] >> t % 4 * 8 & 15);
    return n;
}

function a(r) {
    for (var n = 1 + (r.length + 8 >> 6), t = new Array(16 * n), e = 0; e < 16 * n; e++) t[e] = 0;
    for (e = 0; e < r.length; e++) t[e >> 2] |= (255 & r.charCodeAt(e)) << e % 4 * 8;
    return t[e >> 2] |= 128 << e % 4 * 8, t[16 * n - 2] = 8 * r.length, t;
}

function hexMD5(r){
    return f(c(a(r)));
}

function Strdecode(t) {
    var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "appbgzjnopv1917";
    e = hexMD5(e);
    var r = 3
        , n = +(t = decodeURIComponent(t)).substr(-r)[1]
        , i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
        , a = i.split("").reduce((function(t, e, r) {
            return t[e] = r,
                t
        }
    ), {})
        , o = t[0]
        , s = i.indexOf(o)
        , c = hexMD5(e + o).substr(s % 8, s % 8 + 7).split("").map((function(t) {
            return t.charCodeAt()
        }
    ));
    t = t.substr(1, t.length - r - 1);
    for (var u = "", l = 0, f = 0, h = 0; h < t.length; h++) {
        for (f = f == c.length ? 0 : f,
                 l = a[t[h]] - f - c[f++]; l < 0; )
            l += 65;
        u += i[l],
        n && (u += t.slice(h + 1, h + 1 + n),
            h += n)
    }

    return atob(u)
}

function Decode(encodeString,appid){
    return Strdecode(encodeString.substring("[xiaoe]".length,encodeString.length),appid)
}
UltraDebug免责声明
✅以上内容均来自网友转发或原创,如存在侵权请发送到站方邮件9003554@qq.com处理。
✅The above content is forwarded or original by netizens. If there is infringement, please send the email to the destination 9003554@qq.com handle.
回复 打印

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|站点地图|UltraDebug ( 滇ICP备2022002049号-2 滇公网安备 53032102000034号)

GMT+8, 2025-12-13 18:00 , Processed in 0.028608 second(s), 11 queries , Redis On.

Powered by Discuz X3.4

© 2001-2023 Discuz! Team.

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