// 环境 ********************** window = global; 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' } /**--------------------------------------- 加密 ajr ------------------------------------**/ XH = function (DV) { return gG.apply(this, [60, arguments]); } AH = function (JQ, p3) { return gG.apply(this, [43, arguments]); } GH = function () { this[93].pop(); } pW = function () { this[93] = []; } Hr = function (Lz) { this[93] = [Lz[235].D]; } AG = function () { this[93][this[93].length] = {}; } function Gs(Ys, w3) { return Ys != w3; } function FE(jN, kJ) { return jN - kJ; } js = function () { return [...this[93]]; } function Tr(AA, Z) { return AA == Z; } function rz(QE, HA) { return QE < HA; } function SF(gA, ds) { return gA | ds; } function Y3(c3, UG) { return c3 << UG; } function fG(k3, NW) { switch (k3) { case 14: { var n3 = NW[0]; n3[138] = function (sN, QG) { var QN = atob(sN); var QV = 0; var WW = []; var DO = 0; for (var HQ = 0; HQ < QN.length; HQ++) { WW[DO] = QN.charCodeAt(HQ); QV = QV ^ WW[DO++]; } Sr(27, [this, 210]); return WW; } ; Sr(18, [n3]); } break; case 0: { var D3 = NW[0]; D3[160] = function () { return this[205][this[0][62]++]; } ; fG(14, [D3]); } break; case 36: { var O7 = NW[0]; O7[53] = function (UO) { return this[105](UO ? this[93][FE(this[93]["length"], 1)] : this[93].pop()); } ; fG(0, [O7]); } break; case 47: { var sF = NW[0]; sF[105] = function (TO) { return Tr(typeof TO, "object") ? TO.D : TO; } ; fG(36, [sF]); } break; case 24: { var mJ = NW[0]; mJ[29] = function (fW) { return AH.call(this[45], fW, this); } ; fG(47, [mJ]); } break; case 6: { var Vz = NW[0]; Vz[254] = function (MV, bG, xE) { if (Tr(typeof MV, "object")) { xE ? this[93].push(MV.D = bG) : MV.D = bG; } else { // T.call(this[45], MV, bG); this[45][93][FE(this[45][93].length, 1)][MV] = bG; } } ; fG(24, [Vz]); } break; case 12: { var cE = NW[0]; cE[35] = function (hJ, f) { this[0][hJ] = f; } ; cE[121] = function (MN) { return this[0][MN]; } ; fG(6, [cE]); } break; } } function Sr(PE, n) { switch (PE) { case 48: { var TN = n[0]; TN[253] = function () { this[93].push(this[53]() !== this[53]()); } ; KQ(37, [TN]); } break; case 27: { var gz = n[0]; var KW = n[1]; gz[106] = function (FO) { return qW(xQ(FO, KW), bF); } ; Sr(48, [gz]); } break; case 46: { var L = n[0]; L[157] = function () { var dN = this[160](); while (dN !== 2) { this[dN](this); dN = this[160](); } } ; } break; case 30: { var HE = n[0]; HE[158] = function (VN, L7) { return { get D() { return VN[L7]; }, set D(BJ) { VN[L7] = BJ; } }; } ; Sr(46, [HE]); } break; case 40: { var gQ = n[0]; gQ[210] = function (DN) { return { get D() { return DN; }, set D(OV) { DN = OV; } }; } ; Sr(30, [gQ]); } break; case 44: { var X3 = n[0]; X3[55] = function (zA) { return { get D() { return zA; }, set D(Vs) { zA = Vs; } }; } ; Sr(40, [X3]); } break; case 25: { var RF = n[0]; RF[179] = function () { var Wz = SF(Y3(this[160](), 8), this[160]()); var U3 = ""; for (var bV = 0; rz(bV, Wz); bV++) { U3 += String.fromCharCode(this[160]()); } return U3; } ; Sr(44, [RF]); } break; case 61: { var S = n[0]; S[114] = function () { var tH = SF(SF(SF(Y3(this[160](), 24), Y3(this[160](), 16)), Y3(this[160](), 8)), this[160]()); return tH; } ; Sr(25, [S]); } break; case 18: { var SA = n[0]; SA[175] = function () { var r7 = P3()[v(A)](kF, WQ, hH, AO); for (let PH = 0; rz(PH, nA); ++PH) { r7 += this[160]().toString(mA).padStart(nA, pE()[Mz(mA)](YH, WQ, CG, C3)); } var cO = parseInt(r7.slice(VW, kW), mA); var ks = r7.slice(kW); if (Tr(cO, 0)) { if (Tr(ks.indexOf(P3()[v(mA)](OG, 0, A, Bw)), TG(VW))) { return 0; } else { cO -= Os[A]; ks = xQ(pE()[Mz(mA)](YH, WQ, Nr(Nr({})), M3), ks); } } else { cO -= Os[hH]; ks = xQ(P3()[v(mA)].call(null, OG, 0, lV, Nr(Nr({}))), ks); } var K3 = 0; var UW = VW; for (let bE of ks) { K3 += NV(UW, parseInt(bE)); UW /= mA; } return NV(K3, Math.pow(mA, cO)); } ; Sr(61, [SA]); } break; } } function gG(rE, IJ) { switch (rE) { case 49: { var xH = IJ[0]; var JF = IJ[1]; return this[93][FE(this[93].length, VW)][xH] = JF; } break; case 43: { var JQ = IJ[0]; var p3 = IJ[1]; for (var pO of [...this[93]].reverse()) { if (JQ in pO) { return p3[158](pO, JQ); } } throw DA()[pJ(hH)](Jw, V3); } break; case 60: { var DV = IJ[0]; if (this[93].length === 0) this[93] = Object.assign(this[93], DV); } break; case 16: { var OE = IJ[0]; var sA = IJ[1]; var KV = IJ[2]; this[205] = this[138](sA, KV); this[235] = this[210](OE); this[45] = new Hr(this); this[35](62, 0); while (rz(this[0][62], this[205].length)) { var Or = this[160](); this[Or](this); } } break; case 32: { var mN = IJ[0]; mN[6] = function () { this[93].push(this[53]() >>> this[53]()); } ; } break; case 1: { var tA = IJ[0]; tA[9] = function () { this[93].push(this[160]()); } ; gG(32, [tA]); } break; case 34: { var Es = IJ[0]; Es[10] = function () { var hw = this[160](); var wV = this[160](); var IG = this[160](); var wO = this[53](); var NF = []; for (var TF = 0; rz(TF, IG); ++TF) { switch (this[93].pop()) { case 0: NF.push(this[53]()); break; case 1: var cz = this[53](); for (var l7 of cz.reverse()) { NF.push(l7); } break; default: throw new Error(pE()[Mz(hH)](TG(AW), mA, kA, zJ)); } } var IN = wO.apply(this[235].D, NF.reverse()); hw && this[93].push(this[210](IN)); } ; gG(1, [Es]); } break; case 10: { var tr = IJ[0]; tr[13] = function () { this[93].push(this[210](undefined)); } ; gG(34, [tr]); } break; case 8: { var mz = IJ[0]; mz[37] = function () { this[93].push(this[53]() * this[53]()); } ; gG(10, [mz]); } break; } } function KQ(VG, r) { switch (VG) { case 17: { var O3 = r[0]; O3[170] = function () { this[93].push(this[53]() >> this[53]()); } ; ZW(29, [O3]); } break; case 21: { var hV = r[0]; hV[223] = function () { this[93].push(this[53]() in this[53]()); } ; KQ(30, [hV]); } break; case 30: { var XW = r[0]; XW[215] = function () { var Ew = this[160](); var PV = this[93].pop(); var zQ = this[93].pop(); var xz = this[93].pop(); var r3 = this[0][62]; this[35](62, PV); this[157](); this[35](62, xz); this[157](); this[35](62, r3); } ; KQ(1, [XW]); } break; case 1: { var CW = r[0]; CW[185] = function () { // 长度为 7 GH.call(this[45]); } ; KQ(41, [CW]); } break; case 47: { var W7 = r[0]; W7[171] = function () { this[93].push(kN(this[53](), this[53]())); } ; KQ(17, [W7]); } break; case 57: { var pH = r[0]; pH[172] = function () { this[93].push(this[53]() + this[53]()); } ; KQ(47, [pH]); } break; case 39: { var nQ = r[0]; nQ[240] = function () { this[93].push(this[179]()); } ; KQ(9, [nQ]); } break; case 37: { var DW = r[0]; DW[251] = function () { var gW = this[160](); var g = this[114](); if (this[53](gW)) { this[35](62, g); } } ; KQ(39, [DW]); } break; case 9: { var Zs = r[0]; Zs[236] = function () { this[35](62, this[114]()); } ; KQ(21, [Zs]); } break; case 41: { var sw = r[0]; sw[174] = function () { var bQ = []; var bW = this[93].pop(); var kw = FE(this[93].length, 1); for (var ZQ = 0; rz(ZQ, bW); ++ZQ) { bQ.push(this[105](this[93][kw--])); } this[254]("arguments", bQ); } ; KQ(57, [sw]); } break; } } function ZW(X7, Gz) { switch (X7) { case 43: { var KF = Gz[0]; KF[115] = function () { this[93].push(-1 * this[53]()); } ; bJ(59, [KF]); } break; case 34: { var bs = Gz[0]; bs[118] = function () { this[93].push(this[53]() && this[53]()); } ; ZW(43, [bs]); } break; case 39: { var FA = Gz[0]; FA[125] = function () { this[93].push(this[53]() % this[53]()); } ; ZW(34, [FA]); } break; case 21: { var zW = Gz[0]; zW[139] = function () { this[93].push(SF(this[53](), this[53]())); } ; ZW(39, [zW]); } break; case 55: { var mW = Gz[0]; mW[147] = function () { var Mw = this[160](); var vH = this[53](); var RA = this[53](); var Sw = this[158](RA, vH); if (!Mw) { var ls = this; var lr = { get(CQ) { ls[235] = CQ; return RA; } }; this[235] = new Proxy(this[235], lr); } this[93].push(Sw); } ; ZW(21, [mW]); } break; case 24: { var VQ = Gz[0]; VQ[151] = function () { this[93].push(this[53]() ^ this[53]()); } ; ZW(55, [VQ]); } break; case 1: { var WF = Gz[0]; WF[152] = function () { var IE = []; var tz = this[160](); while (tz--) { switch (this[93].pop()) { case 0: IE.push(this[53]()); break; case 1: var lQ = this[53](); for (var zV of lQ) { IE.push(zV); } break; } } this[93].push(this[55](IE)); } ; ZW(24, [WF]); } break; case 18: { var FH = Gz[0]; FH[156] = function () { var k7 = this[160](); var gV = this[114](); if (!this[53](k7)) { this[35](62, gV); } } ; ZW(1, [FH]); } break; case 52: { var bH = Gz[0]; bH[159] = function () { this[93].push(this[29](this[179]())); } ; ZW(18, [bH]); } break; case 29: { var WE = Gz[0]; WE[167] = function () { this[93] = []; pW.call(this[45]); this[35](62, this[205].length); } ; ZW(52, [WE]); } break; } } function bJ(PG, rO) { switch (PG) { case 38: { var fH = rO[0]; fH[39] = function () { var Er = this[93].pop(); var Qw = this[160](); if (Gs(typeof Er, "object")) { throw "Invalid left-hand side expression in postfix operation"; } if (Qw > 1) { Er.D++; return; } this[93].push(new Proxy(Er, { get(dH, rr, m) { if (Qw) { return ++dH.D; } return dH.D++; } })); } ; gG(8, [fH]); } break; case 39: { var hE = rO[0]; hE[46] = function () { var LF = this[160](); var F = this[160](); var cW = this[114](); var tQ = js.call(this[45]); var RO = this[235]; this[93].push(function (...Yw) { var J = hE[235]; LF ? hE[235] = RO : hE[235] = hE[210](this); var xG = FE(Yw.length, F); hE[209] = xG + 1; while (rz(xG++, 0)) { Yw.push(undefined); } for (let Kr of Yw.reverse()) { hE[93].push(hE[210](Kr)); } XH.call(hE[45], tQ); var LW = hE[0][62]; hE[35](62, cW); hE[93].push(Yw.length); hE[157](); var AN = hE[53](); while (--xG > 0) { hE[93].pop(); } hE[35](62, LW); hE[235] = J; return AN; }); } ; bJ(38, [hE]); } break; case 5: { var mF = rO[0]; mF[48] = function () { this[93].push(Y3(this[53](), this[53]())); } ; bJ(39, [mF]); } break; case 41: { var wN = rO[0]; wN[49] = function () { this[93].push(this[114]()); } ; bJ(5, [wN]); } break; case 56: { var vz = rO[0]; vz[61] = function () { this[93].push(FE(this[53](), this[53]())); } ; bJ(41, [vz]); } break; case 17: { var vN = rO[0]; vN[84] = function () { this[93].push(this[53]() === this[53]()); } ; bJ(56, [vN]); } break; case 15: { var DQ = rO[0]; DQ[86] = function () { this[93].push(this[53]() / this[53]()); } ; bJ(17, [DQ]); } break; case 43: { var QH = rO[0]; QH[87] = function () { this[93].push(rz(this[53](), this[53]())); } ; bJ(15, [QH]); } break; case 27: { var fr = rO[0]; fr[91] = function () { AG.call(this[45]); } ; bJ(43, [fr]); } break; case 59: { var ME = rO[0]; ME[99] = function () { this[254](this[93].pop(), this[53](), this[160]()); } ; bJ(27, [ME]); } break; } } var xG = function kp(NR, rR) { switch (NR) { case 50: { return parseInt(...rR); } break; case 18: { return String(...rR); } break; } }; dw = function (OE, sA, KV) { return gG.apply(this, [16, arguments]); } class cU { constructor() { this[0] = []; this[205] = []; this[93] = []; this[209] = 0; fG(12, [this]); this['t'] = dw; } } // 初始化加密函数 var nRv = new cU() var arg1 = { Math: Math, String: function () { return xG.apply(this, [18, arguments]); }, document: { createElement: function (res) { if (res === 'div') return { getElementsByTagName: function () { }, ATTRIBUTE_NODE: 2, baseURI: "https://www.jetstar.com/hk/zh/home?adults=1&destination=MYJ&flexible=1&flight-type=1&origin=PVG&selected-departure-date=2025-05-17&tab=1" } } }, parseInt: function () { return xG.apply(this, [50, arguments]); }, window: window } let enStr = "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" nRv['t'](arg1, enStr, 0) function get_dvc(startTs, ajr) { window.bmak = { startTs: startTs } val = arg1.Gb(0, ajr, 0, 0) // 这3个参数 与外面其他参数有联系, 2者保持一致 否则请求失败 console.log('加密ajr生成的dvc => ', val) return val } /**-------------------------------------------------- 31条风控参数的生成---------------------------------------------------------------**/ function get_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 jx = function (Hp4) { var Ml4 = 0; for (var Kl4 = 0; Kl4 < Hp4["length"]; Kl4++) { Ml4 = Ml4 + Hp4["charCodeAt"](Kl4); } return Ml4; }; var Gx = function (nD4) { var pE4 = 1; var hV4 = []; var lV4 = Math["sqrt"](nD4); while (pE4 <= lV4 && hV4["length"] < 6) { if (nD4 % pE4 === 0) { if (nD4 / pE4 === pE4) { hV4["push"](pE4); } else { hV4["push"](pE4, nD4 / pE4); } } pE4 = pE4 + 1; } return hV4; }; var fDv = Fw(lfv(btoa(startTimestamp))); // console.log(fDv) var tfv = []; var dnv = ""; for (var XVv = 0; XVv < 5; XVv++) { var Pgv = gTv(fDv); tfv["push"](Pgv); dnv = dnv + fDv[Pgv]; } var jz = jx(dnv); var tz = Gx(jz); var zCv = [tz, tfv]; return zCv["join"]("|") } function mst(startTs, ajr) { function dDd(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; 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 dbd = dDd(startTs); console.log('2arr => ', dbd) let dvc = get_dvc(startTs, ajr) // 生成 dvc 的2个入参与下面保持一致 return [ { 'kevl': 1 }, {'mevl': 32}, {'tevl': 32}, {'devl': 0}, {'dmvl': 0}, {'pevl': 0}, {'tovl': 0}, {'delt': 0}, // ----111 {'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': 6}, // ------------111 {'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'](dvc, ',')['concat'](0, ',')['concat']("j+h+i+a+b+l+k+f+e+g+")}, // !!! ------------ {'srd': "0"} ]; } function fpc(val) { var TSK = function (INK) { if (INK == null) return -1; var I8K = 0; for (var IjK = 0; IjK < INK["length"]; IjK++) { var UQK = INK["charCodeAt"](IjK); if (UQK < 128) { I8K = I8K + UQK; } } return I8K; }; return "".concat(TSK(val)); } function get_din(startTs) { // 顺序不能乱写,要和网站一样 // PMK ------------------------------------------ ran 生成 ---------------------------------------------------------- var ZEK = Math.random() var KDK = parseInt(ZEK * 1000 / 2, 10) var PMK = "".concat(ZEK).slice(0, 11) + KDK return [ { "swi": 1920 }, { "wiw": 0 }, { "pha": 0 }, { "asw": 1920 }, { "nap": "Gecko" }, { "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36" }, { "ibr": 0 }, { "dau": 0 }, { "ash": 1040 }, { "nps": "20030107" }, { "she": 1080 }, { "tsd": 0 }, { "hz1": parseInt(startTs / 4064256, 10) }, { "ucs": "8106" }, { "ran": PMK }, { "xag": 11891 }, { "hal": startTs / 2 }, { "nal": "zh-CN" }, { "wih": 0 }, { "npl": 5 }, { "wow": 1920 }, { "wdr": 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" }, ] } function getObj31(startTs) { // 可写死的值 let ver = "DgDcH7HprZHwfUNBN4CSgeKfT7hmmQsJ4rqotwEhn7E=", // 不用和网站保持一致,但下面加密需要一致 fpt = ";-1;dis;,7;true;true;true;-480;true;24;24;true;false;-1", ajr = get_ajr(startTs), // 用到 2 次,且要一致 要注意, url = "https://www.jetstar.com/hk/zh/home?adults=1&destination=LST&flexible=1&flight-type=1&origin=PVG&selected-departure-date=2025-06-31&tab=1", dsi = [ { "get": "" }, { "set": "0" }, { "ico": "070f409b82df3bdd2f51a6415c7895353c153c47fe6dd8a0f87f3d14c46ccb2b" }, { "ift": "3" }, { "xof": "4,5,1,1,8" }, { "xot": "4,5,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;" ; return { "ver": ver, "fpt": fpt, "fpc": "4542", "ajr": ajr, "din": get_din(startTs), "eem": "do_en,dm_en,t_en", "ffs": "", "vev": "", "inf": "", "ajt": '0,0', // 逆向 "kev": "", "dme": "0,521,-1,-1,-1,-1,-1,-1,-1,-1,-1;", "mev": mev, "doe": "0,522,-1,-1,-1;", "pur": url, "pev": "", "mst": mst(startTs, ajr), "o9": 0, "tev": "", "sde": "0,0,0,0,1,0,0", "pmo": "", "dpw": "", "pac": "", "per": '', // 逆向 "dsi": dsi, "wsl": "2172649472,76515477,62483333,100,1,1,1,1,0,1,,,,,,0,,,1,1", "hls": "-1,,,1,1", "pde": "", "oev": "", "if": "", "fwd": [{"fmh": ""}, {"fmz": "1"}, {"ssh": "79d476b3ee7a1d053d47c234f8b00e881ef941614b47791e1d4610cb5e47a0ff"}], } } // console.log(getObj31(1746605429721)); /**---------------------------------------------加密过程--------------------------------------------------------**/ // 用到的数字变量,一般不变 ---------------------------------------------- mU = [ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, -1, 2, 3, 4, 5, -1, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91 ] // 不变的 Dz = " !#$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~" var vJ9 = function () { var wS9 = "3"; var JB = '0'; var SG9 = 1; var S19 = 0; var Zf9 = "0kjOk5uDxv22HSGAdNrD9101Gak6CFghAYCGIGnWw2g="; // 不同js文件是变化的, 但是在网页是固定值 var VP = [wS9, JB, SG9, S19, 4338241, Zf9]; var tK9 = VP["join"](";"); return tK9 }; // 加密函数 ---------------------------------------------- function fun1(En9, W59) { var UM9 = En9['split'](":") ; for (hw9 = 0; hw9 < UM9["length"]; hw9++) { hj9 = (W59 >> 8 & 65535) % UM9['length']; W59 *= 65793; W59 &= 4294967295; W59 += 4282663; W59 &= 8388607; JO9 = (W59 >> 8 & 65535) % UM9["length"]; W59 *= 65793; W59 &= 4294967295; W59 += 4282663; W59 &= 8388607; M09 = UM9[hj9]; UM9[hj9] = UM9[JO9]; UM9[JO9] = M09; } bF9 = UM9['join'](":") return bF9 } function fun2(Ig, Bx) { var tv = ""; for (var sm = 0; sm < Ig['length']; sm++) { var ZT = Ig['charAt'](sm); var tE = Bx >> 8 & 65535; Bx *= 65793; Bx &= 4294967295; Bx += 4282663; Bx &= 8388607; var pz = mU[Ig['charCodeAt'](sm)]; // 注意!!! var Ad = ZT["codePointAt"](0); if (Ad >= 32 && Ad < 127) { pz = mU[Ad]; } if (pz >= 0) { var UE = tE % Dz['length']; pz += UE; pz %= Dz["length"]; ZT = Dz[pz]; } tv += ZT; } return tv } function encrypt1(startTs) { // 第2个数字会变化,但第一次请求无所谓/不校验参数,主要是第2次 MZN = [8888888, 1531122] // 第一次获取bmsz 没有cookie args = getObj31(startTs); U19 = JSON["stringify"](args); // 第1次生成: 将指纹对象转json字符串 U19 = fun1(U19, MZN[1]); // 第2次生成: 根据数组的数字 U19 = fun2(U19, MZN[0]) // 第3次生成: 第一次请求获取响应 bm_sz 时,数字是 8888888; 第二次请求时,数字是从 bm_sz 提取的 var GK9 = "5,23,0,0,1,37"; ver = "k3IcpyOXkyy0a/iK4ZqHj7pAozOO2DxZ/6UxfQmjQlc=" var wC9 = `3;0;1;0;8888888;${ver}`; // 写死 U19 = ''.concat(wC9, ';')['concat'](GK9, ';')['concat'](U19); // 4 return U19 } var Mv = function (bm_sz) { // var CV = [8888888, 3978328]; var CV = [8888888, 1531122]; // 第2个数字会变化, 这个要和网页保持一致 if (bm_sz) { var vT = decodeURIComponent(bm_sz)["split"]("~"); if (vT["length"] >= 4) { var Wl = parseInt(vT[2], 10); Wl = isNaN(Wl) ? 8888888 : Wl; CV[0] = Wl; } } return CV }; function encrypt2(startTs, bm_sz) { // ver 这个不可以写死 要网页保持一致 MZN = Mv(bm_sz); // 根据cookie bm_sz 动态生成 加密数字数组 args = getObj31(startTs) U19 = JSON["stringify"](args); // 第1次生成: 将指纹对象转json字符串 U19 = fun1(U19, MZN[1]); // 第2次生成: 根据数组的数字 U19 = fun2(U19, MZN[0]) // 第3次生成: 第一次请求获取响应 bm_sz 时,数字是 8888888; 第二次请求时,数字是从 bm_sz 提取的 // lE() BB DN9 PC9 是时间戳差值, mP是变化的数字, 参考最终输出结果: 36,82,0,0,2,561 // var GK9 = '36,82,0,0,2,252'; var GK9 = "58,0,0,0,0,0"; // 时间戳差值 不能写死 要写活 否则依然不返回数据 var wC9 = `3;0;1;0;${MZN[0]};k3IcpyOXkyy0a/iK4ZqHj7pAozOO2DxZ/6UxfQmjQlc=`; // 写死 U19 = ''.concat(wC9, ';')['concat'](GK9, ';')['concat'](U19); // 4 console.log(U19) return U19 } bmsz = "4CAD10423F8A35B6E37F51EF1EEA6CA7~YAAQEmrRF5FUTsCWAQAA9BeIzRtrxbcezduYhT1TRRNIfjTKoAtMCD9F7IvB4nK3P+pZ5fJfR7NBJEGBRsCI2oKcCeL7g7d4jx9h1DqkGoija9qzmkJTE+gaZa7kDP/EYWEQ+Nr/zW1c4U8S/mLJ2EfbvWbdxnTtYXrOReVr1KnMiP+7uHVxj/zfdFeqxD2piq4KO7F+0BEiS8HglrAU40ooD9+aRaDddwRgdXhFiZnM1wPR87X0W/HyCXO/PQGqSZlXJmx68HEeB27tuuc8829uLtSqE4CnbhNHCwBi62NQrarM1EOVWj4tbX4YwPJrjn453r8ctG32XBaYxa7PPvRGG0TMhRA7gmoAllM=~3752496~3750214" encrypt2(1747203574683, bmsz) // console.log(get_din(1747635578956)) window.bmak = { startTs: 1747644658226 } // console.log(arg1.Gb(194677, "1,669,3,223|11,35,55,50,17,20,44,60,63,30", 0, 4835188)) // console.log(getObj31(1747723568540)); console.log(mst(1748247821448))