|
@@ -0,0 +1,468 @@
|
|
|
|
|
+navigator = {
|
|
|
|
|
+ userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36'
|
|
|
|
|
+}
|
|
|
|
|
+window = global
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// 新的akm js文件 搜索,可以搜 = {}; 从而快速定位 指纹数组生成位置 第一次请求时,里面有些值可能为空。。。观察下
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+function getObj() {
|
|
|
|
|
+ // 可写死的值
|
|
|
|
|
+ let ver = '',
|
|
|
|
|
+ url = "https://www.jetstar.com/hk/zh/home?adults=1&children=0&flexible=1&flight-type=2&infants=0&origin=PVG&tab=1",
|
|
|
|
|
+ fpt = ";-1;dis;;true;true;true;-480;true;24;24;true;false;-1",
|
|
|
|
|
+ dsi = [{"get": ""}, {"set": "0"}, {"ico": "070f409b82df3bdd2f51a6415c7895353c153c47fe6dd8a0f87f3d14c46ccb2b"}, {"ift": "3"}, {"xof": "4,11,1,1,8"}, {"xot": "4,11,1,1,8"}, {"wev": "Google Inc. (Intel);wev;Google Inc. (Intel)"}, {"wre": "Google Inc. (Intel);wre;Google Inc. (Intel)"}, {"wdr": "0"}, {"iks": ""}, {"lds": "1"}, {"sst": ""}],
|
|
|
|
|
+ // mev 可写死, 但可能会触发验证码??
|
|
|
|
|
+ mev = "0,1,114,1356,242;1,1,694,1351,250;2,1,783,1295,311;3,1,838,1281,331;4,1,1306,1275,333;5,1,1311,1266,333;6,1,1322,1255,333;7,1,1337,1233,337;8,1,1354,1216,340;9,1,1370,1209,340;10,1,1394,1202,340;11,1,1403,1201,340;12,1,2892,1191,340;13,1,2905,1183,340;14,1,2921,1181,339;15,1,3038,1177,338;16,1,3072,1175,336;17,1,3445,1174,336;18,1,3629,1170,336;19,1,3656,1169,336;20,1,3673,1167,337;21,1,3689,1163,338;22,1,3706,1152,338;23,1,3722,1135,338;24,1,3739,1113,328;25,1,3757,1080,302;26,1,3772,1052,281;27,1,3789,1006,251;28,1,3806,939,209;29,1,3823,865,174;30,1,3840,834,150;31,1,3857,820,141;32,1,3873,818,134;33,1,3889,818,123;34,1,3906,818,112;35,1,3922,818,103;36,1,3940,819,98;37,1,3956,820,96;38,1,4084,822,96;39,1,4106,827,105;40,1,4123,832,109;41,1,4139,843,112;42,1,4156,866,112;43,1,4173,908,105;44,1,4190,968,105;45,1,4253,1340,56;46,1,4281,1388,35;47,1,4294,1393,31;48,1,4373,1390,30;49,1,4390,1378,27;50,1,4406,1368,23;51,1,4424,1357,19;52,1,4440,1348,16;53,1,4457,1346,14;54,1,4490,1344,13;55,1,4507,1337,10;56,1,4523,1332,7;57,1,4533,1327,4;58,1,5324,1072,69;59,1,5343,1062,69;60,1,5357,1054,69;61,1,5374,1046,69;62,1,5390,1034,68;63,1,5407,1021,64;64,1,5424,1014,63;65,1,5443,1005,61;66,1,5458,994,60;67,1,5474,977,55;68,1,5491,965,51;69,1,5507,958,47;70,1,5525,950,45;71,1,5542,944,45;72,1,5557,943,45;73,3,5633,943,45,-1;74,4,5725,943,45,-1;75,2,5728,943,45,-1;76,1,8014,509,619;77,1,8021,509,622;78,1,8029,502,628;79,1,8103,447,670;80,1,8145,447,674;81,1,8156,447,675;82,1,8172,448,675;83,1,8332,449,675;84,1,8340,456,675;85,1,8348,465,672;86,1,8356,476,670;87,1,8364,487,668;88,1,8372,498,665;89,1,8380,511,658;90,1,8389,521,655;91,1,8396,530,652;92,1,8404,532,650;93,1,8414,533,649;94,1,8426,534,649;95,3,8544,534,649,-1;",
|
|
|
|
|
+
|
|
|
|
|
+ startTs = Date.now() - 1000
|
|
|
|
|
+ // window.bmak.startTs = startTs
|
|
|
|
|
+ ajr = ajr(startTs) //用到 2 次,且要一致
|
|
|
|
|
+ // console.log(ajr)
|
|
|
|
|
+ ;
|
|
|
|
|
+ return {
|
|
|
|
|
+ "ver": ver, // 网页固定值,"C9vFEovTrypIjd1JK5C8oAAPjzy2LU11L9garZrvwm8="
|
|
|
|
|
+ "fpt": fpt, // 可写死
|
|
|
|
|
+ "fpc": fpc(fpt), // 根据fpt值生成
|
|
|
|
|
+ "ajr": ajr, // 变化了 根据 startTs生成 可写死, 根据ua值生成
|
|
|
|
|
+ "din": din(startTs), // 可写死, 数组:23位
|
|
|
|
|
+ "eem": "do_en,dm_en,t_en", // 可写死, 检测函数后拼接而成, 示例值:"do_en,dm_en,t_en"
|
|
|
|
|
+ "ffs": "", // 可写死, 值为空
|
|
|
|
|
+ "vev": "2,490;3,5328;2,6723;3,8541;", // 可写死, ============================================
|
|
|
|
|
+ "inf": "", // 网站固页值 示例值:""
|
|
|
|
|
+ "ajt": '0,0', // 可写死 第一次请求为'0,0' 同一会话每次请求不一样,写死时 要注意要和生成 dvc 的入参一致
|
|
|
|
|
+
|
|
|
|
|
+ // kev mev tev pev oev if 都是从一个函数返回的6位数组(变量组成 只有 0 1 有值,其他都是空字符串 可能会变)中升序取值 应该是轨迹数组
|
|
|
|
|
+ "kev": "", // 可为空, 从6数组取值
|
|
|
|
|
+ "mev": mev, // 可写死, 从6数组取值 鼠标移动轨迹
|
|
|
|
|
+ "tev": "", // 从6数组取值 示例值:""
|
|
|
|
|
+ "pev": "", // 从6数组取值 示例值:""
|
|
|
|
|
+ "oev": "", // 从6数组取值 示例值:""
|
|
|
|
|
+ "if": "", // 从6数组取值 示例值:""
|
|
|
|
|
+
|
|
|
|
|
+ "dme": "0,521,-1,-1,-1,-1,-1,-1,-1,-1,-1;", // 可写死
|
|
|
|
|
+ "doe": "0,522,-1,-1,-1;", // 可写死
|
|
|
|
|
+ "pur": url, // 可写死 网页url 不能有反斜杠 \ 和双引号 " 示例值:
|
|
|
|
|
+
|
|
|
|
|
+ "mst": mst(startTs, ajr), // 数组:30位 -------------------------analyse.txt
|
|
|
|
|
+
|
|
|
|
|
+ "o9": 0, // 可写死, 网页固定值
|
|
|
|
|
+ "sde": "0,0,0,0,1,0,0", // 可写死
|
|
|
|
|
+ "pmo": "", // 可写死, 网页固定值
|
|
|
|
|
+ "dpw": "", // 可写死, 网页固定值
|
|
|
|
|
+ "pac": "", // 可写死, 网页固定值
|
|
|
|
|
+ "per": '能写死', // 逆向----------------------------------
|
|
|
|
|
+ "dsi": dsi, // 可写死, 数组:12位
|
|
|
|
|
+ "wsl": "2172649472,76515477,62483333,100,1,1,1,1,0,1,,,,,,0,,,1,1", // 可写死 前3个数字是浏览器堆内存信息 中间2个数在变化
|
|
|
|
|
+ "hls": "-1,,,1,1", // 可写死, 网页固定值
|
|
|
|
|
+ "pde": "", // 可写死
|
|
|
|
|
+ "fwd": [{"fmh": ""}, {"fmz": "1"}, {"ssh": "79d476b3ee7a1d053d47c234f8b00e881ef941614b47791e1d4610cb5e47a0ff"}], // 可写死
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// 公共方法
|
|
|
|
|
+var TSK = function (INK) {
|
|
|
|
|
+ if (INK == null)
|
|
|
|
|
+ return -1;
|
|
|
|
|
+ try {
|
|
|
|
|
+ var I8K = 0;
|
|
|
|
|
+ for (var IjK = 0; IjK < INK["length"]; IjK++) {
|
|
|
|
|
+ var UQK = INK["charCodeAt"](IjK);
|
|
|
|
|
+ if (UQK < 128) {
|
|
|
|
|
+ I8K = I8K + UQK;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return I8K;
|
|
|
|
|
+ } catch (JHK) {
|
|
|
|
|
+ console.log('报错逻辑....')
|
|
|
|
|
+ return -2;
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// XHK, 需要 AMK["fpValStr"] 值
|
|
|
|
|
+function fpc(val) {
|
|
|
|
|
+ return "".concat(TSK(val));
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// ajr ---------------------------------
|
|
|
|
|
+function ajr(startTimestamp) {
|
|
|
|
|
+ var lfv = function (Jw) {
|
|
|
|
|
+ var rTv = function (bxv, g8v) {
|
|
|
|
|
+ return bxv >>> g8v | bxv << 32 - g8v;
|
|
|
|
|
+ };
|
|
|
|
|
+ var kw = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];
|
|
|
|
|
+ var Jl = 0x6a09e667;
|
|
|
|
|
+ var BXv = 0xbb67ae85;
|
|
|
|
|
+ var SVv = 0x3c6ef372;
|
|
|
|
|
+ var FCv = 0xa54ff53a;
|
|
|
|
|
+ var VTv = 0x510e527f;
|
|
|
|
|
+ var tEv = 0x9b05688c;
|
|
|
|
|
+ var ttv = 0x1f83d9ab;
|
|
|
|
|
+ var hVv = 0x5be0cd19;
|
|
|
|
|
+ var SUv = unescape(encodeURIComponent(Jw));
|
|
|
|
|
+ var hXv = SUv["length"] * 8;
|
|
|
|
|
+ SUv += String["fromCharCode"](0x80);
|
|
|
|
|
+ var Sfv = SUv["length"] / 4 + 2;
|
|
|
|
|
+ var pw = Math["ceil"](Sfv / 16);
|
|
|
|
|
+ var nfv = new (Array)(pw);
|
|
|
|
|
+ for (var Ol = 0; Ol < pw; Ol++) {
|
|
|
|
|
+ nfv[Ol] = new (Array)(16);
|
|
|
|
|
+ for (var fLv = 0; fLv < 16; fLv++) {
|
|
|
|
|
+ nfv[Ol][fLv] = SUv["charCodeAt"](Ol * 64 + fLv * 4) << 24 | SUv["charCodeAt"](Ol * 64 + fLv * 4 + 1) << 16 | SUv["charCodeAt"](Ol * 64 + fLv * 4 + 2) << 8 | SUv["charCodeAt"](Ol * 64 + fLv * 4 + 3) << 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ var VCv = hXv / Math["pow"](2, 32);
|
|
|
|
|
+ nfv[pw - 1][14] = Math["floor"](VCv);
|
|
|
|
|
+ nfv[pw - 1][15] = hXv;
|
|
|
|
|
+ for (var Fbv = 0; Fbv < pw; Fbv++) {
|
|
|
|
|
+ var GTv = new (Array)(64);
|
|
|
|
|
+ var khv = Jl;
|
|
|
|
|
+ var jXv = BXv;
|
|
|
|
|
+ var Ydv = SVv;
|
|
|
|
|
+ var jtv = FCv;
|
|
|
|
|
+ var cl = VTv;
|
|
|
|
|
+ var Ehv = tEv;
|
|
|
|
|
+ var Vfv = ttv;
|
|
|
|
|
+ var ddv = hVv;
|
|
|
|
|
+ for (var Jvv = 0; Jvv < 64; Jvv++) {
|
|
|
|
|
+ var qCv = void 0
|
|
|
|
|
+ , lvv = void 0
|
|
|
|
|
+ , Kq = void 0
|
|
|
|
|
+ , vtv = void 0
|
|
|
|
|
+ , Dnv = void 0
|
|
|
|
|
+ , NCv = void 0;
|
|
|
|
|
+ if (Jvv < 16)
|
|
|
|
|
+ GTv[Jvv] = nfv[Fbv][Jvv];
|
|
|
|
|
+ else {
|
|
|
|
|
+ qCv = rTv(GTv[Jvv - 15], 7) ^ rTv(GTv[Jvv - 15], 18) ^ GTv[Jvv - 15] >>> 3;
|
|
|
|
|
+ lvv = rTv(GTv[Jvv - 2], 17) ^ rTv(GTv[Jvv - 2], 19) ^ GTv[Jvv - 2] >>> 10;
|
|
|
|
|
+ GTv[Jvv] = GTv[Jvv - 16] + qCv + GTv[Jvv - 7] + lvv;
|
|
|
|
|
+ }
|
|
|
|
|
+ lvv = rTv(cl, 6) ^ rTv(cl, 11) ^ rTv(cl, 25);
|
|
|
|
|
+ Kq = cl & Ehv ^ ~cl & Vfv;
|
|
|
|
|
+ vtv = ddv + lvv + Kq + kw[Jvv] + GTv[Jvv];
|
|
|
|
|
+ qCv = rTv(khv, 2) ^ rTv(khv, 13) ^ rTv(khv, 22);
|
|
|
|
|
+ Dnv = khv & jXv ^ khv & Ydv ^ jXv & Ydv;
|
|
|
|
|
+ NCv = qCv + Dnv;
|
|
|
|
|
+ ddv = Vfv;
|
|
|
|
|
+ Vfv = Ehv;
|
|
|
|
|
+ Ehv = cl;
|
|
|
|
|
+ cl = jtv + vtv >>> 0;
|
|
|
|
|
+ jtv = Ydv;
|
|
|
|
|
+ Ydv = jXv;
|
|
|
|
|
+ jXv = khv;
|
|
|
|
|
+ khv = vtv + NCv >>> 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ Jl = Jl + khv;
|
|
|
|
|
+ BXv = BXv + jXv;
|
|
|
|
|
+ SVv = SVv + Ydv;
|
|
|
|
|
+ FCv = FCv + jtv;
|
|
|
|
|
+ VTv = VTv + cl;
|
|
|
|
|
+ tEv = tEv + Ehv;
|
|
|
|
|
+ ttv = ttv + Vfv;
|
|
|
|
|
+ hVv = hVv + ddv;
|
|
|
|
|
+ }
|
|
|
|
|
+ return [Jl >> 24 & 0xff, Jl >> 16 & 0xff, Jl >> 8 & 0xff, Jl & 0xff, BXv >> 24 & 0xff, BXv >> 16 & 0xff, BXv >> 8 & 0xff, BXv & 0xff, SVv >> 24 & 0xff, SVv >> 16 & 0xff, SVv >> 8 & 0xff, SVv & 0xff, FCv >> 24 & 0xff, FCv >> 16 & 0xff, FCv >> 8 & 0xff, FCv & 0xff, VTv >> 24 & 0xff, VTv >> 16 & 0xff, VTv >> 8 & 0xff, VTv & 0xff, tEv >> 24 & 0xff, tEv >> 16 & 0xff, tEv >> 8 & 0xff, tEv & 0xff, ttv >> 24 & 0xff, ttv >> 16 & 0xff, ttv >> 8 & 0xff, ttv & 0xff, hVv >> 24 & 0xff, hVv >> 16 & 0xff, hVv >> 8 & 0xff, hVv & 0xff];
|
|
|
|
|
+ };
|
|
|
|
|
+ var gTv = function (RNv) {
|
|
|
|
|
+ return Math["floor"](Math["random"]() * RNv["length"]);
|
|
|
|
|
+ };
|
|
|
|
|
+ var Fw = function (kzv) {
|
|
|
|
|
+ var W3v = '';
|
|
|
|
|
+ for (var F6v = 0; F6v < kzv["length"]; F6v++) {
|
|
|
|
|
+ W3v += kzv[F6v]["toString"](16)["length"] === 2 ? kzv[F6v]["toString"](16) : "0"["concat"](kzv[F6v]["toString"](16));
|
|
|
|
|
+ }
|
|
|
|
|
+ return W3v;
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ var fDv = Fw(lfv(btoa(startTimestamp)));
|
|
|
|
|
+ var tfv = [];
|
|
|
|
|
+ var dnv = "";
|
|
|
|
|
+ for (var XVv = 0; XVv < 5; XVv++) {
|
|
|
|
|
+ var Pgv = gTv(fDv);
|
|
|
|
|
+ tfv["push"](Pgv);
|
|
|
|
|
+ dnv = dnv + fDv[Pgv];
|
|
|
|
|
+ }
|
|
|
|
|
+ var zCv = [dnv, tfv];
|
|
|
|
|
+ return zCv["join"]("|")
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// din 23arr ----------------------- 第 5 个
|
|
|
|
|
+function din(startTs) {
|
|
|
|
|
+
|
|
|
|
|
+ ` **************** adp 生成过程(可写死) ***************
|
|
|
|
|
+
|
|
|
|
|
+ var Q56 = window['callPhantom'] ? 1 : 0; // 值为 0 , 检测无头浏览器
|
|
|
|
|
+ var kR6 = window['ActiveXObject'] && 'ActiveXObject' in window ? 1 : 0; // 值为 0 , 识别 IE 浏览器(ActiveXObject 是 IE 特有的属性
|
|
|
|
|
+ var pW6 = typeof window['document']['documentMode'] == 'number' ? 1 : 0; // 值为 0 , 检测 IE 文档模式(document.documentMode 是 IE 特有属性)
|
|
|
|
|
+ var cc6 = window['chrome'] && window['chrome']['webstore'] ? 1 : 0; // 值为 0 , 检测 Chrome 浏览器
|
|
|
|
|
+ var UR6 = window['navigator']['onLine'] ? 1 : 0; // 值为 1 , 检测网络状态, navigator.onLine可判断浏览器是否在线
|
|
|
|
|
+ var mk6 = window['opera'] ? 1 : 0; // 值为 0 , 检测旧版 Opera 浏览器(opera 是旧版 Opera 特有)
|
|
|
|
|
+ var VZ6 = typeof window['InstallTrigger'] !== 'undefined' ? 1 : 0; // 值为 0 , 检测 Firefox 浏览器(InstallTrigger 是 Firefox 特有属性)
|
|
|
|
|
+ var rQ6 = window['HTMLElement'] && window['Object']['prototype']['toString'].call(window['HTMLElement'])['indexOf']('Constructor') > 0 ? 1 : 0; // 值为 0 ,
|
|
|
|
|
+ var g36 = typeof window['RTCPeerConnection'] === 'function' || typeof window['mozRTCPeerConnection'] === 'function' // 值为 1 , 判断浏览器是否支持 WebRTC
|
|
|
|
|
+ var Ng6 = 'mozInnerScreenY' in window ? window['mozInnerScreenY'] : 0; // 值为 0 , 检测 Firefox 特定属性
|
|
|
|
|
+ var OL6 = typeof window['navigator']['vibrate'] === 'function' ? 1 : 0; // 值为 1 , 检查设备是否支持振动
|
|
|
|
|
+ var Wc6 = typeof window['navigator']['getBattery'] === 'function' ? 1 : 0; // 值为 1 , 检查电池API支持
|
|
|
|
|
+ var U96 = !window['Array']['prototype']['forEach'] ? 1 : 0; // 值为 0 , 检测 ES5 数组方法支持
|
|
|
|
|
+ var EC6 = 'FileReader' in window ? 1 : 0; // 值为 1 , 检测是否支持文件读取
|
|
|
|
|
+
|
|
|
|
|
+ var nS6 = 'cpen:'['concat'](Q56, ',i1:')['concat'](kR6, ',dm:')['concat'](pW6, ',cwen:')['concat'](cc6, ',non:')['concat'](UR6, ',opc:')['concat'](mk6, ',fc:')['concat'](VZ6, ',sc:')['concat'](rQ6, ',wrc:')['concat'](g36, ',isc:')['concat'](Ng6, ',vib:')['concat'](OL6, ',bat:')['concat'](Wc6, ',x11:')['concat'](U96, ',x12:')['concat'](EC6);
|
|
|
|
|
+ `
|
|
|
|
|
+
|
|
|
|
|
+ // PMK ------------------------------------------ ran 生成 ----------------------------------------------------------
|
|
|
|
|
+ var ZEK = Math.random()
|
|
|
|
|
+ var KDK = parseInt(ZEK * 1000 / 2, 10)
|
|
|
|
|
+ var PMK = "".concat(ZEK).slice(0, 11) + KDK
|
|
|
|
|
+
|
|
|
|
|
+ var Arr23 = [
|
|
|
|
|
+ {"wdr": 0}, // window.webdriver ? 1 : 0; => 0
|
|
|
|
|
+ {"xag": 12147}, // 不会js文件是不一样的 网页固定值 RcK(973, [])
|
|
|
|
|
+ {"asw": 1920}, // window.screen.availWidth
|
|
|
|
|
+
|
|
|
|
|
+ {"nal": "zh-CN"}, // navigator['language']
|
|
|
|
|
+ {"wow": 1920}, // window.outerWidth
|
|
|
|
|
+
|
|
|
|
|
+ // 将时间戳 window.bmak.startTs 除以固定数值 (2016*2016)4064256,并将结果转换为十进制整数
|
|
|
|
|
+ {"hz1": parseInt(startTs / 4064256, 10)},
|
|
|
|
|
+
|
|
|
|
|
+ {"nps": "20030107"}, // navigator['productSub']
|
|
|
|
|
+ {"pha": 0}, // window._phantom ? 1 : 0; => 0
|
|
|
|
|
+ {"ibr": 0}, // 网页固定值
|
|
|
|
|
+ {"adp": "cpen:0,i1:0,dm:0,cwen:0,non:1,opc:0,fc:0,sc:0,wrc:1,isc:0,vib:1,bat:1,x11:0,x12:1"}, // SKK()
|
|
|
|
|
+ {"hal": startTs / 2}, // ZqK = window.bmak.startTs / 2
|
|
|
|
|
+ {"ucs": "8106"}, // CCK 生成逻辑 ''.concat(TSK(navigator.userAgent)) =》 '8106'
|
|
|
|
|
+ {"she": 1080}, // window.screen.height => 1080
|
|
|
|
|
+ {"wih": 919}, // window.innerHeight => 919
|
|
|
|
|
+ {"ash": 1040}, // window.screen.availHeight
|
|
|
|
|
+ {"dau": 0}, // window.domAutomation ? 1 : 0; => 0
|
|
|
|
|
+ {"wiw": 1920}, // window.innerWidth => 1920 616??
|
|
|
|
|
+ {"nap": "Gecko"}, // navigator['product']
|
|
|
|
|
+ {"npl": 5}, // navigator['plugins']['length']
|
|
|
|
|
+ {"swi": 1920}, // window.screen.width =>
|
|
|
|
|
+ {"tsd": 0}, // 网页固定值
|
|
|
|
|
+ {"ua": navigator.userAgent},
|
|
|
|
|
+ {"ran": PMK}, // 随机值(应该可以写死)
|
|
|
|
|
+ ]
|
|
|
|
|
+
|
|
|
|
|
+ return Arr23
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+function mst(startTs, ajr) {
|
|
|
|
|
+
|
|
|
|
|
+ // 时间戳差值
|
|
|
|
|
+ var Bmd = Date.now() - startTs;
|
|
|
|
|
+
|
|
|
|
|
+ // window.bmak.startTs = startTs
|
|
|
|
|
+ require('./arg_dvc_revert_env')
|
|
|
|
|
+
|
|
|
|
|
+ var dbd = dDd(startTs);
|
|
|
|
|
+ console.log('ajr', ajr)
|
|
|
|
|
+ Agd = arg1.Gb(0, ajr, 1, 0)
|
|
|
|
|
+ console.log(Agd)
|
|
|
|
|
+ return [
|
|
|
|
|
+ {'kevl': 1},
|
|
|
|
|
+ {'mevl': 32},
|
|
|
|
|
+ {'tevl': 32},
|
|
|
|
|
+ {'devl': 0},
|
|
|
|
|
+ {'dmvl': 0}, // 变化的
|
|
|
|
|
+ {'pevl': 0},
|
|
|
|
|
+ {'tovl': 0}, // 变化的
|
|
|
|
|
+ {'delt': Bmd}, // 时间戳差值
|
|
|
|
|
+ {'it': 0},
|
|
|
|
|
+ {'sts': startTs},
|
|
|
|
|
+ {'fct': -999999}, // HAd['td']
|
|
|
|
|
+ {'dd2': parseInt(parseInt(startTs / 4064256, 10) / 23, 10)},
|
|
|
|
|
+ {'kc': 0},
|
|
|
|
|
+ {'mc': 0},
|
|
|
|
|
+ {'ww8': 0},
|
|
|
|
|
+ {'pc': 0},
|
|
|
|
|
+ {'tc': 0},
|
|
|
|
|
+ {'ssts': Bmd}, // 时间戳差值
|
|
|
|
|
+ {'tst': 0},
|
|
|
|
|
+ {'rval': '-1'}, // HAd['rVal']
|
|
|
|
|
+ {'rcfp': '-1'}, // HAd['rCFP']
|
|
|
|
|
+ {'nfas': 30261693},
|
|
|
|
|
+ {'jsrf': "PiZtE"},
|
|
|
|
|
+ {'jsrf1': dbd[0]}, //开始时间戳 计算的随机值
|
|
|
|
|
+ {'jsrf2': dbd[1]},
|
|
|
|
|
+ {'signals': '0'},
|
|
|
|
|
+ {'mwd': "0"},
|
|
|
|
|
+ {'hea': ''},
|
|
|
|
|
+ // 第1个值根据 ajr 生成 第2个值是时间戳差值 第3个是根据环境判断得来的 不同js会变
|
|
|
|
|
+ {'dvc': ''['concat'](Agd, ',')['concat'](0, ',')['concat']("i+j+g+d+k+h+f+l+")}, // 不能写死 尤其是第一个值 ------------
|
|
|
|
|
+ {'srd': "0"}
|
|
|
|
|
+ ];
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+var dDd = function (YS) {
|
|
|
|
|
+ var P3 = function (ZA) {
|
|
|
|
|
+ var SW = ZA[0] - ZA[1];
|
|
|
|
|
+ var ng = ZA[2] - ZA[3];
|
|
|
|
|
+ var sb = ZA[4] - ZA[5];
|
|
|
|
|
+ var CJ = Math["sqrt"](SW * SW + ng * ng + sb * sb);
|
|
|
|
|
+ return Math["floor"](CJ);
|
|
|
|
|
+ };
|
|
|
|
|
+ var H7d = Math["floor"](Math["random"]() * 100000 + 10000);
|
|
|
|
|
+ var vZ = String(YS * H7d);
|
|
|
|
|
+ var sQd = 0;
|
|
|
|
|
+ var P4d = [];
|
|
|
|
|
+ var Ffd = vZ["length"] >= 18 ? true : false;
|
|
|
|
|
+ while (P4d["length"] < 6) {
|
|
|
|
|
+ P4d["push"](parseInt(vZ["slice"](sQd, sQd + 2), 10));
|
|
|
|
|
+ sQd = Ffd ? sQd + 3 : sQd + 2;
|
|
|
|
|
+ }
|
|
|
|
|
+ var FMd = P3(P4d);
|
|
|
|
|
+ return [H7d, FMd];
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// console.log(JSON.stringify(mst(1745981943082)));
|
|
|
|
|
+console.log(getObj(1746587916230))
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// console.log(arg1.Gb(141296, "46e1c|63,3,35,62,19", 1, 12250583))
|
|
|
|
|
+console.log(dDd(1746587916230))
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// wsl --------------------------------------------------------------------------------
|
|
|
|
|
+
|
|
|
|
|
+var U9x = function () {
|
|
|
|
|
+ var MGx = "-1,-1,-1";
|
|
|
|
|
+ // window.performance.memory; 获取 JavaScript 内存使用情况
|
|
|
|
|
+ ` 返回一个包含以下属性的对象(示例值):
|
|
|
|
|
+
|
|
|
|
|
+属性 类型 描述
|
|
|
|
|
+usedJSHeapSize number 当前 JavaScript 堆内存已使用的字节数(实际使用量)。
|
|
|
|
|
+totalJSHeapSize number 当前 JavaScript 堆内存总分配的字节数(包含未使用的空闲内存)。
|
|
|
|
|
+jsHeapSizeLimit number JavaScript 堆内存的最大限制字节数(由浏览器或系统决定)
|
|
|
|
|
+`
|
|
|
|
|
+ if (window['performance'] && window['performance']['memory']) {
|
|
|
|
|
+ var sGx = window['performance']['memory'];
|
|
|
|
|
+ MGx = ''['concat'](sGx['jsHeapSizeLimit'], ',')['concat'](sGx['totalJSHeapSize'], ',')['concat'](sGx['usedJSHeapSize']);
|
|
|
|
|
+ }
|
|
|
|
|
+ var OGx = ''['concat'](MGx, ',')['concat']("950");
|
|
|
|
|
+ return OGx
|
|
|
|
|
+
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+//用于获取浏览器支持的语音合成(TTS,Text-to-Speech)的语音列表
|
|
|
|
|
+var k5x = window["speechSynthesis"]["getVoices"](); // 20
|
|
|
|
|
+V1x = k5x['length']
|
|
|
|
|
+
|
|
|
|
|
+Mkx = ''['concat'](U9x(), ',')['concat'](V1x);
|
|
|
|
|
+
|
|
|
|
|
+W0x = ''.concat(Mkx, ',')['concat']('1,1,1', ',')['concat']("0", ',')['concat'](pRx, ',,,,,,')['concat'](f5x, ',,,')
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// 第4个数要注意
|
|
|
|
|
+wsl = "2248146944,110285101,98152829, 950, 20, 1,1,1,0,1,,,,,,0,,,1,1"
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// per --------------------------------------------------------------------------------
|
|
|
|
|
+Q0x = '999999'['concat'](P1x['slice'](wm, 2)['join'](''), '9')['concat'](P1x[lz], '9')['concat'](P1x['slice'](S1)['join'](''), '999');
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// fwd --------------------------------------------------------------------------------
|
|
|
|
|
+var qtx = function () {
|
|
|
|
|
+ c1x = [{"fmh": ""}, {'fmz': "1"}, {"ssh": K5x || ''}]
|
|
|
|
|
+ return c1x;
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// mst --------------------------------------------------------------------------------
|
|
|
|
|
+
|
|
|
|
|
+// 时间戳差值
|
|
|
|
|
+var Bmd = Date.now() - window.bmak["startTs"];
|
|
|
|
|
+NGd = parseInt(window.bmak['startTs'] / 4064256, 10);
|
|
|
|
|
+
|
|
|
|
|
+WYd = parseInt(NGd / 23, 10);
|
|
|
|
|
+
|
|
|
|
|
+// 时间戳差值
|
|
|
|
|
+var Omd = Date.now() - window.bmak["startTs"]
|
|
|
|
|
+var dDd = function (YS) {
|
|
|
|
|
+ var H7d = Math["floor"](Math["random"]() * 100000 + 10000);
|
|
|
|
|
+ var vZ = String(YS * H7d);
|
|
|
|
|
+ var sQd = 0;
|
|
|
|
|
+ var P4d = [];
|
|
|
|
|
+ var Ffd = vZ["length"] >= 18 ? true : false;
|
|
|
|
|
+ while (P4d["length"] < 6) {
|
|
|
|
|
+ P4d["push"](parseInt(vZ["slice"](sQd, sQd + 2), 10));
|
|
|
|
|
+ sQd = Ffd ? sQd + 3 : sQd + 2;
|
|
|
|
|
+ }
|
|
|
|
|
+ var FMd = P3(P4d);
|
|
|
|
|
+ return [H7d, FMd];
|
|
|
|
|
+};
|
|
|
|
|
+var P3 = function (ZA) {
|
|
|
|
|
+ var SW = ZA[0] - ZA[1];
|
|
|
|
|
+ var ng = ZA[2] - ZA[3];
|
|
|
|
|
+ var sb = ZA[4] - ZA[5];
|
|
|
|
|
+ var CJ = Math["sqrt"](SW * SW + ng * ng + sb * sb);
|
|
|
|
|
+ return Math["floor"](CJ);
|
|
|
|
|
+};
|
|
|
|
|
+var dbd = dDd(window.bmak['startTs']);
|
|
|
|
|
+
|
|
|
|
|
+DAd = "1,4815,3,1605,5,963"
|
|
|
|
|
+ Agd = Qc(Bmd, DAd, 0, 0);
|
|
|
|
|
+var r8d = [
|
|
|
|
|
+ {'kevl': 1},
|
|
|
|
|
+ {'mevl': 32},
|
|
|
|
|
+ {'tevl': 32},
|
|
|
|
|
+ {'devl': 0},
|
|
|
|
|
+ {'dmvl': 0},
|
|
|
|
|
+ {'pevl': 0},
|
|
|
|
|
+ {'tovl': 0},
|
|
|
|
|
+ {'delt': Bmd}, // 时间戳差值
|
|
|
|
|
+ {'it': 0},
|
|
|
|
|
+ {'sts': window.bmak['startTs']},
|
|
|
|
|
+ {'fct': -999999}, // HAd['td']
|
|
|
|
|
+ {'dd2': WYd},
|
|
|
|
|
+ {'kc': 0},
|
|
|
|
|
+ {'mc': 0},
|
|
|
|
|
+ {'ww8': 0},
|
|
|
|
|
+ {'pc': 0},
|
|
|
|
|
+ {'tc': 0},
|
|
|
|
|
+ {'ssts': Omd},
|
|
|
|
|
+ {'tst': 0},
|
|
|
|
|
+ {'rval': '-1'}, // HAd['rVal']
|
|
|
|
|
+ {'rcfp': '-1'}, // HAd['rCFP']
|
|
|
|
|
+ {'nfas': 30261693},
|
|
|
|
|
+ {'jsrf': "PiZtE"},
|
|
|
|
|
+ {'jsrf1': dbd[0]}, //开始时间戳 计算的值 会变
|
|
|
|
|
+ {'jsrf2': dbd[1]},
|
|
|
|
|
+ {'signals': '0'},
|
|
|
|
|
+ {'mwd': "0"},
|
|
|
|
|
+ {'hea': ''},
|
|
|
|
|
+ {'dvc': ''['concat'](Agd, ',')['concat'](0, ',')['concat']("l+g+e+a+i+f+j+c+h+b+d+k+")}, // kAd
|
|
|
|
|
+ {'srd': "0"}
|
|
|
|
|
+];
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// sde --------------------------------------------------------------------------------
|
|
|
|
|
+// var TKd = window['$cdc_asdjflasutopfhvcZLmcfl_'] || document['$cdc_asdjflasutopfhvcZLmcfl_'] ? true ? '1' : Mr()[LJ(kq)](XF, xMd) : gq(typeof Ik()[dY(bY)], 'undefined') ? Ik()[dY(F9)].apply(null, [T2, rdd, RN, Qm(F8)]) : Ik()[dY(Lm)](v9, rk, qr, v9);
|
|
|
|
|
+// var Kfd = RI(m4[AI()[Qz(mb)].call(null, gY, rV)][AI()[Qz(Ck)](lq, wF)][Ik()[dY(O3)](xr, Zr, jY, BN)][tk()[Ir(PB)].apply(null, [FW, Nm, mj, Ew])](tk()[Ir(S3)].apply(null, [lz, ON, YY, I4])), null) ? Mr()[LJ(BI)](vN, qA) : cJ(typeof Ik()[dY(PB)], gb('', [][[]])) ? Ik()[dY(Lm)](Qm(Qm(F8)), rk, qr, n9) : Ik()[dY(F9)](n3, cxd, KZ, Nm);
|
|
|
|
|
+// var Fnd = RI(typeof m4[cJ(typeof AI()[Qz(wp)], gb([], [][[]])) ? AI()[Qz(S3)](Nb, Am) : AI()[Qz(Lp)](nW, Dw)][tk()[Ir(S3)](xY, UN, YY, I4)], AI()[Qz(qm)].apply(null, [H9, FP])) && m4[AI()[Qz(S3)].call(null, Nb, Am)][tk()[Ir(S3)](kp, Sr, YY, I4)] ? Mr()[LJ(BI)].call(null, vN, qA) : Ik()[dY(Lm)](DJ, rk, qr, Ag);
|
|
|
|
|
+//
|
|
|
|
|
+//
|
|
|
|
|
+// var V6 = RI(typeof m4[cJ(typeof AI()[Qz(Ib)], gb([], [][[]])) ? AI()[Qz(mb)](gY, rV) : AI()[Qz(Lp)](rl, LO)][tk()[Ir(S3)](dz, sI, YY, I4)], AI()[Qz(qm)].apply(null, [H9, FP])) ? Mr()[LJ(BI)].apply(null, [vN, qA]) : Ik()[dY(Lm)](kq, rk, qr, X3);
|
|
|
|
|
+// dZ += rx;
|
|
|
|
|
+// var P1 = cJ(typeof m4[AI()[Qz(mb)].call(null, gY, rV)][Ik()[dY(Hm)].apply(null, [X3, WN, hk, Qm(Lm)])], AI()[Qz(qm)](H9, FP)) || cJ(typeof m4[AI()[Qz(Ck)](lq, wF)][gq(typeof Ik()[dY(jk)], 'undefined') ? Ik()[dY(F9)](dg, ZR, rB, Qm(Qm(Lm))) : Ik()[dY(Hm)].apply(null, [S3, WN, hk, Vr])], AI()[Qz(qm)].call(null, H9, FP)) ? Mr()[LJ(BI)](vN, qA) : Ik()[dY(Lm)](Ng, rk, qr, lz);
|
|
|
|
|
+// var zF = RI(m4[gq(typeof AI()[Qz(Fb)], gb([], [][[]])) ? AI()[Qz(Lp)].call(null, tN, IA) : AI()[Qz(mb)].apply(null, [gY, rV])][AI()[Qz(Ck)](lq, wF)][Ik()[dY(O3)].apply(null, [kr, Zr, jY, d8])][gq(typeof tk()[Ir(PJ)], gb([], [][[]])) ? tk()[Ir(X9)](mb, d8, tW, JR) : tk()[Ir(PB)](W3, LI, mj, Ew)](tk()[Ir(kb)](DJ, Ng, sq, zO)), null) ? gq(typeof Mr()[LJ(ON)], gb([], [][[]])) ? Mr()[LJ(kq)](t6, mF) : Mr()[LJ(BI)].apply(null, [vN, qA]) : Ik()[dY(Lm)](Qm(Qm(Lm)), rk, qr, xz);
|
|
|
|
|
+// var Tz = RI(m4[AI()[Qz(mb)](gY, rV)][AI()[Qz(Ck)](lq, wF)][Ik()[dY(O3)](Lm, Zr, jY, fr)][cJ(typeof tk()[Ir(HZ)], 'undefined') ? tk()[Ir(PB)].apply(null, [nW, Qm([]), mj, Ew]) : tk()[Ir(X9)](Qm(Qm([])), sp, YA, m3)](FY()[PW(lm)](Qm([]), lz, xs, ql, H9, Op)), null) ? gq(typeof Mr()[LJ(XY)], gb('', [][[]])) ? Mr()[LJ(kq)](IZ, I8) : Mr()[LJ(BI)].call(null, vN, qA) : Ik()[dY(Lm)].apply(null, [Qm([]), rk, qr, Lr]);
|
|
|
|
|
+// var vw = [TKd, Kfd, Fnd, V6, P1, zF, Tz];
|
|
|
|
|
+// var Kl = vw[Mr()[LJ(At)].apply(null, [JUd, YA])](lW()[Gp(XY)].apply(null, [vv, Lm, Nq, x3]));
|