某盾无感验证码逆向
本文仅供学习交流,因使用本文内容而产生的任何风险及后果,作者不承担任何责任,一起学习吧
目标网站:aHR0cHM6Ly9kdW4uMTYzLmNvbS90cmlhbC9zZW5zZQ==
快速定位
这里我们选择无感下的绑定自有验证按钮(这个方便),打开控制台抓个包看看。我们很清晰明了的就可以知道这个验证接口:
check接口
简单的重放攻击看看失败和成功结果之间的差异。
经过测试我们会发现,result表示本次请求是否通过检测。那么接下来观察负载,看看需要哪些加密参数。
逆向开始
简单观察一下负载,大概可以推断出几个关键参数:
- dt
- id 定值
- cb
- token
- data
还是老步骤,先搜索看看这些加密参数是否来自于其他的包。果不其然,我们会发现:token来自于前一个get包
那么先看看这个发包的负载是什么样子的吧
和之前那个大差不差,还是一样的分析方法,先搜后逆。
又是一个套娃,我们发现irToken来自up包。这个包也是困难重重,参数一眼望去几乎全是要逆向的。而且这个参数命名方式太过简单(d、n、p、v),这种情况搜索就可能意义不大了,但我们还是搜搜看看。找不到我们在简单打上xhr断点。一步步调试看看。
我们又发现一个套娃up包里面的p、v来自getconf包,简单观察负载:
就一个dt参数需要解决。那我们先着手解决这个,剩下的在一步步来。
简单捋一下 getconf --> up --> get --> check
getconf逆向
这里这个dt参数其实逆向意义不大,因为这个值是发包的。而且带不带不影响。这里我提供一下思路。
这里就很明显了,你可以在本地存储找到这个值,只要你不删除他,一般不会变。
up包逆向
打上断点,向上快速查找到:
w是我们要的参数,那么我们看看这个w是在哪里生成的。我们会发现w = c(n[f(99)]) ? n[f(99)]() : n[f(99)]。很好,一个很简单的三元,简单输出我们会发现w = n[f(99)](),很好,直接找到源头函数。
p、v参数是个定值那我们就着重分析后面三个函数
这个值也没什么好说的,定死的。那么目标就是这个Y()和g()。我们发现
function Y() {
return f(69)[f(70)](/[xy]/g, function(r) {
var n = 16 * Math[f(71)]() | 0;
return ("x" === r ? n : 3 & n | 8)[f(64)](16)
})
}
// 简单还原之后
function Y() {
return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'['replace'](/[xy]/g, function(r) {
var n = 16 * Math['random']() | 0;
return ("x" === r ? n : 3 & n | 8)['toString'](16)
})
}
最难的地方来了,这个g()需要我们耐心一点会还原了。
图中这个参数是一个定值,你搜一下就知道了。我们一步步跟,一点点还原。
第一个还原的就是函数d()。我们简单将他输出之后,我们会发现:
那么这个函数就是一个简单的将每个字符转 ASCII 编码。
那么函数还原就是:
const asciiCodes = Array.from(hexStr).map(char => char.charCodeAt(0));
把大部分能还原的先还原,之后就是研究入参是什么(这个函数的入参是一个大数组,我们暂时先把他顶死,后面你会发现这个包其实发不发无所谓了 ,这个数组的生成位置绝对不是我没找到如果有大佬知道这个数组在哪里生成的,麻烦在评论区讲解一下,我将顶礼膜拜大佬的荣光,感谢!!!)。还原代码就是本地一遍遍去调试,缺什么补什么。
繁杂的扣代码环节这里就跳过了,直接贴结果:
这里有一个坑,可能有些小伙伴扣完代码,一跑,欸,为什么不出值。这里就是一个调试的小技巧了,我们扣代码的时候一定要把全部的异常捕获都给杀掉。只有抛出异常,我们才知道哪里出错了。
我们请求一下:
太好了,成功。我连续请求了很多次,都是没问题。这说明我们之前固定的值,可能没有做校验。能跑要什么自行车
get包逆向
上面说到,为什么这个up包逆不逆的无所谓呢,因为irToken这个玩意它带不带无所谓啊,都能正常跑。但最好还是模拟,以防万一。那我们先看看参数哈:
这里参数dt我上面讲过了,他就是最开始那个包不带这个值的返回结果,之后会存入本地,不会变,死值。那么重点就是一个fp和cb。查看堆栈:
进入对应文件,还是老方法,先搜后逆,找到对应值,打上断点。
这里向上看代码,我没有看出什么端倪,而且我测试了几轮轮,发现这个参数fp是一个定值,我们也可以固定,但是这里我还是带大家走一遍。既然他是一个固定值,应该是某个指纹算法。我们尝试搜索一下fingerprint
这里我们简单搜一下gdxidpyhxde,是一个cookie,直接上hook脚本。
(function() {
'use strict';
var cookieTemp = "";
Object.defineProperty(document, 'cookie', {
set: function(val) {
// 打印捕获到的 cookie 设置
console.log('Hook 捕获到 cookie 设置 ->', val);
// debugger;
if (val.indexOf('gdxidpyhxdE') != -1){debugger}
cookieTemp = val;
return val;
},
get: function() {
return cookieTemp;
}
});
})();
把这个cookie删掉,启动脚本看看生成位置。
hook住之后,我们找到如下代码:
是个入参,继续向上找。
找到这个代码就对了:
function _0x163da2() {
_0x597998(),
window[_0x303d65] = null;
var _0x5dc2cd = {};
_0x5dc2cd['v'] = _0x2329c0[0xe9];
var _0x54721f = !0x0
, _0x4c0002 = _0x5dc2cd
, _0x5e3ec3 = _0x2d4759();
_0x5e3ec3 && (_0x4c0002[_0x2329c0[0x180]] = _0x5e3ec3),
_0x5e3ec3 = null,
_0x4c0002[_0x2329c0[0x6e]] = _0x34264e;
var _0x48b38c = new window[_0x227e97[0x49]]()[_0x2329c0[0xb6]]() + _0x3c2c46
, _0x141df5 = _0x48b38c + _0x84c3ed[0x12b] * _0x84c3ed[0x8b] * _0x84c3ed[0x8b] * _0x84c3ed[0x41] * _0x84c3ed[0x4d];
_0x4c0002[_0x2329c0[0x88]] = _0x2e76f4(_0x84c3ed[0xa]) + _0x48b38c + _0x2e76f4(_0x84c3ed[0xa]);
try {
var _0x5d9f90 = {};
_0x5d9f90['b'] = !0x1,
_0x5d9f90['a'] = !0x1;
var _0x107cac = new _0x32ab4b(_0x5d9f90)['get']();
null != _0x107cac && void 0x0 != _0x107cac && _0x107cac['length'] > _0x84c3ed[0x6] ? _0x4c0002[_0x2329c0[0xb9]] = _0x107cac['join'](_0x2329c0[0x24]) : (_0x4c0002[_0x2329c0[0xb9]] = _0x2ad464(_0x2329c0[0x2b], _0x84c3ed[0x22]),
_0x4c0002[_0x2329c0[0xa2]] = _0x2329c0[0x2c],
_0x54721f = !0x1);
} catch (_0x9d81ce) {
_0x4c0002[_0x2329c0[0xb9]] = _0x2ad464(_0x2329c0[0x2b], _0x84c3ed[0x22]),
_0x4c0002[_0x2329c0[0xa2]] = _0x2329c0[0x2c],
_0x54721f = !0x1;
}
try {
var _0x27e732 = _0x5e3ec3 = _0xd526f8(_0x4c0002);
if (_0x4c0002 = _0x27366d,
null == _0x4c0002 || void 0x0 == _0x4c0002)
throw Error(_0x2329c0[0x7a]);
null != _0x27e732 && void 0x0 != _0x27e732 || (_0x27e732 = _0x2329c0[0x0]),
_0x107cac = _0x27e732;
var _0x2900ae = _0x383f63(null == _0x27e732 ? [] : _0xc15028(_0x27e732))
, _0x396bfe = _0xc15028(_0x107cac + _0x2900ae)
, _0xc835cf = _0xc15028(_0x4c0002);
null == _0x396bfe && (_0x396bfe = []),
_0x2900ae = [];
for (var _0x48596a = _0x84c3ed[0x6]; _0x48596a < _0x45f26e; _0x48596a++) {
var _0x236e60 = Math[a0_0x1b5e(0x1e)]() * _0x84c3ed[0x124];
_0x236e60 = Math[a0_0x1b5e(0x303)](_0x236e60),
_0x2900ae[_0x48596a] = _0x536c26(_0x236e60);
}
if (_0xc835cf = _0x2f41b8(_0xc835cf),
_0xc835cf = _0x1b169d(_0xc835cf, _0x2f41b8(_0x2900ae)),
_0x48596a = _0xc835cf = _0x2f41b8(_0xc835cf),
_0x236e60 = _0x396bfe,
null == _0x236e60 || void 0x0 == _0x236e60 || _0x236e60[a0_0x1b5e(0x4)] == _0x84c3ed[0x6])
var _0x1a02ac = _0x30fa24(_0x1ec487);
else {
var _0x251daa = _0x236e60[a0_0x1b5e(0x4)]
, _0x4cc934 = _0x251daa % _0x1ec487 <= _0x1ec487 - _0x523881 ? _0x1ec487 - _0x251daa % _0x1ec487 - _0x523881 : _0x1ec487 * _0x84c3ed[0x7] - _0x251daa % _0x1ec487 - _0x523881;
_0x396bfe = [],
_0x578b4e(_0x236e60, _0x84c3ed[0x6], _0x396bfe, _0x84c3ed[0x6], _0x251daa);
for (var _0x4b2a2e = _0x84c3ed[0x6]; _0x4b2a2e < _0x4cc934; _0x4b2a2e++)
_0x396bfe[_0x251daa + _0x4b2a2e] = _0x84c3ed[0x6];
var _0x1eb045 = _0x9de8f6(_0x251daa);
_0x578b4e(_0x1eb045, _0x84c3ed[0x6], _0x396bfe, _0x251daa + _0x4cc934, _0x523881),
_0x1a02ac = _0x396bfe;
}
if (_0x251daa = _0x1a02ac,
null == _0x251daa || _0x251daa[a0_0x1b5e(0x4)] % _0x1ec487 != _0x84c3ed[0x6])
throw Error(_0x2329c0[0x84]);
_0x1a02ac = [];
for (var _0x2c46fa = _0x84c3ed[0x6], _0xceede3 = _0x251daa['length'] / _0x1ec487, _0xb6380c = _0x84c3ed[0x6]; _0xb6380c < _0xceede3; _0xb6380c++) {
_0x1a02ac[_0xb6380c] = [];
for (var _0x4c4156 = _0x84c3ed[0x6]; _0x4c4156 < _0x1ec487; _0x4c4156++)
_0x1a02ac[_0xb6380c][_0x4c4156] = _0x251daa[_0x2c46fa++];
}
_0x2c46fa = [],
_0x578b4e(_0x2900ae, _0x84c3ed[0x6], _0x2c46fa, _0x84c3ed[0x6], _0x45f26e);
for (var _0x16278c = _0x1a02ac['length'], _0x3f0082 = _0x84c3ed[0x6]; _0x3f0082 < _0x16278c; _0x3f0082++) {
var _0xa48578 = _0x1a02ac[_0x3f0082];
if (null == _0xa48578)
var _0x4d2046 = null;
else {
var _0x5a75ec = _0x536c26(_0x84c3ed[0x59]);
_0xceede3 = [];
for (var _0x57aefd = _0xa48578[a0_0x1b5e(0x4)], _0xc9a70b = _0x84c3ed[0x6]; _0xc9a70b < _0x57aefd; _0xc9a70b++)
_0xceede3['push'](_0x4e2e28(_0xa48578[_0xc9a70b], _0x5a75ec));
_0x4d2046 = _0xceede3;
}
if (_0xceede3 = _0x4d2046,
null == _0xceede3)
var _0x5a16a0 = null;
else {
var _0xd07615 = _0x536c26(_0x84c3ed[0x58]);
_0xb6380c = [];
for (var _0x4c7e6c = _0xceede3['length'], _0x606cde = _0x84c3ed[0x6]; _0x606cde < _0x4c7e6c; _0x606cde++)
_0xb6380c['push'](_0x4e2e28(_0xceede3[_0x606cde], _0xd07615--));
_0x5a16a0 = _0xb6380c;
}
if (_0xceede3 = _0x5a16a0,
null == _0xceede3)
var _0x3e2f2a = null;
else {
var _0x1ede42 = _0x536c26(_0x84c3ed[0x6b]);
_0xb6380c = [];
for (var _0x2cda63 = _0xceede3['length'], _0x2876b5 = _0x84c3ed[0x6]; _0x2876b5 < _0x2cda63; _0x2876b5++)
_0xb6380c[a0_0x1b5e(0x5)](_0x3e7a59(_0xceede3[_0x2876b5], _0x1ede42++));
_0x3e2f2a = _0xb6380c;
}
var _0x5eb6b6 = _0x1b169d(_0x3e2f2a, _0xc835cf);
if (_0xceede3 = _0x5eb6b6,
_0xb6380c = _0x48596a,
null == _0xceede3)
var _0x1fae1e = null;
else {
if (null == _0xb6380c)
_0x1fae1e = _0xceede3;
else {
_0x4c4156 = [];
for (var _0x42334c = _0xb6380c[a0_0x1b5e(0x4)], _0x2b7de4 = _0x84c3ed[0x6], _0x5e896c = _0xceede3['length']; _0x2b7de4 < _0x5e896c; _0x2b7de4++)
_0x4c4156[_0x2b7de4] = _0x536c26(_0xceede3[_0x2b7de4] + _0xb6380c[_0x2b7de4 % _0x42334c]);
_0x1fae1e = _0x4c4156;
}
}
_0x5eb6b6 = _0x1b169d(_0x1fae1e, _0x48596a);
var _0x5f5e0e = _0x54b400(_0x5eb6b6);
_0x5f5e0e = _0x54b400(_0x5f5e0e),
_0x578b4e(_0x5f5e0e, _0x84c3ed[0x6], _0x2c46fa, _0x3f0082 * _0x1ec487 + _0x45f26e, _0x1ec487),
_0x48596a = _0x5f5e0e;
}
if (null == _0x2c46fa || void 0x0 == _0x2c46fa)
var _0x13432a = null;
else {
if (_0x2c46fa[a0_0x1b5e(0x4)] == _0x84c3ed[0x6])
_0x13432a = _0x2329c0[0x0];
else {
var _0x3039ac = _0x84c3ed[0xa];
try {
_0x16278c = [];
for (var _0x2c5385 = _0x84c3ed[0x6]; _0x2c5385 < _0x2c46fa['length']; ) {
if (!(_0x2c5385 + _0x3039ac <= _0x2c46fa['length'])) {
_0x16278c['push'](_0x570a3a(_0x2c46fa, _0x2c5385, _0x2c46fa['length'] - _0x2c5385));
break;
}
_0x16278c['push'](_0x570a3a(_0x2c46fa, _0x2c5385, _0x3039ac)),
_0x2c5385 += _0x3039ac;
}
_0x13432a = _0x16278c['join'](_0x2329c0[0x0]);
} catch (_0xea1630) {
throw Error(_0x2329c0[0x71]);
}
}
}
_0x5e3ec3 = _0x13432a;
} catch (_0x1d7611) {
var _0xb20d7b = {};
_0xb20d7b['ec'] = _0x2329c0[0x2d],
_0xb20d7b['em'] = _0x1d7611[_0x2329c0[0xc5]],
(_0x5e3ec3 = _0xd526f8(_0xb20d7b),
_0x54721f = !0x1);
}
_0x5e3ec3 = _0x5e3ec3 + _0x2329c0[0x39] + _0x48b38c,
_0x38465d(_0x167e5f, _0x5e3ec3, _0x54721f, _0x141df5),
_0x54721f = _0x167e5f,
_0x13432a = _0x5e3ec3,
_0x3039ac = _0x199e85(_0x54721f),
null !== _0x3039ac && void 0x0 !== _0x3039ac && _0x3039ac !== _0x2329c0[0x0] || _0x38465d(_0x54721f, _0x13432a, !0x1),
window[_0x303d65] = _0x5e3ec3,
window[_0x2329c0[0x80]] && window[_0x2329c0[0x80]](_0x163da2, _0x507297);
}
代码繁杂,我简化之后用代码的方式来讲解吧,通过还原算法你就能了解到这里检测了什么环境,它是如何检测的:
function _0x2e76f4(_0x5d63fd) {
for (var _0x7690c1 = [], _0x3cb6f6 = 0; _0x3cb6f6 < _0x5d63fd; _0x3cb6f6++) {
var _0x255b48 = Math['random']() * 62;
_0x255b48 = Math['floor'](_0x255b48),
_0x7690c1['push']('aZbY0cXdW1eVf2Ug3Th4SiR5jQk6PlO7mNn8MoL9pKqJrIsHtGuFvEwDxCyBzA'.charAt(_0x255b48));
}
return _0x7690c1['join']('');
}
function _0x49792c() {
// 这里就是 Canvas 指纹 ,直接定死即可,当然也可以生成
// try {
var _0x5c9a07 = _0x112b90['createElement']('canvas') // _0x112b90 --> document
, _0x2484d1 = _0x5c9a07['getContext']('2d')
, _0x4b7ee6 = 'mwC nkbafjord phsgly exvt zqiu, ὠ tphst/:/uhbgtic.mo/levva';
return _0x2484d1['textBaseline'] = 'top',
_0x2484d1['font'] = "70px 'Arial'",
_0x2484d1['textBaseline'] = 'alphabetic',
_0x2484d1['fillStyle'] = '#f60',
_0x2484d1['fillRect'](125, 1, 62, 20),
_0x2484d1['fillStyle'] = '#069',
_0x2484d1['fillText'](_0x4b7ee6, 2, 15),
_0x2484d1['fillStyle'] = 'rgba(102, 204, 0, 0.7)',
_0x2484d1['fillText'](_0x4b7ee6, 4, 17),
_0x5c9a07['toDataURL']();
// } catch (_0x4c1a6e) {
// return _0x2329c0[0xf3];
// }
}
function _0x5333c0() {
// 一样的指纹收集 设备指纹识别
var _0x4252cb = _0x112b90['createElement']('div') // _0x112b90 --> document
, _0x2e81af = []
, _0x47837b = ["ActiveBorder","ActiveCaption","AppWorkspace","Background","ButtonFace","ButtonHighlight","ButtonShadow","ButtonText","CaptionText","GrayText","Highlight","HighlightText","InactiveBorder","InactiveCaption","InactiveCaptionText","InfoBackground","InfoText","Menu","MenuText","Scrollbar","ThreeDDarkShadow","ThreeDFace","ThreeDHighlight","ThreeDLightShadow","ThreeDShadow","Window","WindowFrame","WindowText"];
if (!window['getComputedStyle'])
return _0x2e81af['join']('');
for (var _0x5999a9 = 0; _0x5999a9 < _0x47837b['length']; _0x5999a9++)
try {
_0x112b90['body']['appendChild'](_0x4252cb),
_0x4252cb['style']['color'] = _0x47837b[_0x5999a9],
_0x2e81af['push'](_0x47837b[_0x5999a9]),
_0x2e81af['push'](window['getComputedStyle'](_0x4252cb)['getPropertyValue']('color')),
_0x112b90['body']['removeChild'](_0x4252cb);
} catch (_0x354609) {
_0x2e81af['push']('get system colors exception');
}
return _0x2e81af['join'](':');
}
// function _0x5285c4(_0x17ee77, _0x473d8e, _0x1f0dd7) {
// var _0x1fc7cf = [];
// return null == _0x17ee77 ? _0x1fc7cf : _0x2d0f13 && _0x17ee77['map'] === _0x2d0f13 ? _0x17ee77['map'](_0x473d8e, _0x1f0dd7) : (_0x333a8e(_0x17ee77, function(_0x171834, _0xcc663, _0x38982a) {
// _0x1fc7cf[_0x1fc7cf['length']] = _0x473d8e['call'](_0x1f0dd7, _0x171834, _0xcc663, _0x38982a);
// }),
// _0x1fc7cf);
// }
// function _0x333a8e(_0x347bec, _0x1f18da, _0x37d931) {
// if (null !== _0x347bec) {
// if (_0x22907e && _0x347bec['forEach'] === _0x22907e)
// _0x347bec['forEach'](_0x1f18da, _0x37d931);
// else {
// if (_0x347bec['length'] === +_0x347bec['length']) {
// for (var _0x523bf5 = 0, _0x447392 = _0x347bec['length']; _0x523bf5 < _0x447392 && _0x1f18da['call'](_0x37d931, _0x347bec[_0x523bf5], _0x523bf5, _0x347bec) !== {}; _0x523bf5++)
// ;
// } else {
// for (_0x523bf5 in _0x347bec)
// if (_0x347bec['hasOwnProperty'](_0x523bf5) && _0x1f18da['call'](_0x37d931, _0x347bec[_0x523bf5], _0x523bf5, _0x347bec) === {})
// break;
// }
// }
// }
// }
function _0x46ab48() {
//收集浏览器 navigator.plugins 列表中的信息(包括名字、描述、MIME 类型和后缀),并与一个预设插件名列表比对,生成唯一的插件特征字符串。
if (!_0x25d405['plugins']) //_0x25d405--> Navigator
return '';
var _0x2ac7f3 = ["4game","AdblockPlugin","AdobeExManCCDetect","AdobeExManDetect","Alawar NPAPI utils","Aliedit Plug-In","Alipay Security Control 3","AliSSOLogin plugin","AmazonMP3DownloaderPlugin","AOL Media Playback Plugin","AppUp","ArchiCAD","AVG SiteSafety plugin","Babylon ToolBar","Battlelog Game Launcher","BitCometAgent","Bitdefender QuickScan","BlueStacks Install Detector","CatalinaGroup Update","Citrix ICA Client","Citrix online plug-in","Citrix Receiver Plug-in","Coowon Update","DealPlyLive Update","Default Browser Helper","DivX Browser Plug-In","DivX Plus Web Player","DivX VOD Helper Plug-in","doubleTwist Web Plugin","Downloaders plugin","downloadUpdater","eMusicPlugin DLM6","ESN Launch Mozilla Plugin","ESN Sonar API","Exif Everywhere","Facebook Plugin","File Downloader Plug-in","FileLab plugin","FlyOrDie Games Plugin","Folx 3 Browser Plugin","FUZEShare","GDL Object Web Plug-in 16.00","GFACE Plugin","Ginger","Gnome Shell Integration","Google Earth Plugin","Google Earth Plug-in","Google Gears 0.5.33.0","Google Talk Effects Plugin","Google Update","Harmony Firefox Plugin","Harmony Plug-In","Heroes & Generals live","HPDetect","Html5 location provider","IE Tab plugin","iGetterScriptablePlugin","iMesh plugin","Kaspersky Password Manager","LastPass","LogMeIn Plugin 1.0.0.935","LogMeIn Plugin 1.0.0.961","Ma-Config.com plugin","Microsoft Office 2013","MinibarPlugin","Native Client","Nitro PDF Plug-In","Nokia Suite Enabler Plugin","Norton Identity Safe","npAPI Plugin","NPLastPass","NPPlayerShell","npTongbuAddin","NyxLauncher","Octoshape Streaming Services","Online Storage plug-in","Orbit Downloader","Pando Web Plugin","Parom.TV player plugin","PDF integrado do WebKit","PDF-XChange Viewer","PhotoCenterPlugin1.1.2.2","Picasa","PlayOn Plug-in","QQ2013 Firefox Plugin","QQDownload Plugin","QQMiniDL Plugin","QQMusic","RealDownloader Plugin","Roblox Launcher Plugin","RockMelt Update","Safer Update","SafeSearch","Scripting.Dictionary","SefClient Plugin","Shell.UIHelper","Silverlight Plug-In","Simple Pass","Skype Web Plugin","SumatraPDF Browser Plugin","Symantec PKI Client","Tencent FTN plug-in","Thunder DapCtrl NPAPI Plugin","TorchHelper","Unity Player","Uplay PC","VDownloader","Veetle TV Core","VLC Multimedia Plugin","Web Components","WebKit-integrierte PDF","WEBZEN Browser Extension","Wolfram Mathematica","WordCaptureX","WPI Detector 1.4","Yandex Media Plugin","Yandex PDF Viewer","YouTube Plug-in","zako"]
, _0x4f0aff = []
, _0x23e9b7 = {};
return _0x4f0aff['push'](_0x5285c4(_0x25d405['plugins'], function(_0x45c195) {
_0x23e9b7[_0x45c195['name']] = 1;
var _0x165cde = _0x5285c4(_0x45c195, function(_0x15862c) {
return [_0x15862c['type'], _0x15862c['suffixes']]['join']('~');
})['join'](',');
return [_0x45c195['name'], _0x45c195['description'], _0x165cde]['join']('::');
}, this)['join']('$')),
_0x4f0aff['push'](_0x5285c4(_0x2ac7f3, function(_0x377542) {
if (_0x23e9b7[_0x377542])
return '';
if (_0x377542 = _0x25d405['plugins'][_0x377542],
!_0x377542)
return '';
var _0x43fabd = _0x5285c4(_0x377542, function(_0x1e2530) {
return [_0x1e2530['type'], _0x1e2530['suffixes']]['join']('~');
})['join'](',');
return [_0x377542['name'], _0x377542['description'], _0x43fabd]['join']('::');
}, this)['join'](';')),
_0x4f0aff['join'](';');
}
function _0x40a158(_0x483f83, _0x3f801c) {
if (_0x483f83 <= 0)
return [0];
for (var _0x151126 = [], _0x26fb9d = 0; _0x26fb9d < _0x483f83; _0x26fb9d++)
_0x151126['push'](_0x3f801c);
return _0x151126;
}
function _0x36a85e(_0x5de869, _0x2636a4) {
// if (_0x5de869 < 0 || _0x5de869 >= 10)
// throw Error(_0x2329c0[0x20]);
_0x2636a4 = _0x40a158(_0x2636a4, '0'),
_0x5de869 = '' + _0x5de869;
for (var _0x45a864 = 0, _0x48eb47 = 0; _0x45a864 < _0x2636a4['length'] && _0x48eb47 < _0x5de869['length']; _0x48eb47++)
_0x5de869['charAt'](_0x48eb47) != '.' && (_0x2636a4[_0x45a864++] = _0x5de869['charAt'](_0x48eb47));
return parseInt(_0x2636a4['join'](''));
}
function _0x137a8e(_0x414a82, _0x2e493b, _0x47f390, _0x1a7ed4) {
if (_0x414a82 = '' + _0x414a82,
_0x414a82['length'] > _0x47f390)
throw Error('1111');
if (_0x414a82['length'] == _0x47f390)
return _0x414a82;
var _0x5e4ddd = [];
_0x2e493b || _0x5e4ddd['push'](_0x414a82);
for (var _0x2807cd = _0x414a82['length']; _0x2807cd < _0x47f390; _0x2807cd++)
_0x5e4ddd['push'](_0x1a7ed4);
return _0x2e493b && _0x5e4ddd['push'](_0x414a82),
_0x5e4ddd['join']('');
}
function _0x61b736(_0x17aaa4) {
var _0x162aef, _0x38f9c2 = 31, _0x52044a = _0x17aaa4['length'] & 3, _0x411f3e = _0x17aaa4['length'] - _0x52044a, _0x4a8e50 = _0x38f9c2;
_0x38f9c2 = 3432918353;
var _0x1eec2e = 461845907;
for (_0x162aef = 0; _0x162aef < _0x411f3e; ) {
var _0x1accd1 = _0x17aaa4['charCodeAt'](_0x162aef) & 255 | (_0x17aaa4['charCodeAt'](++_0x162aef) & 255) << 8 | (_0x17aaa4['charCodeAt'](++_0x162aef) & 255) << 16 | (_0x17aaa4['charCodeAt'](++_0x162aef) & 255) << 24;
++_0x162aef,
_0x1accd1 = (_0x1accd1 & 65535) * _0x38f9c2 + (((_0x1accd1 >>> 16) * _0x38f9c2 & 65535) << 16) & 4294967295,
_0x1accd1 = _0x1accd1 << 15 | _0x1accd1 >>> 17,
_0x1accd1 = (_0x1accd1 & 65535) * _0x1eec2e + (((_0x1accd1 >>> 16) * _0x1eec2e & 65535) << 16) & 4294967295,
_0x4a8e50 ^= _0x1accd1,
_0x4a8e50 = _0x4a8e50 << 13 | _0x4a8e50 >>> 19,
_0x4a8e50 = (_0x4a8e50 & 65535) * 5 + (((_0x4a8e50 >>> 16) * 5 & 65535) << 16) & 4294967295,
_0x4a8e50 = (_0x4a8e50 & 65535) + 27492 + (((_0x4a8e50 >>> 16) + 58964 & 65535) << 16);
}
switch (_0x1accd1 = 0,
_0x52044a) {
case 3:
_0x1accd1 ^= (_0x17aaa4['charCodeAt'](_0x162aef + 2) & 255) << 16;
case 2:
_0x1accd1 ^= (_0x17aaa4['charCodeAt'](_0x162aef + 1) & 255) << 8;
case 1:
_0x1accd1 ^= _0x17aaa4['charCodeAt'](_0x162aef) & 255,
_0x1accd1 = (_0x1accd1 & 65535) * _0x38f9c2 + (((_0x1accd1 >>> 16) * _0x38f9c2 & 65535) << 16) & 4294967295,
_0x1accd1 = _0x1accd1 << 15 | _0x1accd1 >>> 17,
_0x1accd1 = (_0x1accd1 & 65535) * _0x1eec2e + (((_0x1accd1 >>> 16) * _0x1eec2e & 65535) << 16) & 4294967295,
_0x4a8e50 ^= _0x1accd1;
}
_0x4a8e50 ^= _0x17aaa4['length'],
_0x4a8e50 ^= _0x4a8e50 >>> 16,
_0x4a8e50 = (_0x4a8e50 & 65535) * 2246822507 + (((_0x4a8e50 >>> 16) * 2246822507 & 65535) << 16) & 4294967295,
_0x4a8e50 ^= _0x4a8e50 >>> 13,
_0x4a8e50 = (_0x4a8e50 & 65535) * 3266489909 + (((_0x4a8e50 >>> 16) * 3266489909 & 65535) << 16) & 4294967295,
_0x4a8e50 ^= _0x4a8e50 >>> 16,
_0x17aaa4 = _0x4a8e50 >>> 0,
_0x52044a = [],
_0x52044a['push'](_0x17aaa4);
// try {
for (var _0x4adbff, _0x1681cb = _0x17aaa4 + '', _0x29f86c = 0, _0x5b3bca = 0, _0x5a639 = 0; _0x5a639 < _0x1681cb['length']; _0x5a639++)
// try {
var _0x283a5a = parseInt(_0x1681cb['charAt'](_0x5a639) + '');
_0x29f86c = _0x283a5a || _0x283a5a === 0 ? _0x29f86c + _0x283a5a : _0x29f86c + 1,
_0x5b3bca++;
// } catch (_0x3d06e3) {
// _0x29f86c += 1,
// _0x5b3bca++;
// }
_0x5b3bca = _0x5b3bca == 0 ? 1 : _0x5b3bca,
_0x4adbff = _0x36a85e(_0x29f86c * 1 / _0x5b3bca, 2);
for (var _0x1d6c43, _0x3bf9df = Math['floor'](_0x4adbff / Math['pow'](10, 2 - 1)), _0x2903a8 = _0x17aaa4 + '', _0x2955d = 0, _0x46ac57 = 0, _0x44286c = 0, _0x110b70 = 0, _0x187b0b = 0; _0x187b0b < _0x2903a8['length']; _0x187b0b++)
try {
var _0x491582 = parseInt(_0x2903a8['charAt'](_0x187b0b) + '');
_0x491582 || _0x491582 === 0 ? _0x491582 < _0x3bf9df ? (_0x46ac57++,
_0x2955d += _0x491582) : (_0x110b70++,
_0x44286c += _0x491582) : (_0x110b70++,
_0x44286c += _0x3bf9df);
} catch (_0x137122) {
_0x110b70++,
_0x44286c += _0x3bf9df;
}
_0x110b70 = _0x110b70 == 0 ? 1 : _0x110b70,
_0x46ac57 = _0x46ac57 == 0 ? 1 : _0x46ac57,
_0x1d6c43 = _0x36a85e(_0x44286c * 1 / _0x110b70 - _0x2955d * 1 / _0x46ac57, 2),
_0x52044a['push'](_0x137a8e(_0x4adbff, !0x0, 2, '0')),
_0x52044a['push'](_0x137a8e(_0x1d6c43, !0x0, 2, '0'));
// } catch (_0x1966aa) {
// _0x52044a = [],
// _0x52044a['push'](_0x17aaa4),
// _0x52044a['push'](_0x40a158(_0x5994a9, _0x2329c0[0x25])['join']('')),
// _0x52044a['push'](_0x40a158(_0x3a3dac, _0x2329c0[0x25])['join'](''));
// }
return _0x52044a['join']('');
}
function _0x32ab4b() {
var _0x1b33bd = []
, _0x586ca9 = []
,_0x276349 = {
"o": true,
"l": true,
"j": true,
"b": false,
"a": false,
"g": _0x61b736,
};
// if (_0x28a30e) {
_0x1b33bd['push'](true) //(_0x2e1af2()), 校验 sessionStorage
_0x1b33bd['push'](true)//(_0x266a2c()), 校验 'localStorage'
_0x1b33bd['push'](true)//(!!window['indexedDB']),
//_0x112b90['body'] ? _0x1b33bd['push'](_0x2fbd48(_0x112b90['body'][_0x2329c0[0x132]])) : _0x1b33bd['push']('undefined'),
//_0x1b33bd['push'](_0x2fbd48(_0x112b90['body']['addBehavior'])),
_0x1b33bd['push']('undefined'),
_0x1b33bd['push']('undefined'), // _0x2fbd48(window['openDatabase'])
_0x1b33bd['push'](undefined), // _0x25d405['cpuClass']
_0x1b33bd['push']('Win32'); // _0x25d405['platform']
var _0x6ab2e0;
if (_0x6ab2e0 = true)
// try {
// var _0x255138 = _0x112b90['createElement']('canvas');
_0x6ab2e0 = true //!(!_0x255138['getContext'] || !_0x255138['getContext']('2d'));
// } catch (_0x2be67d) {
// _0x6ab2e0 = !0x1;
// }
if (_0x6ab2e0)
// try {
_0x1b33bd['push']('data:image/png;省略'), // _0x49792c() Canvas 指纹
//_0x276349['b'] && _0x1b33bd['push'](_0x50f150()); 前面是f,后面不会走
// } catch (_0x2eaf2c) {
// _0x1b33bd['push'](_0x2329c0[0x3d]);
// }
_0x1b33bd['push']('ActiveBorder:rgb(0, 0, 0):省略'), //_0x5333c0() 设备指纹识别
// _0x276349['a'] && _0x586ca9['push'](_0x47a812()),
_0x586ca9['push']('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0') //(_0x25d405['userAgent']),
_0x586ca9['push']('zh-CN')//(_0x25d405['language']),
_0x586ca9['push'](24)//(window['screen']['colorDepth']),
// _0x276349['o'] && (_0x6ab2e0 = window['screen'] ? [window['screen']['height'], window['screen']['width']] : [0, 0],
// ('undefined' == typeof _0x6ab2e0 ? 'undefined' : _0x2fbd48(_0x6ab2e0)) !== 'undefined' && _0x586ca9['push'](_0x6ab2e0['join']('x'))),
_0x6ab2e0 = [1067, 1707] //[window['screen']['height'], window['screen']['width']]
_0x586ca9['push'](_0x6ab2e0['join']('x'))
_0x586ca9['push'](new Date()['getTimezoneOffset']()),
_0x586ca9['push'](null)//(_0x25d405['doNotTrack']),
_0x586ca9['push']('PDF Viewer::Portable 省略');
// _0x347955 --> _0x46ab48 还是设备指纹收集
// }
return _0x6ab2e0 = [],
_0x276349['g'] ? (_0x6ab2e0['push'](_0x276349['g'](_0x1b33bd['join']('###'))),
_0x6ab2e0['push'](_0x276349['g'](_0x586ca9['join']('###')))) : (_0x6ab2e0['push'](_0x61b736(_0x1b33bd['join']('###'))),
_0x6ab2e0['push'](_0x61b736(_0x586ca9['join']('###')))),
_0x6ab2e0;
}
function _0xd526f8(_0x2f5491) {
var _0x3426ff = ["v","fp","u","h","ec","em","icp"]
, _0xfc7848 = '';
if (null == _0x2f5491 || void 0x0 == _0x2f5491)
return _0x2f5491;
if (('undefined' == typeof _0x2f5491 ? 'undefined' : typeof(_0x2f5491)) == ["ob","je","ct"]['join']('')) {
_0xfc7848 += '{';
for (var _0x24435d = 0; _0x24435d < _0x3426ff['length']; _0x24435d++)
if (_0x2f5491['hasOwnProperty'](_0x3426ff[_0x24435d])) {
var _0x10a5b9 = "'" + _0x3426ff[_0x24435d] + "':'"
, _0x5d677a = '' + _0x2f5491[_0x3426ff[_0x24435d]];
_0x5d677a = null == _0x5d677a || void 0x0 == _0x5d677a ? _0x5d677a : _0x5d677a['replace'](/'/g, "\\'")['replace'](/"/g, '"'),
_0xfc7848 += _0x10a5b9 + _0x5d677a + "',";
}
return _0xfc7848['charAt'](_0xfc7848['length'] - 1) == ',' && (_0xfc7848 = _0xfc7848['substring'](0, _0xfc7848['length'] - 1)),
_0xfc7848 += '}';
}
return null;
}
function _0x536c26(_0x5cc904) {
if (_0x5cc904 < -128)
return _0x536c26(128 - (-128 - _0x5cc904));
if (_0x5cc904 >= -128 && _0x5cc904 <= 127)
return _0x5cc904;
if (_0x5cc904 > 127)
return _0x536c26(-129 + _0x5cc904 - 127);
throw Error('1001');
}
function _0x465a94(_0x5db5f3) {
if (null == _0x5db5f3 || _0x5db5f3['length'] == 0)
return [];
_0x5db5f3 = new String(_0x5db5f3);
for (var _0x4b32e2 = [], _0x3171bd = _0x5db5f3['length'] / 2, _0x5dc20a = 0, _0x339775 = 0; _0x339775 < _0x3171bd; _0x339775++) {
var _0x5db572 = parseInt(_0x5db5f3['charAt'](_0x5dc20a++), 16) << 4
, _0x2ce51f = parseInt(_0x5db5f3['charAt'](_0x5dc20a++), 16);
_0x4b32e2[_0x339775] = _0x536c26(_0x5db572 + _0x2ce51f);
}
return _0x4b32e2;
}
function _0xc15028(_0x5a0d23) {
if (null == _0x5a0d23 || void 0x0 == _0x5a0d23)
return _0x5a0d23;
_0x5a0d23 = encodeURIComponent(_0x5a0d23);
for (var _0x5ca780 = [], _0x36f47f = _0x5a0d23['length'], _0x119319 = 0; _0x119319 < _0x36f47f; _0x119319++)
if (_0x5a0d23['charAt'](_0x119319) == '%') {
if (!(_0x119319 + 2 < _0x36f47f))
throw Error('1009');
_0x5ca780['push'](_0x465a94(_0x5a0d23['charAt'](++_0x119319) + '' + _0x5a0d23['charAt'](++_0x119319))[0x0]);
} else
_0x5ca780['push'](_0x5a0d23['charCodeAt'](_0x119319));
return _0x5ca780;
}
function _0x9de8f6(_0x3b8213) {
var _0x56f8f2 = [];
return _0x56f8f2[0x0] = _0x3b8213 >>> 24 & 255,
_0x56f8f2[0x1] = _0x3b8213 >>> 16 & 255,
_0x56f8f2[0x2] = _0x3b8213 >>> 8 & 255,
_0x56f8f2[0x3] = _0x3b8213 & 255,
_0x56f8f2;
}
var _0x462cba = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"]
function _0xd8336a(_0x38a65d) {
var _0x5cba0c = [];
return _0x5cba0c['push'](_0x462cba[_0x38a65d >>> 4 & 15]),
_0x5cba0c['push'](_0x462cba[_0x38a65d & 15]),
_0x5cba0c['join']('');
}
var _0x423b4a = [0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918000,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]
var _0x2dadf1 = [-9,-84,-50,59,115,102,57,125,94,-15,15,2,-72,-98,-79,38,-56,-49,76,-26,-117,60,90,9,-107,-12,-71,-100,63,42,-18,28,-120,-11,33,45,79,92,37,97,4,58,98,84,-97,-88,95,-104,-13,-89,78,-90,119,-66,13,-5,29,-116,-4,-81,27,40,-59,-43,85,48,-74,109,-64,26,67,-33,-115,0,-37,-102,88,-48,127,-86,41,105,-2,122,-42,112,-94,81,-31,-65,-101,-14,65,49,-67,-114,-103,-87,-19,104,66,-73,-34,-78,-45,-27,-109,-108,47,61,86,43,-54,25,64,-35,-44,53,-112,36,73,89,-82,51,-32,39,-83,80,-85,-111,12,-58,103,-76,-46,-127,34,1,-99,14,-57,110,106,93,-52,11,113,20,-106,75,62,-69,-39,-55,-119,126,114,123,10,77,-121,-8,74,21,-93,17,-61,-21,-105,-126,18,124,-17,52,-10,-77,-24,-22,120,-95,-25,96,-110,22,-23,69,-125,-128,-47,-38,-1,3,-20,100,68,101,5,117,-122,44,-51,-36,-41,24,-80,30,82,-63,-40,-92,91,-6,-53,-124,-62,-28,111,19,50,108,70,-68,-29,-75,99,-91,-60,-70,71,-118,-3,83,87,-7,32,55,31,-123,121,107,-113,46,-30,118,54,23,116,-16,7,6,35,16,-96,56,72,8]
function _0x383f63(_0x4c3e70) {
var _0x5c199f = 4294967295;
if (null != _0x4c3e70) {
for (var _0x2c874d = 0; _0x2c874d < _0x4c3e70['length']; _0x2c874d++)
_0x5c199f = _0x5c199f >>> 8 ^ _0x423b4a[(_0x5c199f ^ _0x4c3e70[_0x2c874d]) & 255];
}
if (_0x4c3e70 = _0x9de8f6(_0x5c199f ^ 4294967295),
_0x5c199f = _0x4c3e70['length'],
null == _0x4c3e70 || _0x5c199f < 0)
_0x4c3e70 = new String('');
else {
_0x2c874d = [];
for (var _0x593966 = 0; _0x593966 < _0x5c199f; _0x593966++)
_0x2c874d['push'](_0xd8336a(_0x4c3e70[_0x593966]));
_0x4c3e70 = _0x2c874d['join']('');
}
return _0x4c3e70;
}
function _0x30fa24(_0x586de6) {
for (var _0x389ab1 = [], _0x5893ad = 0; _0x5893ad < _0x586de6; _0x5893ad++)
_0x389ab1[_0x5893ad] = 0;
return _0x389ab1;
}
function _0x2f41b8(_0x5847b4) {
var _0x38ed76 = [];
if (null == _0x5847b4 || void 0x0 == _0x5847b4 || _0x5847b4['length'] == 0)
return _0x30fa24(64);
if (_0x5847b4['length'] >= 64) {
_0x38ed76 = 0;
var _0x323693 = [];
if (null != _0x5847b4 && _0x5847b4['length'] != 0) {
if (_0x5847b4['length'] < 64)
throw Error('1003');
for (var _0x512171 = 0; _0x512171 < 64; _0x512171++)
_0x323693[_0x512171] = _0x5847b4[_0x38ed76 + _0x512171];
}
return _0x323693;
}
for (_0x323693 = 0; _0x323693 < 64; _0x323693++)
_0x38ed76[_0x323693] = _0x5847b4[_0x323693 % _0x5847b4['length']];
return _0x38ed76;
}
function _0x536c26(_0x5cc904) {
if (_0x5cc904 < -128)
return _0x536c26(128 - (-128 - _0x5cc904));
if (_0x5cc904 >= -128 && _0x5cc904 <= 127)
return _0x5cc904;
if (_0x5cc904 > 127)
return _0x536c26(-129 + _0x5cc904 - 127);
// throw Error('1001');
}
function _0x4e2e28(_0x288eab, _0x452e93) {
return _0x288eab = _0x536c26(_0x288eab),
_0x452e93 = _0x536c26(_0x452e93),
_0x536c26(_0x288eab ^ _0x452e93);
}
function _0x1b169d(_0x4f63e7, _0x1d181d) {
if (null == _0x4f63e7 || null == _0x1d181d || _0x4f63e7['length'] != _0x1d181d['length'])
return _0x4f63e7;
for (var _0x29b03a = [], _0x34196b = 0, _0x5834e1 = _0x4f63e7['length']; _0x34196b < _0x5834e1; _0x34196b++)
_0x29b03a[_0x34196b] = _0x4e2e28(_0x4f63e7[_0x34196b], _0x1d181d[_0x34196b]);
return _0x29b03a;
}
function _0x578b4e(_0x4d38e9, _0x14ffe4, _0x2b8b68, _0x67426, _0x1ac758) {
if (null == _0x4d38e9 || _0x4d38e9['length'] == 0)
return _0x2b8b68;
if (null == _0x2b8b68)
throw Error('1004');
if (_0x4d38e9['length'] < _0x1ac758)
throw Error('1003');
for (var _0x5652b9 = 0; _0x5652b9 < _0x1ac758; _0x5652b9++)
_0x2b8b68[_0x67426 + _0x5652b9] = _0x4d38e9[_0x14ffe4 + _0x5652b9];
return _0x2b8b68;
}
function _0x3e7a59(_0x28d0b0, _0x23b489) {
return _0x536c26(_0x28d0b0 + _0x23b489);
}
function _0x54b400(_0x508737) {
// if (null == _0x508737)
// return null;
// 大坑
for (var _0x3f400f = [], _0x4a597d = 0, _0x1c364b = _0x508737['length']; _0x4a597d < _0x1c364b; _0x4a597d++) {
var _0x5658f6 = _0x508737[_0x4a597d];
_0x3f400f[_0x4a597d] = _0x2dadf1[(_0x5658f6 >>> 4 & 15) * 16 + (_0x5658f6 & 15)];
}
return _0x3f400f;
}
function _0x570a3a(_0x10a46c, _0x1bb04c, _0x5bd449) {
var _0x221991 = ["2","4","0","a","Y","H","i","Q","x","L","\\","Z","u","f","V","l","g","8","s","P","M","R","6","d","G","k","X","v","O","/","C","b","w","9","W","D","j","1","E","T","y","I","S","c","m","e","o","J","z","3","7","q","t","h","B","r","U","+","K","N","A","5","p","n"]
, _0x9b46d0 = 'F'
, _0x2d9ee6 = [];
if (_0x5bd449 == 1) {
_0x5bd449 = _0x10a46c[_0x1bb04c];
var _0x2008c5 = 0;
_0x2d9ee6['push'](_0x221991[_0x5bd449 >>> 2 & 63]),
_0x2d9ee6['push'](_0x221991[(_0x5bd449 << 4 & 48) + (_0x2008c5 >>> 4 & 15)]),
_0x2d9ee6['push'](_0x9b46d0),
_0x2d9ee6['push'](_0x9b46d0);
} else {
if (_0x5bd449 == 2)
_0x5bd449 = _0x10a46c[_0x1bb04c],
_0x2008c5 = _0x10a46c[_0x1bb04c + 1],
_0x10a46c = 0,
_0x2d9ee6['push'](_0x221991[_0x5bd449 >>> 2 & 63]),
_0x2d9ee6['push'](_0x221991[(_0x5bd449 << 4 & 48) + (_0x2008c5 >>> 4 & 15)]),
_0x2d9ee6['push'](_0x221991[(_0x2008c5 << 2 & 60) + (_0x10a46c >>> 6 & 3)]),
_0x2d9ee6['push'](_0x9b46d0);
else {
// if (_0x5bd449 != 3)
// throw Error(_0x2329c0[0x71]);
_0x5bd449 = _0x10a46c[_0x1bb04c],
_0x2008c5 = _0x10a46c[_0x1bb04c + 1],
_0x10a46c = _0x10a46c[_0x1bb04c + 2],
_0x2d9ee6['push'](_0x221991[_0x5bd449 >>> 2 & 63]),
_0x2d9ee6['push'](_0x221991[(_0x5bd449 << 4 & 48) + (_0x2008c5 >>> 4 & 15)]),
_0x2d9ee6['push'](_0x221991[(_0x2008c5 << 2 & 60) + (_0x10a46c >>> 6 & 3)]),
_0x2d9ee6['push'](_0x221991[_0x10a46c & 63]);
}
}
return _0x2d9ee6['join']('');
}
function _0x163da2() {
// _0x597998(),
// window[_0x303d65] = null;
var _0x5dc2cd = {};
_0x5dc2cd['v'] = 'v1.1';
var _0x54721f = !0x0
, _0x4c0002 = _0x5dc2cd
, _0x5e3ec3 = null //_0x2d4759();
_0x5e3ec3 && (_0x4c0002['icp'] = _0x5e3ec3),
_0x5e3ec3 = null,
_0x4c0002['h'] = 'dun.163.com';
var _0x48b38c = new Date().getTime() + 900000 //new window['Date']()['getTime']() + 900000
, _0x141df5 = _0x48b38c + 2592000000;
_0x4c0002['u'] = _0x2e76f4(3) + _0x48b38c + _0x2e76f4(3);
// try {
var _0x5d9f90 = {};
_0x5d9f90['b'] = !0x1,
_0x5d9f90['a'] = !0x1;
var _0x107cac = _0x32ab4b(_0x5d9f90);
//null != _0x107cac && void 0x0 != _0x107cac && _0x107cac['length'] > 0 --> true
// null != _0x107cac && void 0x0 != _0x107cac && _0x107cac['length'] > 0 ? _0x4c0002['fp'] = _0x107cac['join'](',') : (_0x4c0002['fp'] = _0x2ad464('0', 10),
// _0x4c0002[_0x2329c0[0xa2]] = _0x2329c0[0x2c],
// _0x54721f = !0x1);
_0x4c0002['fp'] = _0x107cac['join'](',')
// } catch (_0x9d81ce) {
// _0x4c0002['fp'] = _0x2ad464('0', 10),
// _0x4c0002[_0x2329c0[0xa2]] = _0x2329c0[0x2c],
// _0x54721f = !0x1;
// }
// try {
var _0x27e732 = _0x5e3ec3 = _0xd526f8(_0x4c0002);
// if (_0x4c0002 = '14731255234d414cF91356d684E4E8F5F56c8f1bc',
// null == _0x4c0002 || void 0x0 == _0x4c0002)
// throw Error('1008');
_0x4c0002 = '14731255234d414cF91356d684E4E8F5F56c8f1bc'
null != _0x27e732 && void 0x0 != _0x27e732 || (_0x27e732 = ''),
_0x107cac = _0x27e732;
var _0x2900ae = _0x383f63(_0xc15028(_0x27e732)) //null == _0x27e732 ? [] : _0xc15028(_0x27e732)
, _0x396bfe = _0xc15028(_0x107cac + _0x2900ae)
, _0xc835cf = _0xc15028(_0x4c0002);
null == _0x396bfe && (_0x396bfe = []),
_0x2900ae = [];
for (var _0x48596a = 0; _0x48596a < 4; _0x48596a++) {
var _0x236e60 = Math['random']() * 256;
_0x236e60 = Math['floor'](_0x236e60),
_0x2900ae[_0x48596a] = _0x536c26(_0x236e60);
}
if (_0xc835cf = _0x2f41b8(_0xc835cf),
_0xc835cf = _0x1b169d(_0xc835cf, _0x2f41b8(_0x2900ae)),
_0x48596a = _0xc835cf = _0x2f41b8(_0xc835cf),
_0x236e60 = _0x396bfe,
null == _0x236e60 || void 0x0 == _0x236e60 || _0x236e60['length'] == 0)
var _0x1a02ac = _0x30fa24(64);
else {
var _0x251daa = _0x236e60['length']
, _0x4cc934 = _0x251daa % 64 <= 64 - 4 ? 64 - _0x251daa % 64 - 4 : 64 * 2 - _0x251daa % 64 - 4;
_0x396bfe = [],
_0x578b4e(_0x236e60, 0, _0x396bfe, 0, _0x251daa);
for (var _0x4b2a2e = 0; _0x4b2a2e < _0x4cc934; _0x4b2a2e++)
_0x396bfe[_0x251daa + _0x4b2a2e] = 0;
var _0x1eb045 = _0x9de8f6(_0x251daa);
_0x578b4e(_0x1eb045, 0, _0x396bfe, _0x251daa + _0x4cc934, 4),
_0x1a02ac = _0x396bfe;
}
if (_0x251daa = _0x1a02ac,
null == _0x251daa || _0x251daa['length'] % 64 != 0)
throw Error('1005');
_0x1a02ac = [];
for (var _0x2c46fa = 0, _0xceede3 = _0x251daa['length'] / 64, _0xb6380c = 0; _0xb6380c < _0xceede3; _0xb6380c++) {
_0x1a02ac[_0xb6380c] = [];
for (var _0x4c4156 = 0; _0x4c4156 < 64; _0x4c4156++)
_0x1a02ac[_0xb6380c][_0x4c4156] = _0x251daa[_0x2c46fa++];
}
_0x2c46fa = [],
_0x578b4e(_0x2900ae, 0, _0x2c46fa, 0, 4);
for (var _0x16278c = _0x1a02ac['length'], _0x3f0082 = 0; _0x3f0082 < _0x16278c; _0x3f0082++) {
var _0xa48578 = _0x1a02ac[_0x3f0082];
if (null == _0xa48578)
var _0x4d2046 = null;
else {
var _0x5a75ec = _0x536c26(37);
_0xceede3 = [];
for (var _0x57aefd = _0xa48578['length'], _0xc9a70b = 0; _0xc9a70b < _0x57aefd; _0xc9a70b++)
_0xceede3['push'](_0x4e2e28(_0xa48578[_0xc9a70b], _0x5a75ec));
_0x4d2046 = _0xceede3;
}
if (_0xceede3 = _0x4d2046,
null == _0xceede3)
var _0x5a16a0 = null;
else {
var _0xd07615 = _0x536c26(35);
_0xb6380c = [];
for (var _0x4c7e6c = _0xceede3['length'], _0x606cde = 0; _0x606cde < _0x4c7e6c; _0x606cde++)
_0xb6380c['push'](_0x4e2e28(_0xceede3[_0x606cde], _0xd07615--));
_0x5a16a0 = _0xb6380c;
}
if (_0xceede3 = _0x5a16a0,
null == _0xceede3)
var _0x3e2f2a = null;
else {
var _0x1ede42 = _0x536c26(-44);
_0xb6380c = [];
for (var _0x2cda63 = _0xceede3['length'], _0x2876b5 = 0; _0x2876b5 < _0x2cda63; _0x2876b5++)
_0xb6380c['push'](_0x3e7a59(_0xceede3[_0x2876b5], _0x1ede42++));
_0x3e2f2a = _0xb6380c;
}
var _0x5eb6b6 = _0x1b169d(_0x3e2f2a, _0xc835cf);
if (_0xceede3 = _0x5eb6b6,
_0xb6380c = _0x48596a,
null == _0xceede3)
var _0x1fae1e = null;
else {
if (null == _0xb6380c)
_0x1fae1e = _0xceede3;
else {
_0x4c4156 = [];
for (var _0x42334c = _0xb6380c['length'], _0x2b7de4 = 0, _0x5e896c = _0xceede3['length']; _0x2b7de4 < _0x5e896c; _0x2b7de4++)
_0x4c4156[_0x2b7de4] = _0x536c26(_0xceede3[_0x2b7de4] + _0xb6380c[_0x2b7de4 % _0x42334c]);
_0x1fae1e = _0x4c4156;
}
}
_0x5eb6b6 = _0x1b169d(_0x1fae1e, _0x48596a);
var _0x5f5e0e = _0x54b400(_0x5eb6b6);
_0x5f5e0e = _0x54b400(_0x5f5e0e),
_0x578b4e(_0x5f5e0e, 0, _0x2c46fa, _0x3f0082 * 64 + 4, 64),
_0x48596a = _0x5f5e0e;
}
if (null == _0x2c46fa || void 0x0 == _0x2c46fa)
var _0x13432a = null;
else {
if (_0x2c46fa['length'] == 0)
_0x13432a = '';
else {
var _0x3039ac = 3;
// try {
_0x16278c = [];
for (var _0x2c5385 = 0; _0x2c5385 < _0x2c46fa['length']; ) {
if (!(_0x2c5385 + _0x3039ac <= _0x2c46fa['length'])) {
_0x16278c['push'](_0x570a3a(_0x2c46fa, _0x2c5385, _0x2c46fa['length'] - _0x2c5385));
break;
}
_0x16278c['push'](_0x570a3a(_0x2c46fa, _0x2c5385, _0x3039ac)),
_0x2c5385 += _0x3039ac;
}
_0x13432a = _0x16278c['join']('');
// } catch (_0xea1630) {
// throw Error(_0x2329c0[0x71]);
// }
}
}
_0x5e3ec3 = _0x13432a;
console.log(_0x13432a)
console.log(_0x13432a.length) // 我的浏览器固定长度为176
// 到这里基本上就结束了,后面的都很简单
// } catch (_0x1d7611) {
// var _0xb20d7b = {};
// _0xb20d7b['ec'] = '2',
// _0xb20d7b['em'] = _0x1d7611['message'],
// (_0x5e3ec3 = _0xd526f8(_0xb20d7b),
// _0x54721f = !0x1);
// }
// _0x5e3ec3 = _0x5e3ec3 + ':' + _0x48b38c,
// _0x38465d(_0x167e5f, _0x5e3ec3, _0x54721f, _0x141df5),
// _0x54721f = _0x167e5f,
// _0x13432a = _0x5e3ec3,
// _0x3039ac = _0x199e85(_0x54721f),
// null !== _0x3039ac && void 0x0 !== _0x3039ac && _0x3039ac !== '' || _0x38465d(_0x54721f, _0x13432a, !0x1),
// window[_0x303d65] = _0x5e3ec3,
// window['setTimeout'] && window['setTimeout'](_0x163da2, _0x507297);
}
console.log(_0x163da2())
这个参数解决了之后,我们来看看cb,还是一样,先搜后逆。
这里代码分析,我还是按照代码讲解的形式展开:
function uuid(_0x356834, _0x298082) {
var _0x1e557c = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'['split']('')
, _0x226025 = []
, _0x5eacbf = void 0x0;
if (_0x298082 = _0x298082 || _0x1e557c['length'],
_0x356834) {
for (_0x5eacbf = 0x0; _0x5eacbf < _0x356834; _0x5eacbf++)
_0x226025[_0x5eacbf] = _0x1e557c[0x0 | Math['random']() * _0x298082];
} else {
var _0x416023 = void 0x0;
for (_0x226025[0x8] = _0x226025[0xd] = _0x226025[0x12] = _0x226025[0x17] = '-',
_0x226025[0xe] = '4',
_0x5eacbf = 0x0; _0x5eacbf < 0x24; _0x5eacbf++)
_0x226025[_0x5eacbf] || (_0x416023 = 0x0 | 0x10 * Math['random'](),
_0x226025[_0x5eacbf] = _0x1e557c[0x13 === _0x5eacbf ? 0x3 & _0x416023 | 0x8 : _0x416023]);
}
return _0x226025['join']('');
}
console.log(uuid(32))
// _0x28b91e --> _0x2fd0f6 --> parseEncodedString
function parseEncodedString(input) {
// 先对输入进行 URL 编码
input = encodeURIComponent(input);
const result = [];
for (let i = 0; i < input.length; i++) {
const ch = input[i];
if (ch === '%') {
// 遇到 % 表示接下来的两个字符是十六进制编码
if (i + 2 < input.length) {
const hex = input[++i] + input[++i];
const byte = parseInt(hex, 16); // 十六进制转十进制
result.push(byte);
}
} else {
// 普通字符,直接转为字节(并归一化为 -128~127)
result.push(normalizeByte(input.charCodeAt(i)));
}
}
return result;
}
// _0x552859 --> normalizeByte
function normalizeByte(value) {
if (value < -128) {
return 256 + value;
} else if (value > 127) {
return value - 256;
}
return value;
}
// _0x3636c4 --> _0x552859 --> normalizeByte
function _0x20557a() {
for (var _0x28d206 = [], _0x208ae2 = 0x0; _0x208ae2 < 0x4; _0x208ae2++)
_0x28d206[_0x208ae2] = normalizeByte(Math['floor'](0x100 * Math['random']()));
return _0x28d206;
}
//
function _0x36b55d(_0x4279e4) {
var _0x311f4e = [];
if (!_0x4279e4['length'])
return createArray(64);//_0x72d58c(0x40);
if (_0x4279e4['length'] >= 0x40)
return _0x4279e4['splice'](0x0, 0x40);
for (var _0x662979 = 0x0; _0x662979 < 0x40; _0x662979++)
_0x311f4e[_0x662979] = _0x4279e4[_0x662979 % _0x4279e4['length']];
return _0x311f4e;
}
// _0x2af43c --> _0x4a3b33
function _0x4a3b33(_0x227b42, _0x47bf59) {
return normalizeByte(normalizeByte(_0x227b42) ^ normalizeByte(_0x47bf59));
}
// _0x3ab997 --> _0x2c4a60
function _0x2c4a60() {
for (var _0x328a71 = arguments['length'] > 0x0 && void 0x0 !== arguments[0x0] ? arguments[0x0] : [], _0x16cc69 = arguments['length'] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : [], _0x4dfd7f = [], _0x158b24 = _0x16cc69['length'], _0x2608fb = 0x0, _0xf22c84 = _0x328a71['length']; _0x2608fb < _0xf22c84; _0x2608fb++)
_0x4dfd7f[_0x2608fb] = _0x4a3b33(_0x328a71[_0x2608fb], _0x16cc69[_0x2608fb % _0x158b24]);
return _0x4dfd7f;
}
function _0x2ac1c0() {
var _0x333539 = parseEncodedString('fd6a43ae25f74398b61c03c83be37449') // --> '__SEED_KEY__'
, _0x2e0e59 = _0x20557a();
return _0x333539 = _0x36b55d(_0x333539),
_0x333539 = _0x2c4a60(_0x333539, _0x36b55d(_0x2e0e59)),
_0x333539 = _0x36b55d(_0x333539),
[_0x333539, _0x2e0e59];
}
// console.log(_0x2ac1c0())
// _0x4525d9 --> _iterableToArrayLimit
function _iterableToArrayLimit(arr, i) {
// 如果是数组,直接返回
if (Array.isArray(arr)) {
return arr;
}
// 如果 arr 是可迭代对象(如 Set、Map、arguments、NodeList 等)
if (typeof Symbol !== 'undefined' && Symbol.iterator in Object(arr)) {
return _createArrayFromIterable(arr, i);
}
// 否则抛出错误:非可迭代对象无法解构
throw new TypeError('Invalid attempt to destructure non-iterable instance');
}
//_0x2aea69 --> _0x1278c3 --> CRC32 校验值计算函数
function _0x1278c3(_0x10ed33) {
for (var _0x1ecea7 = [0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918000,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117], _0x23bc97 = 0xffffffff, _0x5446f2 = 0x0, _0x23306f = _0x10ed33['length']; _0x5446f2 < _0x23306f; _0x5446f2++)
_0x23bc97 = _0x23bc97 >>> 0x8 ^ _0x1ecea7[0xff & (_0x23bc97 ^ _0x10ed33[_0x5446f2])];
return _0x5ed8f8(0xffffffff ^ _0x23bc97);
}
function _0x5ed8f8(_0x25ad9f) {
return _0x89c654(_0x18986b(_0x25ad9f));
}
// _0x2762eb --> _0x18986b
function _0x18986b(_0x4f1fdd) {
var _0x5d0a1e = [];
return _0x5d0a1e[0x0] = normalizeByte(_0x4f1fdd >>> 0x18 & 0xff),
_0x5d0a1e[0x1] = normalizeByte(_0x4f1fdd >>> 0x10 & 0xff),
_0x5d0a1e[0x2] = normalizeByte(_0x4f1fdd >>> 0x8 & 0xff),
_0x5d0a1e[0x3] = normalizeByte(0xff & _0x4f1fdd),
_0x5d0a1e;
}
function _0x89c654(_0x48b28c) {
return _0x48b28c['map'](function(_0x3fff30) {
return _0x14c982(_0x3fff30);
})['join']('');
}
function _0x14c982(_0x4fc418) {
var _0x28f2f6 = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
return '' + _0x28f2f6[_0x4fc418 >>> 0x4 & 0xf] + _0x28f2f6[0xf & _0x4fc418];
}
//结果是这个就是对的 5c0554af
//console.log(_0x1278c3([113,120,98,117,49,69,48,122,115,98,75,55,111,55,53,87,66,71,54,98,48,53,121,57,67,50,55,122,75,82,81,48]))
function _0x5bbf7f(_0x2839f8) {
if (Array['isArray'](_0x2839f8)) {
for (var _0x421055 = 0x0, _0x3f17ad = Array(_0x2839f8['length']); _0x421055 < _0x2839f8['length']; _0x421055++)
_0x3f17ad[_0x421055] = _0x2839f8[_0x421055];
return _0x3f17ad;
}
return Array['from'](_0x2839f8);
}
//
function _0x4052b4(_0x3eb937) {
if (!_0x3eb937['length'])
return createArray(64);//_0x72d58c(0x40);
var _0x59d05d = []
, _0x4cfa95 = _0x3eb937['length']
, _0x4e6f1d = _0x4cfa95 % 0x40 <= 0x3c ? 0x40 - _0x4cfa95 % 0x40 - 0x4 : 0x80 - _0x4cfa95 % 0x40 - 0x4;
_0x400f27(_0x3eb937, 0x0, _0x59d05d, 0x0, _0x4cfa95);
for (var _0xd67e42 = 0x0; _0xd67e42 < _0x4e6f1d; _0xd67e42++)
_0x59d05d[_0x4cfa95 + _0xd67e42] = 0x0;
return _0x400f27(_0x18986b(_0x4cfa95), 0x0, _0x59d05d, _0x4cfa95 + _0x4e6f1d, 0x4),
_0x59d05d;
}
// _0x5d3056 --> _0x400f27
function _0x400f27(_0x4c48bf, _0x1ce6c8, _0x2f5724, _0x59700f, _0xa06da1) {
for (var _0x4ea397 = 0x0, _0x26595b = _0x4c48bf['length']; _0x4ea397 < _0xa06da1; _0x4ea397++)
_0x1ce6c8 + _0x4ea397 < _0x26595b && (_0x2f5724[_0x59700f + _0x4ea397] = _0x4c48bf[_0x1ce6c8 + _0x4ea397]);
return _0x2f5724;
}
//console.log(_0x4052b4([113,120,98,117,49,69,48,122,115,98,75,55,111,55,53,87,66,71,54,98,48,53,121,57,67,50,55,122,75,82,81,48,53,99,48,53,53,52,97,102]))
function _0x4e203b(_0x206ad0) {
if (_0x206ad0['length'] % 0x40 !== 0x0)
return [];
for (var _0x4eebe4 = [], _0x5e4e80 = _0x206ad0['length'] / 0x40, _0x1a268b = 0x0, _0x40df42 = 0x0; _0x1a268b < _0x5e4e80; _0x1a268b++) {
_0x4eebe4[_0x1a268b] = [];
for (var _0x4ff511 = 0x0; _0x4ff511 < 0x40; _0x4ff511++)
_0x4eebe4[_0x1a268b][_0x4ff511] = _0x206ad0[_0x40df42++];
}
return _0x4eebe4;
}
// _0x35fe1d --> _0x4fc267 --> hex2Byte
// function _0x4fc267(_0x43f203) {
// _0x43f203 = '' + _0x43f203;
// var _0x6bac39 = _0x502e41() // 这个逻辑在下面,分析一下发现完全没啥用
// , _0x17eb8f = _0x6bac39['safeGlobal']
// , _0x4069e5 = _0x17eb8f['parseInt'](_0x43f203['charAt'](0x0), 0x10) << 0x4
// , _0x1c8881 = _0x17eb8f['parseInt'](_0x43f203['charAt'](0x1), 0x10);
// return normalizeByte(_0x4069e5 + _0x1c8881);
// }
function hex2Byte(str) {
str = String(str);
const high = parseInt(str[0], 16) << 4;
const low = parseInt(str[1], 16);
return normalizeByte(high + low);
}
// _0x1bb210 --> _0x502e41
// function _0x502e41() {
// var _0x2fcb8b = 'NECaptchaSafeWindow'
// , _0x1d9426 = function(_0x584123) {
// var _0x19f73d = arguments['length'] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : window;
// return _0x584123 && 'function' == typeof _0x584123['parseInt'] ? _0x584123 : _0x19f73d;
// }
// , _0x200ea4 = function() {
// var _0x2cac05 = document['getElementById'](_0x2fcb8b);
// _0x2cac05 && (document['body']['removeChild'](_0x2cac05),
// _0x2cac05 = null);
// }
// , _0x4a6435 = document['getElementById'](_0x2fcb8b);
// if (_0x4a6435) {
// var _0x2d1750 = _0x1d9426(_0x4a6435['contentWindow'])
// , _0xe05a4 = {};
// return _0xe05a4['safeGlobal'] = _0x2d1750,
// _0xe05a4['destroy'] = _0x200ea4,
// _0xe05a4;
// }
// var _0x190da2 = null;
// // try {
// var _0x4e8b51 = document['createElement']('iframe');
// _0x4e8b51['setAttribute']('id', _0x2fcb8b),
// _0x4e8b51['style']['display'] = 'none',
// document['body']['appendChild'](_0x4e8b51),
// _0x190da2 = _0x4e8b51['contentWindow'];
// // } catch (_0x580db9) {}
// var _0x3cb5a0 = _0x1d9426(_0x190da2)
// , _0x303e8d = {};
// return _0x303e8d['safeGlobal'] = _0x3cb5a0,
// _0x303e8d['destroy'] = _0x200ea4,
// _0x303e8d;
// }
function _0x5ae3b4(_0x28553b) {
var _0x1747e0 = arguments['length'] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : 0x0;
return _0x1747e0 + 0x100 >= 0x0 ? _0x28553b : [];
}
function _0x29f006(_0x4bb8b0, _0x454fcb) {
if (!_0x4bb8b0['length'])
return [];
_0x454fcb = normalizeByte(_0x454fcb);
for (var _0x227fa4 = [], _0x3d49dc = 0x0, _0x33c278 = _0x4bb8b0['length']; _0x3d49dc < _0x33c278; _0x3d49dc++)
_0x227fa4['push'](_0x4a3b33(_0x4bb8b0[_0x3d49dc], _0x454fcb));
return _0x227fa4;
}
// _0x13badd --> _0x2fa4db
function _0x2fa4db(_0x585df0, _0x2951ca) {
return normalizeByte(_0x585df0 + _0x2951ca);
}
function _0x5a26ad(_0x190ca8, _0x23eca4) {
if (!_0x190ca8['length'])
return [];
_0x23eca4 = normalizeByte(_0x23eca4);
for (var _0x25563e = [], _0x2607c4 = 0x0, _0x3e8e55 = _0x190ca8['length']; _0x2607c4 < _0x3e8e55; _0x2607c4++)
_0x25563e['push'](_0x2fa4db(_0x190ca8[_0x2607c4], _0x23eca4));
return _0x25563e;
}
function _0x2352db(_0x591f6f, _0x260db8) {
if (!_0x591f6f['length'])
return [];
_0x260db8 = normalizeByte(_0x260db8);
for (var _0x291786 = [], _0x73fd1c = 0x0, _0xe7d1c1 = _0x591f6f['length']; _0x73fd1c < _0xe7d1c1; _0x73fd1c++)
_0x291786['push'](_0x4a3b33(_0x591f6f[_0x73fd1c], _0x260db8++));
return _0x291786;
}
function _0x5ed2f9(_0x4ac4b2, _0x3c13b7) {
if (!_0x4ac4b2['length'])
return [];
_0x3c13b7 = normalizeByte(_0x3c13b7);
for (var _0x3a1e01 = [], _0x1014e8 = 0x0, _0xb20f86 = _0x4ac4b2['length']; _0x1014e8 < _0xb20f86; _0x1014e8++)
_0x3a1e01['push'](_0x2fa4db(_0x4ac4b2[_0x1014e8], _0x3c13b7++));
return _0x3a1e01;
}
function _0x31d3d0(_0x2c0aa4, _0x55be51) {
if (!_0x2c0aa4['length'])
return [];
_0x55be51 = normalizeByte(_0x55be51);
for (var _0x5492b8 = [], _0x4cba80 = 0x0, _0x406878 = _0x2c0aa4['length']; _0x4cba80 < _0x406878; _0x4cba80++)
_0x5492b8['push'](_0x4a3b33(_0x2c0aa4[_0x4cba80], _0x55be51--));
return _0x5492b8;
}
function _0x58d035(_0x303b06, _0x2c0b03) {
if (!_0x303b06['length'])
return [];
_0x2c0b03 = normalizeByte(_0x2c0b03);
for (var _0xfe8219 = [], _0x49858a = 0x0, _0x2c43cb = _0x303b06['length']; _0x49858a < _0x2c43cb; _0x49858a++)
_0xfe8219['push'](_0x2fa4db(_0x303b06[_0x49858a], _0x2c0b03--));
return _0xfe8219;
}
function _0x87ffb3(_0x24ad9b) {
for (var _0x49e642 = [_0x5ae3b4, _0x29f006, _0x5a26ad, _0x2352db, _0x5ed2f9, _0x31d3d0, _0x58d035], _0x4d7468 = '037606da0296055c', _0x213629 = 0x0, _0x47421c = _0x4d7468['length']; _0x213629 < _0x47421c; ) {
var _0x3e0b84 = _0x4d7468['substring'](_0x213629, _0x213629 + 0x4)
, _0x58df3a = hex2Byte(_0x3e0b84['substring'](0x0, 0x2))
, _0x18458c = hex2Byte(_0x3e0b84['substring'](0x2, 0x4));
_0x24ad9b = _0x49e642[_0x58df3a](_0x24ad9b, _0x18458c),
_0x213629 += 0x4;
}
return _0x24ad9b;
}
// 输出 正确:[-47,37,-43,-57,39,-32,-43,34,33,-30,27,6,68,6,81,111,123,8,116,30,29,94,125,72,101,87,-65,88,91,37,12,109,124,-55,-44,117,115,-38,-50,-51,-46,-43,-44,-41,-42,-55,-56,-53,-54,-51,-52,-49,-50,-63,-64,-61,-62,-59,-60,-57,-58,-7,-8,-45]
//console.log(_0x87ffb3([107,120,89,72,105,55,101,115,115,53,99,115,50,101,57,68,81,99,104,115,115,53,109,57,71,50,55,85,85,84,116,106,102,52,56,102,101,57,50,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40]))
// _0x3ab997 --> _0x2c4a60
function _0x2c4a60() {
for (var _0x328a71 = arguments['length'] > 0x0 && void 0x0 !== arguments[0x0] ? arguments[0x0] : [], _0x16cc69 = arguments['length'] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : [], _0x4dfd7f = [], _0x158b24 = _0x16cc69['length'], _0x2608fb = 0x0, _0xf22c84 = _0x328a71['length']; _0x2608fb < _0xf22c84; _0x2608fb++)
_0x4dfd7f[_0x2608fb] = _0x4a3b33(_0x328a71[_0x2608fb], _0x16cc69[_0x2608fb % _0x158b24]);
return _0x4dfd7f;
}
//console.log(_0x2c4a60(_0x87ffb3([107,120,89,72,105,55,101,115,115,53,99,115,50,101,57,68,81,99,104,115,115,53,109,57,71,50,55,85,85,84,116,106,102,52,56,102,101,57,50,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40])))
// _0x131308 --> _0x180309
function _0x180309() {
for (var _0xbad8e7 = arguments['length'] > 0x0 && void 0x0 !== arguments[0x0] ? arguments[0x0] : [], _0x2184e9 = arguments['length'] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : [], _0x1cdcbf = [], _0x36003f = _0x2184e9['length'], _0x1e390f = 0x0, _0x2ce250 = _0xbad8e7['length']; _0x1e390f < _0x2ce250; _0x1e390f++)
_0x1cdcbf[_0x1e390f] = _0x2fa4db(_0xbad8e7[_0x1e390f], _0x2184e9[_0x1e390f % _0x36003f]);
return _0x1cdcbf;
}
// _0x54b3a3 --> _0x4c1c97 --> hexStringToByteArray
// function _0x4c1c97(_0x596b14) {
// _0x596b14 = '' + _0x596b14;
// for (var _0xc9fbc2 = [], _0x786430 = _0x1bb210(), _0x4febab = _0x786430['safeGlobal'], _0x5eecdd = 0x0, _0x570ef4 = 0x0, _0x88210e = _0x596b14['length'] / 0x2; _0x5eecdd < _0x88210e; _0x5eecdd++) {
// var _0x3e35f8 = _0x4febab['parseInt'](_0x596b14['charAt'](_0x570ef4++), 0x10) << 0x4
// , _0x1e73c3 = _0x4febab['parseInt'](_0x596b14['charAt'](_0x570ef4++), 0x10);
// _0xc9fbc2[_0x5eecdd] = normalizeByte(_0x3e35f8 + _0x1e73c3);
// }
// return _0xc9fbc2;
// }
function hexStringToByteArray(str) {
str = String(str);
const len = str.length / 2;
const bytes = new Array(len);
for (let i = 0, j = 0; i < len; i++) {
const high = parseInt(str[j++], 16) << 4;
const low = parseInt(str[j++], 16);
bytes[i] = normalizeByte(high + low);
}
return bytes;
}
//console.log(hexStringToByteArray('省略'))
function _0x17e567(_0xae9cc8) {
// _0x5c2c9c --> __SBOX__
var _0x75fe7d = hexStringToByteArray('省略')
, _0x70652e = function(_0x15c78b) {
return _0x75fe7d[0x10 * (_0x15c78b >>> 0x4 & 0xf) + (0xf & _0x15c78b)];
};
if (!_0xae9cc8['length'])
return [];
for (var _0x19db1f = [], _0x23af70 = 0x0, _0x217050 = _0xae9cc8['length']; _0x23af70 < _0x217050; _0x23af70++)
_0x19db1f[_0x23af70] = _0x70652e(_0xae9cc8[_0x23af70]);
return _0x19db1f;
}
// _0x1c172c --> _0x3176d7
function _0x3176d7(_0x48d615, _0x26a60a, _0xd7cb57) {
// _0x525f7e --> __BASE64_ALPHABET__
// _0xeed15 --> '7'
var _0x9fd9ac = void 0x0 !== _0x26a60a && null !== _0x26a60a ? _0x26a60a : '省略'
, _0x12c0fb = void 0x0 !== _0xd7cb57 && null !== _0xd7cb57 ? _0xd7cb57 : '省略';
return _0x3f94fb(_0x48d615, _0x9fd9ac['split'](''), _0x12c0fb);
}
function _0x3f94fb(_0x498ead, _0x170161, _0x3e3e08) {
if (!_0x498ead || 0x0 === _0x498ead['length'])
return '';
// try {
for (var _0x4a1168 = 0x0, _0xb21251 = []; _0x4a1168 < _0x498ead['length']; ) {
if (!(_0x4a1168 + 0x3 <= _0x498ead['length'])) {
var _0x5ce148 = _0x498ead['slice'](_0x4a1168);
_0xb21251['push'](_0x20e2ca(_0x5ce148, _0x170161, _0x3e3e08));
break;
}
var _0x491324 = _0x498ead['slice'](_0x4a1168, _0x4a1168 + 0x3);
_0xb21251['push'](_0x20e2ca(_0x491324, _0x170161, _0x3e3e08)),
_0x4a1168 += 0x3;
}
return _0xb21251['join']('');
// } catch (_0x501bbd) {
// return '';
// }
}
function _0x20e2ca(_0x13435c, _0x46e99a, _0x8d9ed7) {
var _0xc55835 = void 0x0
, _0x327aed = void 0x0
, _0x45d6c6 = void 0x0
, _0x2b5a8b = [];
switch (_0x13435c['length']) {
case 0x1:
_0xc55835 = _0x13435c[0x0],
_0x327aed = _0x45d6c6 = 0x0,
_0x2b5a8b['push'](_0x46e99a[_0xc55835 >>> 0x2 & 0x3f], _0x46e99a[(_0xc55835 << 0x4 & 0x30) + (_0x327aed >>> 0x4 & 0xf)], _0x8d9ed7, _0x8d9ed7);
break;
case 0x2:
_0xc55835 = _0x13435c[0x0],
_0x327aed = _0x13435c[0x1],
_0x45d6c6 = 0x0,
_0x2b5a8b['push'](_0x46e99a[_0xc55835 >>> 0x2 & 0x3f], _0x46e99a[(_0xc55835 << 0x4 & 0x30) + (_0x327aed >>> 0x4 & 0xf)], _0x46e99a[(_0x327aed << 0x2 & 0x3c) + (_0x45d6c6 >>> 0x6 & 0x3)], _0x8d9ed7);
break;
case 0x3:
_0xc55835 = _0x13435c[0x0],
_0x327aed = _0x13435c[0x1],
_0x45d6c6 = _0x13435c[0x2],
_0x2b5a8b['push'](_0x46e99a[_0xc55835 >>> 0x2 & 0x3f], _0x46e99a[(_0xc55835 << 0x4 & 0x30) + (_0x327aed >>> 0x4 & 0xf)], _0x46e99a[(_0x327aed << 0x2 & 0x3c) + (_0x45d6c6 >>> 0x6 & 0x3)], _0x46e99a[0x3f & _0x45d6c6]);
break;
default:
return '';
}
return _0x2b5a8b['join']('');
}
// _0x4b6714 --> _0x2b8180
function _0x2b8180(_0x247a7a) {
for (var _0x581edc = parseEncodedString(_0x247a7a),
_0x4c3931 = _0x2ac1c0(),
_0x5767ea = _iterableToArrayLimit(_0x4c3931, 0x2),
_0x1c8d5e = _0x5767ea[0x0],
_0x588606 = _0x5767ea[0x1],
_0x2d65fc = parseEncodedString(_0x1278c3(_0x581edc)),
_0x13ed03 = _0x4052b4([]['concat'](_0x5bbf7f(_0x581edc),
_0x5bbf7f(_0x2d65fc))),
_0x4c4513 = _0x4e203b(_0x13ed03),
_0x34c062 = []['concat'](_0x5bbf7f(_0x588606)),
_0x14add2 = _0x1c8d5e, _0x2903fa = 0x0,
_0x59cbfb = _0x4c4513['length'];
_0x2903fa < _0x59cbfb; _0x2903fa++)
{
var _0x42850a = _0x2c4a60(_0x87ffb3(_0x4c4513[_0x2903fa]), _0x1c8d5e)
, _0xf558b4 = _0x180309(_0x42850a, _0x14add2);
_0x42850a = _0x2c4a60(_0xf558b4, _0x14add2),
_0x14add2 = _0x17e567(_0x17e567(_0x42850a)),
_0x400f27(_0x14add2, 0x0, _0x34c062, 0x40 * _0x2903fa + 0x4, 0x40);
}
return _0x3176d7(_0x34c062);
}
//console.log(_0x2b8180('qxbu1E0zsbK7o75WBG6b05y9C27zKRQ0'))
function _0x465d8f() {
var _0x3f9136 = {};
_0x3f9136['suffix'] = '07bt9i',
_0x3f9136['code'] = 'xs5927',
_0x3f9136['pos'] = [1, 8, 21, 23, 25, 26];
var _0x27ba42 = _0x3f9136 || {}
, _0x3cdbec = _0x27ba42['code']
, _0xad8ffe = _0x27ba42['pos']
, _0x53cf30 = uuid(32);
if (_0x3cdbec && _0xad8ffe && Array['isArray'](_0xad8ffe)) {
for (var _0x124153 = _0x53cf30['split'](''), _0x4a3419 = 0x0; _0x4a3419 < _0xad8ffe['length']; _0x4a3419++)
_0x124153[_0xad8ffe[_0x4a3419]] = _0x3cdbec['charAt'](_0x4a3419);
_0x53cf30 = _0x124153['join']('');
}
console.log(_0x53cf30)
return _0x2b8180(_0x53cf30);
}
console.log(_0x465d8f())
写在后面
最近真是忙得脚不沾地,天天忙着搞大模型,把写文章和学逆向的事都给耽搁了。这篇写得比较仓促,要是哪里说得不对,还请各位大佬多多包涵,一定批评指正!实在不好意思又发了篇水分比较大的文章,我会尽快把后续的详细分析和参数更新补上,目前已经补充cb函数了!