var a = 'Mjg=@#/index/banner@#7707053466@#3' var d = 'xyz517cda96abcd'
functionh(n, t) { t = t || u(); for (var e = (n = n[$1](_))[R], r = t[R], a = q1, i = H; i < e; i++) n[i] = o(n[i][a](H) ^ t[(i + 10) % r][a](H)); return n[I1](_) }
var a = 'Mjg=@#/index/banner@#7707053466@#3' var d = 'xyz517cda96abcd'
functiono(n) { t = '', ['66', '72', '6f', '6d', '43', '68', '61', '72', '43', '6f', '64', '65']['forEach'](function(n) { t += unescape('%u00' + n) }); var t, e = t; returnString.fromCharCode(n) }
functionh(n, t) { t = t || u(); for (var e = (n = n['split'](''))['length'], r = t['length'], a = 'charCodeAt', i = 0; i < e; i++) n[i] = o(n[i][a](0) ^ t[(i + 10) % r][a](0)); return n['join']('') }
var a = 'Mjg=@#/index/banner@#7707053466@#3' var d = 'xyz517cda96abcd'
functiono(n) { t = '', ['66', '72', '6f', '6d', '43', '68', '61', '72', '43', '6f', '64', '65']['forEach'](function(n) { t += unescape('%u00' + n) }); var t, e = t; returnString.fromCharCode(n) }
functionh(n, t) { t = t || u(); for (var e = (n = n['split'](''))['length'], r = t['length'], a = 'charCodeAt', i = 0; i < e; i++) n[i] = o(n[i][a](0) ^ t[(i + 10) % r][a](0)); return n['join']('') }
a = "MzZjbmZyZWVpcGhvbmU=@#/rank/index@#7714163242@#3" d = "xyz517cda96abcd"
用以本地运行,对比结果:
结果一致,至此两函数破解完毕
解决a,d值
再次观察拦截器处代码:
涉及到a代码:
var e, r = +new z[W] - (s || H) - 1661224081041, a = []; returnvoid0 === t[Zt] && (t[Zt] = {}), z[Z][i7](t[Zt])[M](function(n) { if (n == p) return !B; t[Zt][N2](n) && a[b](t[Zt][n]) }), a = a[Ot]()[I1](_), a = (0, i[jt])(a), a = (a += v + t[Jt][T](t[Mt], _)) + (v + r) + (v + 3),
functiona_make(){ var a = [] Object.keys(t['params'])['forEach'](function(n) { if (n == 'analysis') return !1; t['params']['hasOwnProperty'](n) && a['push'](t['params'][n]) }) a = a[Ot]()[I1](_) a = (0,i[jt])(a) a = (a += v + t[Jt][T](t[Mt], _)) + (v + r) + (v + 3),
functiona_make(t){ var r = newDate() - (-208||0) - 1661224081041 var a = [] Object.keys(t['params'])['forEach'](function(n) { if (n == 'analysis') return !1; t['params']['hasOwnProperty'](n) && a['push'](t['params'][n]) }) a = a['sort']()['join']('') a = v(a) a = (a += '@#' + t['url']['replace'](t['baseURL'], '')) + ('@#' + r) + ('@#' + 3) return a }
至此a值破解完毕,现在关注d值。
在拦截器代码中,并未发现d值的赋值操作,转而寻求拦截器函数上层函数代码,找到如下代码:
d = (0, i[zt])(Rt, B) d = i[zt](Rt, B)
初步补全:
d = i[zt]('qimai@2022&Technology',1)
现在关注函数i[zt],进入该函数,函数为y(n,t,e)
复制到本地并补全,最终涉及到d的代码为:
functiony(n, t, e) { for (var r = void0 === e ? 2166136261 : e, a = 0, i = n['length']; a < i; a++) r = (r ^= n['charCodeAt'](a)) + ((r << 1) + (r << 4) + (r << 7) + (r << 8) + (r << 24)); return t ? ('xyz' + (r >>> 0)['toString'](16) + 'abcd')['substr'](-16) : r >>> 0 }
functiono(n) { t = '', ['66', '72', '6f', '6d', '43', '68', '61', '72', '43', '6f', '64', '65']['forEach'](function(n) { t += unescape('%u00' + n) }); var t, e = t; returnString.fromCharCode(n) }
functionh(n, t) { t = t || u(); for (var e = (n = n['split'](''))['length'], r = t['length'], a = 'charCodeAt', i = 0; i < e; i++) n[i] = o(n[i][a](0) ^ t[(i + 10) % r][a](0)); return n['join']('') }
functiony(n, t, e) { for (var r = void0 === e ? 2166136261 : e, a = 0, i = n['length']; a < i; a++) r = (r ^= n['charCodeAt'](a)) + ((r << 1) + (r << 4) + (r << 7) + (r << 8) + (r << 24)); return t ? ('xyz' + (r >>> 0)['toString'](16) + 'abcd')['substr'](-16) : r >>> 0 }
functiona_make(t){ var r = newDate() - (-208||0) - 1661224081041 a = [] a = a['sort']()['join']('') a = v(a) a = (a += '@#' + t['url']['replace'](t['baseURL'], '')) + ('@#' + r) + ('@#' + 3) return a }