行业知识
dy x
今���最后一场考试结束了,迎来了我的暑假生活.这是我假期的第一篇文章,后续会持续更新逆向教程
今天这篇文章是针对dy主页补环境生成x_bogus,其他页面还没有尝试过,应该也是可以的.
首先选择一个你喜欢的博主,打开他的首页
网址: aHR0cHM6Ly93d3cuZG91eWluLmNvbS91c2VyL01TNHdMakFCQUFBQURWMkFNd2VuZ0lxbWpsU243U29OQ0ZTOFZMWE1NQU9DODlGa0U5THczUXM=
目录
篇幅较长,坐稳发车咯!
声明
本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除!
最后
总结
算法:
篇幅较长,坐稳发车咯!
声明
本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除!
1往下滑,先抓一个包,头部没有加密,来看载荷
2抓两个包,进行文本对比,发现有两处不同
max_cursor:是关于页面分页的,后续会提到,看着很像时间戳,其实不是,时间戳现在是18几开头的
webid:可暂时固定
msToken:可暂时固定
X-Bogus:核心解密参数,下面我们来还原它的生成逻辑
3先全局搜索,有两处,全部打上断点往下滑,发现断不住,其实不是这里,我们可以下xhr,在xhr提取断点那,接着往下滑
4会断在发包的位置,往上跟栈,此时x_bogus值已经生成好了,可以下条件断点,_0x2458f0['apply'](_0xc26b5e, _0x1f1790).length == 28
5释放断点后再下滑断住后可以看到值已经生成了
6单步进去到jsvmp初始化的位置
7此时是可以直接生成结果的
8_0x48914f是传进去的第一个参数,第二个参数可以写undefined,第一个参数如果要做分页采集需要替换前面说的max_cursor,token可以不换但要和携带的参数一致
9全扣下来补环境即可,环境检测不多,放下面了,有需要的自取
window=global;document = { referrer: '',}document.addEventListener = function (){}location = { "ancestorOrigins": {}, "href": "https://www.脱敏.com/user/MS4wLjABAAAADV2AMwengIqmjlSn7SoNCFS8VLXMMAOC89FkE9Lw3Qs?modal_id=7215371291996507444", "origin": "https://www.脱敏.com", "protocol": "https:", "host": "www.douyin.com", "hostname": "www.脱敏.com", "port": "", "pathname": "/user/MS4wLjABAAAADV2AMwengIqmjlSn7SoNCFS8VLXMMAOC89FkE9Lw3Qs", "search": "?modal_id=7215371291996507444", "hash": ""}navigator = { userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"} 10值可以正常生成,但有版本弃用的警告信息,可以不用管
11替换max_cursor和x_bogus后就可以分页采集了
最后
如果你觉得这篇文章对你有帮助,不妨请作者喝一杯咖啡吧!
总结
1出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来.
2本人写作水平有限,如有讲解不到位或者讲解错误的地方,还请各位大佬在评论区多多指教,共同进步.技术探讨加 v lyaoyao__i(两个_,本人)
3本篇分享到这里就结束了,欢迎大家关注下期,我们不见不散☀️☀️
算法:
var window = null;function _0x5cd844(e) { var b = { exports: {} }; return e(b, b.exports), b.exports}jsvmp = function(e, b, a) { function f(e, b, a) { return (f = function() { if ("undefined" == typeof Reflect || !Reflect.construct || Reflect.construct.sham) return !1; if ("function" == typeof Proxy) return !0; try { return Date.prototype.toString.call(Reflect.construct(Date, [], function() {})), !0 } catch (e) { return !1 } }() ? Reflect.construct : function(e, b, a) { var f = [null]; f.push.apply(f, b); var c = new(Function.bind.apply(e, f)); return a && function(e, b) { (Object.setPrototypeOf || function(e, b) { return e.__proto__ = b, e })(e, b) }(c, a.prototype), c }).apply(null, arguments) } function c(e) { return function(e) { if (Array.isArray(e)) { for (var b = 0, a = new Array(e.length); b > 7 == 0) return [1, c]; if (c >> 6 == 2) { var r = parseInt("" + e[++b] + e[++b], 16); return c &= 63, [2, r = (c 6 == 3) { var t = parseInt("" + e[++b] + e[++b], 16), d = parseInt("" + e[++b] + e[++b], 16); return c &= 63, [3, d = (c = 2, j >= 2, j = 1 ? m[++S] = F(e, j.c, j.l, A, j.z, C, null, 1) : (m[++S] = F(e, j.c, j.l, A, j.z, C, null, 0), j.y++) : m[++S] = j.apply(C, A)) : j 0 || b.y++, F(e, b.c, b.l, a, b.z, this, null, 0) }).c = R + 4, g.l = B - 2, g.x = P, g.y = 0, g.z = h, m[S] = g, R += 2 * B - 2) } else if (j 8 ? (w = m[S--], m[S] = typeof w) : j > 4 ? m[S -= 1] = m[S][m[S + 1]] : j > 2 && (A = m[S--], (j = m[S]).x === P ? j.y >= 1 ? m[S] = F(e, j.c, j.l, [A], j.z, C, null, 1) : (m[S] = F(e, j.c, j.l, [A], j.z, C, null, 0), j.y++) : m[S] = j(A)); else if (j = w) : j >= 2, j 12) m[++S] = s(e, R), R += 2; else if (j > 10) w = m[S--], m[S] = m[S] 8) { for (B = x(e, R), j = "", k = r.q[B][0]; k 6 && (A = m[S--], w = delete m[S--][A]); else if (j 12) m[++S] = p; else if (j > 5) w = m[S--], m[S] = m[S] !== w; else if (j > 3) w = m[S--], m[S] = m[S] / w; else if (j > 1) { if ((B = o(e, R)) -1 && (m[S] = !m[S]); else if (j >= 2, j 13 ? (m[++S] = o(e, R), R += 4) : j > 11 ? (w = m[S--], m[S] = m[S] >> w) : j > 9 ? (B = _(e, R), R += 2, w = m[S--], h[B] = w) : j > 7 ? (B = x(e, R), R += 4, A = S + 1, m[S -= B - 1] = B ? m.slice(S, A) : []) : j > 0 && (w = m[S--], m[S] = m[S] > w); else if (j 12 ? (w = m[S - 1], A = m[S], m[++S] = w, m[++S] = A) : j > 3 ? (w = m[S--], m[S] = m[S] == w) : j > 1 ? (w = m[S--], m[S] = m[S] + w) : j > -1 && (m[++S] = u); else if (j 13) m[++S] = !1; else if (j > 6) w = m[S--], m[S] = m[S] instanceof w; else if (j > 4) w = m[S--], m[S] = m[S] % w; else if (j > 2) if (m[S--]) R += 4; else { if ((B = o(e, R)) 0) { for (B = x(e, R), w = "", k = r.q[B][0]; k 7 ? (w = m[S--], m[S] = m[S] | w) : j > 5 ? (B = _(e, R), R += 2, m[++S] = h["$" + B]) : j > 3 && (B = o(e, R), d[i][0] && !d[i][2] ? d[i][1] = [R + 4, B - 3] : d[i++] = [0, [R + 4, B - 3], 0], R += 2 * B - 2); else if (j = 3 & z, z >>= 2, j > 2)(j = z) > 13 ? (m[++S] = l(e, R), R += 8) : j > 11 ? (w = m[S--], m[S] = m[S] >>> w) : j > 9 ? m[++S] = !0 : j > 7 ? (B = _(e, R), R += 2, m[S] = m[S][B]) : j > 0 && (w = m[S--], m[S] = m[S] 1)(j = z) > 10 ? (B = o(e, R), d[++i] = [ [R + 4, B - 3], 0, 0 ], R += 2 * B - 2) : j > 8 ? (w = m[S--], m[S] = m[S] ^ w) : j > 6 && (w = m[S--]); else if (j > 0) { if ((j = z) > 7) w = m[S--], m[S] = m[S] in w; else if (j > 5) m[S] = ++m[S]; else if (j > 3) B = _(e, R), R += 2, w = h[B], m[++S] = w; else if (j > 1) { var O = 0, U = m[S].length, D = m[S]; m[++S] = function() { var e = O 13) w = m[S], m[S] = m[S - 1], m[S - 1] = w; else if (j > 4) w = m[S--], m[S] = m[S] === w; else if (j > 2) w = m[S--], m[S] = m[S] - w; else if (j > 0) { for (B = x(e, R), j = "", k = r.q[B][0]; k >= 2, j > 2) if (j = 3 & z, z >>= 2, j > 2)(j = z) >> w) : j 1)(j = z) 0)(j = z) > 7 ? (w = m[S--], m[S] = m[S] in w) : j > 5 ? m[S] = ++m[S] : j > 3 ? (B = E[R], R += 2, w = h[B], m[++S] = w) : j > 1 && (O = 0, U = m[S].length, D = m[S], m[++S] = function() { var e = O 1) if (j = 3 & z, z >>= 2, j 13 ? (m[++S] = E[R], R += 4) : j > 11 ? (w = m[S--], m[S] = m[S] >> w) : j > 9 ? (B = E[R], R += 2, w = m[S--], h[B] = w) : j > 7 ? (B = E[R], R += 4, A = S + 1, m[S -= B - 1] = B ? m.slice(S, A) : []) : j > 0 && (w = m[S--], m[S] = m[S] > w); else if (j 13) m[++S] = !1; else if (j > 6) w = m[S--], m[S] = m[S] instanceof w; else if (j > 4) w = m[S--], m[S] = m[S] % w; else if (j > 2) m[S--] ? R += 4 : R += 2 * (B = E[R]) - 2; else if (j > 0) { for (B = E[R], w = "", k = r.q[B][0]; k 7 ? (w = m[S--], m[S] = m[S] | w) : j > 5 ? (B = E[R], R += 2, m[++S] = h["$" + B]) : j > 3 && (B = E[R], d[i][0] && !d[i][2] ? d[i][1] = [R + 4, B - 3] : d[i++] = [0, [R + 4, B - 3], 0], R += 2 * B - 2); else if (j > 0) if (j = 3 & z, z >>= 2, j 9); else if (j > 7) w = m[S--], m[S] = m[S] & w; else if (j > 5) B = E[R], R += 2, m[S -= B] = 0 === B ? new m[S] : f(m[S], c(m.slice(S + 1, S + B + 1))); else if (j > 3) { B = E[R]; try { if (d[i][2] = 1, 1 == (w = P(e, R + 4, B - 3, [], h, p, null, 0))[0]) return w } catch (b) { if (d[i] && d[i][1] && 1 == (w = P(e, d[i][1][0], d[i][1][1], [], h, p, b, 0))[0]) return w } finally { if (d[i] && d[i][0] && 1 == (w = P(e, d[i][0][0], d[i][0][1], [], h, p, null, 0))[0]) return w; d[i] = 0, i-- } R += 2 * B - 2 } } else if (j 5 ? (w = m[S--], m[S] = m[S] !== w) : j > 3 ? (w = m[S--], m[S] = m[S] / w) : j > 1 ? R += 2 * (B = E[R]) - 2 : j > -1 && (m[S] = !m[S]); else if (j = 3 & z, z >>= 2, j = 1 ? m[++S] = F(e, j.c, j.l, A, j.z, C, null, 1) : (m[++S] = F(e, j.c, j.l, A, j.z, C, null, 0), j.y++) : m[++S] = j.apply(C, A)) : j 0 || b.y++, F(e, b.c, b.l, a, b.z, this, null, 0) }).c = R + 4, g.l = B - 2, g.x = P, g.y = 0, g.z = h, m[S] = g, R += 2 * B - 2) } else if (j 8 ? (w = m[S--], m[S] = typeof w) : j > 4 ? m[S -= 1] = m[S][m[S + 1]] : j > 2 && (A = m[S--], (j = m[S]).x === P ? j.y >= 1 ? m[S] = F(e, j.c, j.l, [A], j.z, C, null, 1) : (m[S] = F(e, j.c, j.l, [A], j.z, C, null, 0), j.y++) : m[S] = j(A)); else if (j = w) : j > 2] |= e[r] > 6, i[c++] = 128 | 63 & f) : f = 57344 ? (i[c++] = 224 | f >> 12, i[c++] = 128 | f >> 6 & 63, i[c++] = 128 | 63 & f) : (f = 65536 + ((1023 & f) > 18, i[c++] = 128 | f >> 12 & 63, i[c++] = 128 | f >> 6 & 63, i[c++] = 128 | 63 & f); else for (c = this.start; r > 2] |= f > 2] |= (192 | f >> 6) > 2] |= (128 | 63 & f) = 57344 ? (d[c >> 2] |= (224 | f >> 12) > 2] |= (128 | f >> 6 & 63) > 2] |= (128 | 63 & f) 2] |= (240 | f >> 18) > 2] |= (128 | f >> 12 & 63) > 2] |= (128 | f >> 6 & 63) > 2] |= (128 | 63 & f) = 64 ? (this.start = c - 64, this.hash(), this.hashed = !0) : this.start = c } return this.bytes > 4294967295 && (this.hBytes += this.bytes / 4294967296 > 2] |= _0x465562[3 & b], b >= 56 && (this.hashed || this.hash(), e[0] = e[16], e[16] = e[1] = e[2] = e[3] = e[4] = e[5] = e[6] = e[7] = e[8] = e[9] = e[10] = e[11] = e[12] = e[13] = e[14] = e[15] = 0), e[14] = this.bytes > 29, this.hash() } }, _0x5887c8.prototype.hash = function() { var e, b, a, f, c, r, t = this.blocks; this.first ? b = ((b = ((e = ((e = t[0] - 680876937) >> 25) - 271733879 > 20) + e > 15) + f > 10) + a > 25) + b > 20) + e > 15) + f > 10) + a > 25) + b > 20) + e > 15) + f > 10) + a > 25) + b > 20) + e > 15) + f > 10) + a > 25) + b > 20) + e > 15) + f > 10) + a > 27) + b > 23) + e > 18) + f > 12) + a > 27) + b > 23) + e > 18) + f > 12) + a > 27) + b > 23) + e > 18) + f > 12) + a > 27) + b > 23) + e > 18) + f > 12) + a > 28) + b > 21) + e > 16) + f > 9) + a > 28) + b > 21) + e > 16) + f > 9) + a > 28) + b > 21) + e > 16) + f > 9) + a > 28) + b > 21) + e > 16) + f > 9) + a > 26) + b > 22) + e > 17) + f > 11) + a > 26) + b > 22) + e > 17) + f > 11) + a > 26) + b > 22) + e > 17) + f > 11) + a > 26) + b > 22) + e > 17) + f > 11) + a > 16 & 15] + _0x3a9a1b[e >> 28 & 15] + _0x3a9a1b[e >> 24 & 15] + _0x3a9a1b[b >> 4 & 15] + _0x3a9a1b[15 & b] + _0x3a9a1b[b >> 12 & 15] + _0x3a9a1b[b >> 8 & 15] + _0x3a9a1b[b >> 20 & 15] + _0x3a9a1b[b >> 16 & 15] + _0x3a9a1b[b >> 28 & 15] + _0x3a9a1b[b >> 24 & 15] + _0x3a9a1b[a >> 4 & 15] + _0x3a9a1b[15 & a] + _0x3a9a1b[a >> 12 & 15] + _0x3a9a1b[a >> 8 & 15] + _0x3a9a1b[a >> 20 & 15] + _0x3a9a1b[a >> 16 & 15] + _0x3a9a1b[a >> 28 & 15] + _0x3a9a1b[a >> 24 & 15] + _0x3a9a1b[f >> 4 & 15] + _0x3a9a1b[15 & f] + _0x3a9a1b[f >> 12 & 15] + _0x3a9a1b[f >> 8 & 15] + _0x3a9a1b[f >> 20 & 15] + _0x3a9a1b[f >> 16 & 15] + _0x3a9a1b[f >> 28 & 15] + _0x3a9a1b[f >> 24 & 15] }, _0x5887c8.prototype.toString = _0x5887c8.prototype.hex, _0x5887c8.prototype.digest = function() { this.finalize(); var e = this.h0, b = this.h1, a = this.h2, f = this.h3; return [255 & e, e >> 8 & 255, e >> 16 & 255, e >> 24 & 255, 255 & b, b >> 8 & 255, b >> 16 & 255, b >> 24 & 255, 255 & a, a >> 8 & 255, a >> 16 & 255, a >> 24 & 255, 255 & f, f >> 8 & 255, f >> 16 & 255, f >> 24 & 255] }, _0x5887c8.prototype.array = _0x5887c8.prototype.digest, _0x5887c8.prototype.arrayBuffer = function() { this.finalize(); var e = new ArrayBuffer(16), b = new Uint32Array(e); return b[0] = this.h0, b[1] = this.h1, b[2] = this.h2, b[3] = this.h3, e }, _0x5887c8.prototype.buffer = _0x5887c8.prototype.arrayBuffer, _0x5887c8.prototype.base64 = function() { for (var e, b, a, f = "", c = this.array(), r = 0; r >> 2] + _0x2c185e[63 & (e >> 4)] + _0x2c185e[63 & (b >> 6)] + _0x2c185e[63 & a]; return f + (_0x2c185e[(e = c[r]) >>> 2] + _0x2c185e[e > 4 & 15] + _0x233455[15 & _0x3d35de], _0x3d35de > 1, a = b "03v", { ubcode: 0 }, { bogusIndex: 0, msNewTokenList: [], moveList: [], clickList: [], keyboardList: [], activeState: [], aidList: [], envcode: 0, msToken: "", msStatus: 0, __ac_testid: "", ttwid: "", tt_webid: "", tt_webid_v2: "" }, void 0 !== _0x4e46b6 ? _0x4e46b6 : void 0, { userAgent: b }, (e, b) => { let a = new Uint8Array(3); return a[0] = e / 256, a[1] = e % 256, a[2] = b % 256, String.fromCharCode.apply(null, a) }, (e, b) => { let a, f = [], c = 0, r = ""; for (let e = 0; e jsvmp("484e4f4a403f524300281018f7b851f02d296e5b00000000000004a21b0002001d1d001e1b00131e00061a001d001f1b000b070200200200210d1b000b070200220200230d1b000b070200240200250d1b000b070200260200270d1b001b000b071b000b05191d00031b000200001d00281b0048001d00291b000b041e002a1b000b0b4803283b1700f11b001b000b04221e002b241b001e0029222d1b00241d00290a0001104900ff2f4810331b000b04221e002b241b001e0029222d1b00241d00290a0001104900ff2f480833301b000b04221e002b241b001e0029222d1b00241d00290a0001104900ff2f301d002c1b00220b091b000b08221e002d241b000b0a4a00fc00002f4812340a000110281d00281b00220b091b000b08221e002d241b000b0a4a0003f0002f480c340a000110281d00281b00220b091b000b08221e002d241b000b0a490fc02f4806340a000110281d00281b00220b091b000b08221e002d241b000b0a483f2f0a000110281d002816ff031b000b041e002a1b000b0b294800391700e01b001b000b04221e002b241b001e0029222d1b00241d00290a0001104900ff2f4810331b000b041e002a1b000b0b3917001e1b000b04221e002b241b000b0b0a0001104900ff2f4808331600054800301d002c1b00220b091b000b08221e002d241b000b0a4a00fc00002f4812340a000110281d00281b00220b091b000b08221e002d241b000b0a4a0003f0002f480c340a000110281d00281b00220b091b000b041e002a1b000b0b3917001e1b000b08221e002d241b000b0a490fc02f4806340a0001101600071b000b06281d00281b00220b091b000b06281d00281b000b090000002e000126207575757575757575757575757575757575757575757575757575757575757575012b0e7776757a7d7643617c637661676a027a77065c717976706708777671667474766107767d65707c77760374766707707c7d607c7f7607757a61767166740a7c66677661447a77677b0a7a7d7d7661447a77677b0b7c666776615b767a747b670b7a7d7d76615b767a747b6709666076615274767d670b677c5f7c64766150726076077a7d77766b5c7508767f767067617c7d09667d7776757a7d76770963617c677c676a637608677c4067617a7d740470727f7f0763617c7076606010487c71797670673363617c707660604e067c717976706705677a677f76047d7c7776012e0125012402602341525150575655545b5a59585f5e5d5c43424140474645444b4a49727170777675747b7a79787f7e7d7c63626160676665646b6a6923222120272625242b2a383c2e0260224157787763747b2749586042512b233c5e75656420254b5a22412126384446527f567a245d5f717c624a475c4366697e5579597d616a6b2a5b45547072406750762e0260214157787763747b2749586042512b233c5e75656420254b5a224121263e4446527f567a245d5f717c624a475c4366697e5579597d616a6b2a5b45547072406750762e02602041525150575655545b5a59585f5e5d5c43424140474645444b4a49727170777675747b7a79787f7e7d7c63626160676665646b6a6923222120272625242b2a3e4c2e012a022222067f767d74677b0a707b7261507c7776526702222306707b72615267", [, , , , e, b]), "undefined" != typeof Date ? Date : void 0, () => 0, (e, b, a, f, c, r, t, d, i, n, s, o, l, _, x, u, h, p, y) => { let v = new Uint8Array(19); return v[0] = e, v[1] = s, v[2] = b, v[3] = o, v[4] = a, v[5] = l, v[6] = f, v[7] = _, v[8] = c, v[9] = x, v[10] = r, v[11] = u, v[12] = t, v[13] = h, v[14] = d, v[15] = p, v[16] = i, v[17] = y, v[18] = n, String.fromCharCode.apply(null, v) }, e => String.fromCharCode(e), (e, b, a) => String.fromCharCode(e) + String.fromCharCode(b) + a, (e, b) => jsvmp("484e4f4a403f524300281018f7b851f02d296e5b00000000000004a21b0002001d1d001e1b00131e00061a001d001f1b000b070200200200210d1b000b070200220200230d1b000b070200240200250d1b000b070200260200270d1b001b000b071b000b05191d00031b000200001d00281b0048001d00291b000b041e002a1b000b0b4803283b1700f11b001b000b04221e002b241b001e0029222d1b00241d00290a0001104900ff2f4810331b000b04221e002b241b001e0029222d1b00241d00290a0001104900ff2f480833301b000b04221e002b241b001e0029222d1b00241d00290a0001104900ff2f301d002c1b00220b091b000b08221e002d241b000b0a4a00fc00002f4812340a000110281d00281b00220b091b000b08221e002d241b000b0a4a0003f0002f480c340a000110281d00281b00220b091b000b08221e002d241b000b0a490fc02f4806340a000110281d00281b00220b091b000b08221e002d241b000b0a483f2f0a000110281d002816ff031b000b041e002a1b000b0b294800391700e01b001b000b04221e002b241b001e0029222d1b00241d00290a0001104900ff2f4810331b000b041e002a1b000b0b3917001e1b000b04221e002b241b000b0b0a0001104900ff2f4808331600054800301d002c1b00220b091b000b08221e002d241b000b0a4a00fc00002f4812340a000110281d00281b00220b091b000b08221e002d241b000b0a4a0003f0002f480c340a000110281d00281b00220b091b000b041e002a1b000b0b3917001e1b000b08221e002d241b000b0a490fc02f4806340a0001101600071b000b06281d00281b00220b091b000b06281d00281b000b090000002e000126207575757575757575757575757575757575757575757575757575757575757575012b0e7776757a7d7643617c637661676a027a77065c717976706708777671667474766107767d65707c77760374766707707c7d607c7f7607757a61767166740a7c66677661447a77677b0a7a7d7d7661447a77677b0b7c666776615b767a747b670b7a7d7d76615b767a747b6709666076615274767d670b677c5f7c64766150726076077a7d77766b5c7508767f767067617c7d09667d7776757a7d76770963617c677c676a637608677c4067617a7d740470727f7f0763617c7076606010487c71797670673363617c707660604e067c717976706705677a677f76047d7c7776012e0125012402602341525150575655545b5a59585f5e5d5c43424140474645444b4a49727170777675747b7a79787f7e7d7c63626160676665646b6a6923222120272625242b2a383c2e0260224157787763747b2749586042512b233c5e75656420254b5a22412126384446527f567a245d5f717c624a475c4366697e5579597d616a6b2a5b45547072406750762e0260214157787763747b2749586042512b233c5e75656420254b5a224121263e4446527f567a245d5f717c624a475c4366697e5579597d616a6b2a5b45547072406750762e02602041525150575655545b5a59585f5e5d5c43424140474645444b4a49727170777675747b7a79787f7e7d7c63626160676665646b6a6923222120272625242b2a3e4c2e012a022222067f767d74677b0a707b7261507c7776526702222306707b72615267", [, , , , e, b]), , sign, e, void 0])}module.exports = { sign };// console.log(sign('device_platform=webapp&aid=6383&channel=channel_pc_web&item_id=7278614772856212799&comment_id=7279995502425654055&cut_version=1&cursor=0&count=3&item_type=0&pc_client_type=1&version_code=170400&version_name=17.4.0&cookie_enabled=true&screen_width=1536&screen_height=864&browser_language=zh&browser_platform=Win32&browser_name=Chrome&browser_version=107.0.0.0&browser_online=true&engine_name=Blink&engine_version=107.0.0.0&os_name=Windows&os_version=10&cpu_core_num=12&device_memory=8&platform=PC&downlink=0.25&effective_type=2g&round_trip_time=1650&webid=7280022108976842252&msToken=kmKiVeBB4TEfvza6bFqwq8r3UFFqk5XMSPoYVjvkWoUHT0TJy_IrD2FIiQ6SSa5KRL9O27WJttHbea6CI6qgw9kWf8JpVrEvr2oAq6_5XOysjuVF3c4Uo17NbmE=', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'));console.log(sign('aid=1768&msToken=8fKX5lvUPCjXoL8FfoG0LJHNv-d8pBCbp1EpkOB8UK70knal7D1b45nC-JPq1jeG-34tx2t6F3zb_TW9LG0ku1du6zj-vw0uOKxNF2P84sru0R0BMJYgjzWGQ2wu5Kg=', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'));
上一篇:gtasa怎么更换服务器?
下一篇:关于电脑主机什么品牌好用吗的信息