直接贴代码
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官方客服。