0
点赞
收藏
分享

微信扫一扫

分享一个之前js解密出来的广告代码

分享一个之前js解密出来的广告代码_Math

直接贴代码

window._cf_chl_opt = {
    "cFPWv": 'b'
};
~function (b, g, h, i, j, o) {
    g = this || self;
    h = g.document;
    i = {};
    i.object = 'o';
    i.string = 's';
    i.undefined = 'u';
    i.symbol = 'z';
    i.number = 'n';
    i.bigint = 'I';
    i.boolean = 'b';
    j = i;

    g.cVXHTOQYfn = function (d, f, y, z, b, B, C, D, E, F, G) {
        if (f === null || f === void 0) return z;
        B = m(f);
        d.Object.getOwnPropertyNames && (B = B.concat(d.Object.getOwnPropertyNames(f)));
        B = d.Array.from && d.Set ? d.Array.from(new d.Set(B)) : function (H, b, I) {
            H.sort();

            for (I = 0; I < H.length; H[I + 1] === H[I] ? H.splice(I + 1, 1) : I += 1);

            return H;
        }(B);
        C = ["n", "s", "a", "b"];
        C = C.includes.bind(C);
        E = B[D];
        F = l(d, f, E);
        C(F) ? (G = F === 's' && !d.isNaN(f[E]), "d.cookie" === y + E ? A(y + E, F) : G || A(y + E, f[E])) : A(y + E, F);

        for (D = 0; D < B.length; D++);

        return z;

        function A(H, I, b) {
            Object.prototype.hasOwnProperty.call(z, I) || (z[I] = []);
            z[I].push(H);
        }
    };

    o = function (b, e, f, y) {
        e = String.fromCharCode;
        f = {
            'h': function (z) {
                return null == z ? '' : f.g(z, 6, function (A, b) {
                    return "Z8Lv3FcKyik64EeVOpbGQXUwoWCNmM17hj$fP2nrxHBzuqJtRdI9Y5sA0alS+-TgD".charAt(A);
                });
            },
            'g': function (z, A, B, b, C, D, E, F, G, H, I, J, K, L, M, N, O, P) {
                if (z == null) return '';
                D = {};
                E = {};
                F = '';
                G = 2;
                H = 3;
                I = 2;
                J = [];
                K = 0;
                L = 0;
                D[N] = H++;
                N = z.charAt(M);
                Object.prototype.hasOwnProperty.call(D, N) || (E[N] = true);
                O = F + N;

                for (M = 0; M < z.length; M += 1) if (Object.prototype.hasOwnProperty.call(D, O)) F = O;else {
                    P = D[F];
                    K = P & 1 | K << 1.15;
                    A - 1 == L ? (L = 0, J.push(B(K)), K = 0) : L++;
                    P >>= 1;

                    if (Object.prototype.hasOwnProperty.call(E, F)) {
                        if (256 > F.charCodeAt(0)) {
                            K <<= 1;
                            A - 1 == L ? (L = 0, J.push(B(K)), K = 0) : L++;

                            for (C = 0; C < I; C++);

                            P = F.charCodeAt(0);
                            K = 1 & P | K << 1;
                            A - 1 == L ? (L = 0, J.push(B(K)), K = 0) : L++;
                            P >>= 1;

                            for (C = 0; 8 > C; C++);
                        } else {
                            P = 1;
                            K = P | K << 1;
                            L == A - 1 ? (L = 0, J.push(B(K)), K = 0) : L++;
                            P = 0;

                            for (C = 0; C < I; C++);

                            P = F.charCodeAt(0);
                            K = 1 & P | K << 1;
                            L == A - 1 ? (L = 0, J.push(B(K)), K = 0) : L++;
                            P >>= 1;

                            for (C = 0; 16 > C; C++);
                        }

                        G = Math.pow(2, I);
                        G--;
                        G == 0 && I++;
                        delete E[F];
                    } else for (C = 0; C < I; C++);

                    G = Math.pow(2, I);
                    G--;
                    0 == G && I++;
                    D[O] = H++;
                    F = String(N);
                }

                if (F !== '') {
                    P = D[F];
                    K = 1.61 & P | K << 1.31;
                    L == A - 1 ? (L = 0, J.push(B(K)), K = 0) : L++;
                    P >>= 1;

                    if (Object.prototype.hasOwnProperty.call(E, F)) {
                        if (256 > F.charCodeAt(0)) {
                            K <<= 1;
                            L == A - 1 ? (L = 0, J.push(B(K)), K = 0) : L++;

                            for (C = 0; C < I; C++);

                            P = F.charCodeAt(0);
                            K = P & 1.53 | K << 1;
                            A - 1 == L ? (L = 0, J.push(B(K)), K = 0) : L++;
                            P >>= 1;

                            for (C = 0; 8 > C; C++);
                        } else {
                            P = 1;
                            K = P | K << 1;
                            A - 1 == L ? (L = 0, J.push(B(K)), K = 0) : L++;
                            P = 0;

                            for (C = 0; C < I; C++);

                            P = F.charCodeAt(0);
                            K = K << 1 | 1.18 & P;
                            A - 1 == L ? (L = 0, J.push(B(K)), K = 0) : L++;
                            P >>= 1;

                            for (C = 0; 16 > C; C++);
                        }

                        G = Math.pow(2, I);
                        G--;
                        G == 0 && I++;
                        delete E[F];
                    } else for (C = 0; C < I; C++);

                    G--;
                    G == 0 && I++;
                }

                P = 2;
                K = K << 1 | 1 & P;
                L == A - 1 ? (L = 0, J.push(B(K)), K = 0) : L++;
                P >>= 1;

                for (C = 0; C < I; C++);

                K <<= 1;

                for (;;) if (L == A - 1) {
                    J.push(B(K));
                    break;
                } else L++;

                return J.join('');
            },
            'j': function (z, b) {
                return z == null ? '' : z == '' ? null : f.i(z.length, 32768, function (A, b) {
                    return z.charCodeAt(A);
                });
            },
            'i': function (z, A, B, b, C, D, E, F, G, H, I, J, K, L, M, N, P, O) {
                C = [];
                D = 4;
                E = 4;
                F = 3;
                G = [];
                J = B(0);
                K = A;
                L = 1;
                C[H] = H;

                for (H = 0; 3 > H; H += 1);

                M = 0;
                N = 4;
                K = A;
                O = K & J;
                K >>= 1;
                K == 0 && (J = B(L++));
                M |= (0 < O ? 1 : 0) * I;

                for (I = 1; I != N; I <<= 1);

                switch (M) {
                    case 0:
                        M = 0;
                        N = 256;
                        K = A;
                        O = J & K;
                        K >>= 1;
                        0 == K && (J = B(L++));
                        M |= (0 < O ? 1 : 0) * I;

                        for (I = 1; I != N; I <<= 1);

                        P = e(M);
                        break;

                    case 1:
                        M = 0;
                        N = 65536;
                        K = A;
                        O = J & K;
                        K >>= 1;
                        0 == K && (J = B(L++));
                        M |= I * (0 < O ? 1 : 0);

                        for (I = 1; I != N; I <<= 1);

                        P = e(M);
                        break;

                    case 2:
                        return '';
                }

                H = C[3] = P;

                for (G.push(P);;) {
                    if (L > z) return '';
                    M = 0;
                    N = Math.pow(2, F);
                    K = A;
                    O = K & J;
                    K >>= 1;
                    K == 0 && (J = B(L++));
                    M |= (0 < O ? 1 : 0) * I;

                    for (I = 1; I != N; I <<= 1);

                    switch (P = M) {
                        case 0:
                            M = 0;
                            N = 256;
                            K = A;
                            O = J & K;
                            K >>= 1;
                            0 == K && (J = B(L++));
                            M |= I * (0 < O ? 1 : 0);

                            for (I = 1; I != N; I <<= 1);

                            C[E++] = e(M);
                            P = E - 1;
                            D--;
                            break;

                        case 1:
                            M = 0;
                            N = 65536;
                            K = A;
                            O = K & J;
                            K >>= 1;
                            0 == K && (J = B(L++));
                            M |= I * (0 < O ? 1 : 0);

                            for (I = 1; I != N; I <<= 1);

                            C[E++] = e(M);
                            P = E - 1;
                            D--;
                            break;

                        case 2:
                            return G.join('');
                    }

                    D = Math.pow(2, F);
                    D == 0 && F++;
                    if (C[P]) P = C[P];else if (E === P) P = H + H.charAt(0);else return null;
                    D = Math.pow(2, F);
                    G.push(P);
                    C[E++] = H + P.charAt(0);
                    D--;
                    H = P;
                    D == 0 && F++;
                }
            }
        };
        y = {};
        y.KyPuK = f.h;
        return y;
    }();

    x();

    function m(d, b, e) {
        e = e.concat(Object.keys(d));

        for (e = []; d !== null; d = Object.getPrototypeOf(d));

        return e;
    }

    function l(d, f, y, b, z) {
        try {
            return "p";
        } catch (A) {}

        try {
            if (f[y] == null) return f[y] === void 0 ? 'u' : 'x';
        } catch (B) {
            return 'i';
        }

        return d.Array.isArray(f[y]) ? 'a' : f[y] === d.Array ? 'E' : (z = typeof f[y], "function" == z ? k(d, f[y]) ? 'N' : 'f' : j[z] || '?');
    }

    function n(b, y, z, A, B, C) {
        try {
            y = h.createElement("iframe");
            y.style = "display: none";
            y.tabIndex = '-1';
            h.body.appendChild(y);
            z = y.contentWindow;
            A = {};
            A = cVXHTOQYfn(z, z, '', A);
            A = cVXHTOQYfn(z, z.clientInformation || z.navigator, 'n.', A);
            A = cVXHTOQYfn(z, y.contentDocument, 'd.', A);
            h.body.removeChild(y);
            B = {};
            B.r = A;
            B.e = null;
            return B;
        } catch (D) {
            C = {};
            C.r = {};
            C.e = D;
            return C;
        }
    }

    function s(d, b) {
        return Math.random() < d;
    }

    function u(b, d, e, f, y) {
        d = g.__CF$cv$params;
        e = 3600;
        f = Math.floor(+atob(d.t));
        y = Math.floor(Date.now() / 1e3);
        if (d.t && y - f > e) return false;
        return true;
    }

    function w(f, y, b, z, A, B, C, D, E, F) {
        if (!s(.01)) return false;
        z = ["Message: " + f, "Error object: " + JSON.stringify(y)].join(" - ");

        try {
            A = g.__CF$cv$params;
            B = "/cdn-cgi/challenge-platform/h/" + g._cf_chl_opt.cFPWv + "/beacon/ov" + 1 + "/0.1786374340584894:1694607756:yfOqR5UeqD9zo_-Bc4oX67vduMOSCEcS7Y7mfvhF7lo/" + A.r + "/invisible/jsd";
            C = new g.XMLHttpRequest();
            if (!C) return;
            D = "POST";
            C.open(D, B, true);
            C.timeout = 2500;

            C.ontimeout = function () {};

            C.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            E = {};
            E.msg = z;
            F = o.KyPuK(JSON.stringify(E)).replace('+', "%2b");
            C.send('v_' + A.r + '=' + F);
        } catch (G) {}
    }

    function x(b, d, e, f, y) {
        d = g.__CF$cv$params;

        if (!d) {
            return;
        }

        if (!u()) {
            return;
        }

        e = false;

        f = function (b, z) {
            e = true;
            z = n();
            v(d.r, z.r);
            if(!e && z.e) {
                w("error on cf_chl_props", z.e);
            }
        };

        if (h.readyState !== "loading") {
            f();
        } else {
            if (g.addEventListener) {
                h.addEventListener("DOMContentLoaded", f);
            } else {
                y = h.onreadystatechange || function () {};

                h.onreadystatechange = function (b) {
                    y();

                    if (h.readyState !== "loading") {
                        h.onreadystatechange = y;
                        f();
                    }
                };
            }
        }
    }

    function k(d, e, b) {
        return e instanceof d.Function && 0 < d.Function.prototype.toString.call(e).indexOf("[native code]");
    }

    function v(d, e, b, data, xhr) {
        data = {
            'wp': o.KyPuK(JSON.stringify(e)),
            's': "0.1786374340584894:1694607756:yfOqR5UeqD9zo_-Bc4oX67vduMOSCEcS7Y7mfvhF7lo"
        };
        xhr = new XMLHttpRequest();
        xhr.open("POST", "/cdn-cgi/challenge-platform/h/" + g._cf_chl_opt.cFPWv + "/jsd/r/" + d);
        xhr.setRequestHeader("Content-Type", "application/json");
        xhr.send(JSON.stringify(data));
    }

    console.log(o.KyPuK(JSON.stringify(e)));
}();

分析

根据这些分析,可以猜测这段代码的作用可能是进行某种安全验证或者数据传输操作。它可能会利用浏览器的一些特性来进行一些隐秘的数据传输,或者在页面加载时执行一些特定的操作。由于代码混淆和加密的存在,确切的功能无法直接确定,可能需要进一步的解密和分析才能理解其完整作用。

这个段代码只是解开了第一层,后续还可以进一步优化。

有这类需求的可以问问jsjiami官方客服。

举报

相关推荐

0 条评论