分析.js 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468
  1. navigator = {
  2. userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36'
  3. }
  4. window = global
  5. // 新的akm js文件 搜索,可以搜 = {}; 从而快速定位 指纹数组生成位置 第一次请求时,里面有些值可能为空。。。观察下
  6. function getObj() {
  7. // 可写死的值
  8. let ver = '',
  9. url = "https://www.jetstar.com/hk/zh/home?adults=1&children=0&flexible=1&flight-type=2&infants=0&origin=PVG&tab=1",
  10. fpt = ";-1;dis;;true;true;true;-480;true;24;24;true;false;-1",
  11. 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": ""}],
  12. // mev 可写死, 但可能会触发验证码??
  13. 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;",
  14. startTs = Date.now() - 1000
  15. // window.bmak.startTs = startTs
  16. ajr = ajr(startTs) //用到 2 次,且要一致
  17. // console.log(ajr)
  18. ;
  19. return {
  20. "ver": ver, // 网页固定值,"C9vFEovTrypIjd1JK5C8oAAPjzy2LU11L9garZrvwm8="
  21. "fpt": fpt, // 可写死
  22. "fpc": fpc(fpt), // 根据fpt值生成
  23. "ajr": ajr, // 变化了 根据 startTs生成 可写死, 根据ua值生成
  24. "din": din(startTs), // 可写死, 数组:23位
  25. "eem": "do_en,dm_en,t_en", // 可写死, 检测函数后拼接而成, 示例值:"do_en,dm_en,t_en"
  26. "ffs": "", // 可写死, 值为空
  27. "vev": "2,490;3,5328;2,6723;3,8541;", // 可写死, ============================================
  28. "inf": "", // 网站固页值 示例值:""
  29. "ajt": '0,0', // 可写死 第一次请求为'0,0' 同一会话每次请求不一样,写死时 要注意要和生成 dvc 的入参一致
  30. // kev mev tev pev oev if 都是从一个函数返回的6位数组(变量组成 只有 0 1 有值,其他都是空字符串 可能会变)中升序取值 应该是轨迹数组
  31. "kev": "", // 可为空, 从6数组取值
  32. "mev": mev, // 可写死, 从6数组取值 鼠标移动轨迹
  33. "tev": "", // 从6数组取值 示例值:""
  34. "pev": "", // 从6数组取值 示例值:""
  35. "oev": "", // 从6数组取值 示例值:""
  36. "if": "", // 从6数组取值 示例值:""
  37. "dme": "0,521,-1,-1,-1,-1,-1,-1,-1,-1,-1;", // 可写死
  38. "doe": "0,522,-1,-1,-1;", // 可写死
  39. "pur": url, // 可写死 网页url 不能有反斜杠 \ 和双引号 " 示例值:
  40. "mst": mst(startTs, ajr), // 数组:30位 -------------------------分析
  41. "o9": 0, // 可写死, 网页固定值
  42. "sde": "0,0,0,0,1,0,0", // 可写死
  43. "pmo": "", // 可写死, 网页固定值
  44. "dpw": "", // 可写死, 网页固定值
  45. "pac": "", // 可写死, 网页固定值
  46. "per": '能写死', // 逆向----------------------------------
  47. "dsi": dsi, // 可写死, 数组:12位
  48. "wsl": "2172649472,76515477,62483333,100,1,1,1,1,0,1,,,,,,0,,,1,1", // 可写死 前3个数字是浏览器堆内存信息 中间2个数在变化
  49. "hls": "-1,,,1,1", // 可写死, 网页固定值
  50. "pde": "", // 可写死
  51. "fwd": [{"fmh": ""}, {"fmz": "1"}, {"ssh": "79d476b3ee7a1d053d47c234f8b00e881ef941614b47791e1d4610cb5e47a0ff"}], // 可写死
  52. }
  53. }
  54. // 公共方法
  55. var TSK = function (INK) {
  56. if (INK == null)
  57. return -1;
  58. try {
  59. var I8K = 0;
  60. for (var IjK = 0; IjK < INK["length"]; IjK++) {
  61. var UQK = INK["charCodeAt"](IjK);
  62. if (UQK < 128) {
  63. I8K = I8K + UQK;
  64. }
  65. }
  66. return I8K;
  67. } catch (JHK) {
  68. console.log('报错逻辑....')
  69. return -2;
  70. }
  71. };
  72. // XHK, 需要 AMK["fpValStr"] 值
  73. function fpc(val) {
  74. return "".concat(TSK(val));
  75. }
  76. // ajr ---------------------------------
  77. function ajr(startTimestamp) {
  78. var lfv = function (Jw) {
  79. var rTv = function (bxv, g8v) {
  80. return bxv >>> g8v | bxv << 32 - g8v;
  81. };
  82. 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];
  83. var Jl = 0x6a09e667;
  84. var BXv = 0xbb67ae85;
  85. var SVv = 0x3c6ef372;
  86. var FCv = 0xa54ff53a;
  87. var VTv = 0x510e527f;
  88. var tEv = 0x9b05688c;
  89. var ttv = 0x1f83d9ab;
  90. var hVv = 0x5be0cd19;
  91. var SUv = unescape(encodeURIComponent(Jw));
  92. var hXv = SUv["length"] * 8;
  93. SUv += String["fromCharCode"](0x80);
  94. var Sfv = SUv["length"] / 4 + 2;
  95. var pw = Math["ceil"](Sfv / 16);
  96. var nfv = new (Array)(pw);
  97. for (var Ol = 0; Ol < pw; Ol++) {
  98. nfv[Ol] = new (Array)(16);
  99. for (var fLv = 0; fLv < 16; fLv++) {
  100. 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;
  101. }
  102. }
  103. var VCv = hXv / Math["pow"](2, 32);
  104. nfv[pw - 1][14] = Math["floor"](VCv);
  105. nfv[pw - 1][15] = hXv;
  106. for (var Fbv = 0; Fbv < pw; Fbv++) {
  107. var GTv = new (Array)(64);
  108. var khv = Jl;
  109. var jXv = BXv;
  110. var Ydv = SVv;
  111. var jtv = FCv;
  112. var cl = VTv;
  113. var Ehv = tEv;
  114. var Vfv = ttv;
  115. var ddv = hVv;
  116. for (var Jvv = 0; Jvv < 64; Jvv++) {
  117. var qCv = void 0
  118. , lvv = void 0
  119. , Kq = void 0
  120. , vtv = void 0
  121. , Dnv = void 0
  122. , NCv = void 0;
  123. if (Jvv < 16)
  124. GTv[Jvv] = nfv[Fbv][Jvv];
  125. else {
  126. qCv = rTv(GTv[Jvv - 15], 7) ^ rTv(GTv[Jvv - 15], 18) ^ GTv[Jvv - 15] >>> 3;
  127. lvv = rTv(GTv[Jvv - 2], 17) ^ rTv(GTv[Jvv - 2], 19) ^ GTv[Jvv - 2] >>> 10;
  128. GTv[Jvv] = GTv[Jvv - 16] + qCv + GTv[Jvv - 7] + lvv;
  129. }
  130. lvv = rTv(cl, 6) ^ rTv(cl, 11) ^ rTv(cl, 25);
  131. Kq = cl & Ehv ^ ~cl & Vfv;
  132. vtv = ddv + lvv + Kq + kw[Jvv] + GTv[Jvv];
  133. qCv = rTv(khv, 2) ^ rTv(khv, 13) ^ rTv(khv, 22);
  134. Dnv = khv & jXv ^ khv & Ydv ^ jXv & Ydv;
  135. NCv = qCv + Dnv;
  136. ddv = Vfv;
  137. Vfv = Ehv;
  138. Ehv = cl;
  139. cl = jtv + vtv >>> 0;
  140. jtv = Ydv;
  141. Ydv = jXv;
  142. jXv = khv;
  143. khv = vtv + NCv >>> 0;
  144. }
  145. Jl = Jl + khv;
  146. BXv = BXv + jXv;
  147. SVv = SVv + Ydv;
  148. FCv = FCv + jtv;
  149. VTv = VTv + cl;
  150. tEv = tEv + Ehv;
  151. ttv = ttv + Vfv;
  152. hVv = hVv + ddv;
  153. }
  154. 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];
  155. };
  156. var gTv = function (RNv) {
  157. return Math["floor"](Math["random"]() * RNv["length"]);
  158. };
  159. var Fw = function (kzv) {
  160. var W3v = '';
  161. for (var F6v = 0; F6v < kzv["length"]; F6v++) {
  162. W3v += kzv[F6v]["toString"](16)["length"] === 2 ? kzv[F6v]["toString"](16) : "0"["concat"](kzv[F6v]["toString"](16));
  163. }
  164. return W3v;
  165. };
  166. var fDv = Fw(lfv(btoa(startTimestamp)));
  167. var tfv = [];
  168. var dnv = "";
  169. for (var XVv = 0; XVv < 5; XVv++) {
  170. var Pgv = gTv(fDv);
  171. tfv["push"](Pgv);
  172. dnv = dnv + fDv[Pgv];
  173. }
  174. var zCv = [dnv, tfv];
  175. return zCv["join"]("|")
  176. }
  177. // din 23arr ----------------------- 第 5 个
  178. function din(startTs) {
  179. ` **************** adp 生成过程(可写死) ***************
  180. var Q56 = window['callPhantom'] ? 1 : 0; // 值为 0 , 检测无头浏览器
  181. var kR6 = window['ActiveXObject'] && 'ActiveXObject' in window ? 1 : 0; // 值为 0 , 识别 IE 浏览器(ActiveXObject 是 IE 特有的属性
  182. var pW6 = typeof window['document']['documentMode'] == 'number' ? 1 : 0; // 值为 0 , 检测 IE 文档模式(document.documentMode 是 IE 特有属性)
  183. var cc6 = window['chrome'] && window['chrome']['webstore'] ? 1 : 0; // 值为 0 , 检测 Chrome 浏览器
  184. var UR6 = window['navigator']['onLine'] ? 1 : 0; // 值为 1 , 检测网络状态, navigator.onLine可判断浏览器是否在线
  185. var mk6 = window['opera'] ? 1 : 0; // 值为 0 , 检测旧版 Opera 浏览器(opera 是旧版 Opera 特有)
  186. var VZ6 = typeof window['InstallTrigger'] !== 'undefined' ? 1 : 0; // 值为 0 , 检测 Firefox 浏览器(InstallTrigger 是 Firefox 特有属性)
  187. var rQ6 = window['HTMLElement'] && window['Object']['prototype']['toString'].call(window['HTMLElement'])['indexOf']('Constructor') > 0 ? 1 : 0; // 值为 0 ,
  188. var g36 = typeof window['RTCPeerConnection'] === 'function' || typeof window['mozRTCPeerConnection'] === 'function' // 值为 1 , 判断浏览器是否支持 WebRTC
  189. var Ng6 = 'mozInnerScreenY' in window ? window['mozInnerScreenY'] : 0; // 值为 0 , 检测 Firefox 特定属性
  190. var OL6 = typeof window['navigator']['vibrate'] === 'function' ? 1 : 0; // 值为 1 , 检查设备是否支持振动
  191. var Wc6 = typeof window['navigator']['getBattery'] === 'function' ? 1 : 0; // 值为 1 , 检查电池API支持
  192. var U96 = !window['Array']['prototype']['forEach'] ? 1 : 0; // 值为 0 , 检测 ES5 数组方法支持
  193. var EC6 = 'FileReader' in window ? 1 : 0; // 值为 1 , 检测是否支持文件读取
  194. 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);
  195. `
  196. // PMK ------------------------------------------ ran 生成 ----------------------------------------------------------
  197. var ZEK = Math.random()
  198. var KDK = parseInt(ZEK * 1000 / 2, 10)
  199. var PMK = "".concat(ZEK).slice(0, 11) + KDK
  200. var Arr23 = [
  201. {"wdr": 0}, // window.webdriver ? 1 : 0; => 0
  202. {"xag": 12147}, // 不会js文件是不一样的 网页固定值 RcK(973, [])
  203. {"asw": 1920}, // window.screen.availWidth
  204. {"nal": "zh-CN"}, // navigator['language']
  205. {"wow": 1920}, // window.outerWidth
  206. // 将时间戳 window.bmak.startTs 除以固定数值 (2016*2016)4064256,并将结果转换为十进制整数
  207. {"hz1": parseInt(startTs / 4064256, 10)},
  208. {"nps": "20030107"}, // navigator['productSub']
  209. {"pha": 0}, // window._phantom ? 1 : 0; => 0
  210. {"ibr": 0}, // 网页固定值
  211. {"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()
  212. {"hal": startTs / 2}, // ZqK = window.bmak.startTs / 2
  213. {"ucs": "8106"}, // CCK 生成逻辑 ''.concat(TSK(navigator.userAgent)) =》 '8106'
  214. {"she": 1080}, // window.screen.height => 1080
  215. {"wih": 919}, // window.innerHeight => 919
  216. {"ash": 1040}, // window.screen.availHeight
  217. {"dau": 0}, // window.domAutomation ? 1 : 0; => 0
  218. {"wiw": 1920}, // window.innerWidth => 1920 616??
  219. {"nap": "Gecko"}, // navigator['product']
  220. {"npl": 5}, // navigator['plugins']['length']
  221. {"swi": 1920}, // window.screen.width =>
  222. {"tsd": 0}, // 网页固定值
  223. {"ua": navigator.userAgent},
  224. {"ran": PMK}, // 随机值(应该可以写死)
  225. ]
  226. return Arr23
  227. }
  228. function mst(startTs, ajr) {
  229. // 时间戳差值
  230. var Bmd = Date.now() - startTs;
  231. // window.bmak.startTs = startTs
  232. require('./扣算法2')
  233. var dbd = dDd(startTs);
  234. console.log('ajr', ajr)
  235. Agd = arg1.Gb(0, ajr, 1, 0)
  236. console.log(Agd)
  237. return [
  238. {'kevl': 1},
  239. {'mevl': 32},
  240. {'tevl': 32},
  241. {'devl': 0},
  242. {'dmvl': 0}, // 变化的
  243. {'pevl': 0},
  244. {'tovl': 0}, // 变化的
  245. {'delt': Bmd}, // 时间戳差值
  246. {'it': 0},
  247. {'sts': startTs},
  248. {'fct': -999999}, // HAd['td']
  249. {'dd2': parseInt(parseInt(startTs / 4064256, 10) / 23, 10)},
  250. {'kc': 0},
  251. {'mc': 0},
  252. {'ww8': 0},
  253. {'pc': 0},
  254. {'tc': 0},
  255. {'ssts': Bmd}, // 时间戳差值
  256. {'tst': 0},
  257. {'rval': '-1'}, // HAd['rVal']
  258. {'rcfp': '-1'}, // HAd['rCFP']
  259. {'nfas': 30261693},
  260. {'jsrf': "PiZtE"},
  261. {'jsrf1': dbd[0]}, //开始时间戳 计算的随机值
  262. {'jsrf2': dbd[1]},
  263. {'signals': '0'},
  264. {'mwd': "0"},
  265. {'hea': ''},
  266. // 第1个值根据 ajr 生成 第2个值是时间戳差值 第3个是根据环境判断得来的 不同js会变
  267. {'dvc': ''['concat'](Agd, ',')['concat'](0, ',')['concat']("i+j+g+d+k+h+f+l+")}, // 不能写死 尤其是第一个值 ------------
  268. {'srd': "0"}
  269. ];
  270. }
  271. var dDd = function (YS) {
  272. var P3 = function (ZA) {
  273. var SW = ZA[0] - ZA[1];
  274. var ng = ZA[2] - ZA[3];
  275. var sb = ZA[4] - ZA[5];
  276. var CJ = Math["sqrt"](SW * SW + ng * ng + sb * sb);
  277. return Math["floor"](CJ);
  278. };
  279. var H7d = Math["floor"](Math["random"]() * 100000 + 10000);
  280. var vZ = String(YS * H7d);
  281. var sQd = 0;
  282. var P4d = [];
  283. var Ffd = vZ["length"] >= 18 ? true : false;
  284. while (P4d["length"] < 6) {
  285. P4d["push"](parseInt(vZ["slice"](sQd, sQd + 2), 10));
  286. sQd = Ffd ? sQd + 3 : sQd + 2;
  287. }
  288. var FMd = P3(P4d);
  289. return [H7d, FMd];
  290. };
  291. // console.log(JSON.stringify(mst(1745981943082)));
  292. console.log(getObj(1746587916230))
  293. // console.log(arg1.Gb(141296, "46e1c|63,3,35,62,19", 1, 12250583))
  294. console.log(dDd(1746587916230))
  295. // wsl --------------------------------------------------------------------------------
  296. var U9x = function () {
  297. var MGx = "-1,-1,-1";
  298. // window.performance.memory; 获取 JavaScript 内存使用情况
  299. ` 返回一个包含以下属性的对象(示例值):
  300. 属性 类型 描述
  301. usedJSHeapSize number 当前 JavaScript 堆内存已使用的字节数(实际使用量)。
  302. totalJSHeapSize number 当前 JavaScript 堆内存总分配的字节数(包含未使用的空闲内存)。
  303. jsHeapSizeLimit number JavaScript 堆内存的最大限制字节数(由浏览器或系统决定)
  304. `
  305. if (window['performance'] && window['performance']['memory']) {
  306. var sGx = window['performance']['memory'];
  307. MGx = ''['concat'](sGx['jsHeapSizeLimit'], ',')['concat'](sGx['totalJSHeapSize'], ',')['concat'](sGx['usedJSHeapSize']);
  308. }
  309. var OGx = ''['concat'](MGx, ',')['concat']("950");
  310. return OGx
  311. };
  312. //用于获取浏览器支持的​​语音合成(TTS,Text-to-Speech)的语音列表
  313. var k5x = window["speechSynthesis"]["getVoices"](); // 20
  314. V1x = k5x['length']
  315. Mkx = ''['concat'](U9x(), ',')['concat'](V1x);
  316. W0x = ''.concat(Mkx, ',')['concat']('1,1,1', ',')['concat']("0", ',')['concat'](pRx, ',,,,,,')['concat'](f5x, ',,,')
  317. // 第4个数要注意
  318. wsl = "2248146944,110285101,98152829, 950, 20, 1,1,1,0,1,,,,,,0,,,1,1"
  319. // per --------------------------------------------------------------------------------
  320. Q0x = '999999'['concat'](P1x['slice'](wm, 2)['join'](''), '9')['concat'](P1x[lz], '9')['concat'](P1x['slice'](S1)['join'](''), '999');
  321. // fwd --------------------------------------------------------------------------------
  322. var qtx = function () {
  323. c1x = [{"fmh": ""}, {'fmz': "1"}, {"ssh": K5x || ''}]
  324. return c1x;
  325. };
  326. // mst --------------------------------------------------------------------------------
  327. // 时间戳差值
  328. var Bmd = Date.now() - window.bmak["startTs"];
  329. NGd = parseInt(window.bmak['startTs'] / 4064256, 10);
  330. WYd = parseInt(NGd / 23, 10);
  331. // 时间戳差值
  332. var Omd = Date.now() - window.bmak["startTs"]
  333. var dDd = function (YS) {
  334. var H7d = Math["floor"](Math["random"]() * 100000 + 10000);
  335. var vZ = String(YS * H7d);
  336. var sQd = 0;
  337. var P4d = [];
  338. var Ffd = vZ["length"] >= 18 ? true : false;
  339. while (P4d["length"] < 6) {
  340. P4d["push"](parseInt(vZ["slice"](sQd, sQd + 2), 10));
  341. sQd = Ffd ? sQd + 3 : sQd + 2;
  342. }
  343. var FMd = P3(P4d);
  344. return [H7d, FMd];
  345. };
  346. var P3 = function (ZA) {
  347. var SW = ZA[0] - ZA[1];
  348. var ng = ZA[2] - ZA[3];
  349. var sb = ZA[4] - ZA[5];
  350. var CJ = Math["sqrt"](SW * SW + ng * ng + sb * sb);
  351. return Math["floor"](CJ);
  352. };
  353. var dbd = dDd(window.bmak['startTs']);
  354. DAd = "1,4815,3,1605,5,963"
  355. Agd = Qc(Bmd, DAd, 0, 0);
  356. var r8d = [
  357. {'kevl': 1},
  358. {'mevl': 32},
  359. {'tevl': 32},
  360. {'devl': 0},
  361. {'dmvl': 0},
  362. {'pevl': 0},
  363. {'tovl': 0},
  364. {'delt': Bmd}, // 时间戳差值
  365. {'it': 0},
  366. {'sts': window.bmak['startTs']},
  367. {'fct': -999999}, // HAd['td']
  368. {'dd2': WYd},
  369. {'kc': 0},
  370. {'mc': 0},
  371. {'ww8': 0},
  372. {'pc': 0},
  373. {'tc': 0},
  374. {'ssts': Omd},
  375. {'tst': 0},
  376. {'rval': '-1'}, // HAd['rVal']
  377. {'rcfp': '-1'}, // HAd['rCFP']
  378. {'nfas': 30261693},
  379. {'jsrf': "PiZtE"},
  380. {'jsrf1': dbd[0]}, //开始时间戳 计算的值 会变
  381. {'jsrf2': dbd[1]},
  382. {'signals': '0'},
  383. {'mwd': "0"},
  384. {'hea': ''},
  385. {'dvc': ''['concat'](Agd, ',')['concat'](0, ',')['concat']("l+g+e+a+i+f+j+c+h+b+d+k+")}, // kAd
  386. {'srd': "0"}
  387. ];
  388. // sde --------------------------------------------------------------------------------
  389. // 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);
  390. // 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);
  391. // 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);
  392. //
  393. //
  394. // 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);
  395. // dZ += rx;
  396. // 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);
  397. // 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);
  398. // 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]);
  399. // var vw = [TKd, Kfd, Fnd, V6, P1, zF, Tz];
  400. // var Kl = vw[Mr()[LJ(At)].apply(null, [JUd, YA])](lW()[Gp(XY)].apply(null, [vv, Lm, Nq, x3]));