├── douyin_signature ├── package.json └── signature.js ├── README.md ├── 使用ast对某v5加密进行还原 ├── decrypt1.js ├── result2.js ├── result1.js ├── source.js ├── module.js └── decrypt2.js └── 使用ast对某v5加密进行还原2 ├── result3.js ├── module_result.js ├── module_source.js ├── result2.js ├── result1.js └── source.js /douyin_signature/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jssign", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "node ./bin/www" 7 | }, 8 | "dependencies": { 9 | "cookie-parser": "~1.4.4", 10 | "debug": "~2.6.9", 11 | "express": "~4.16.1", 12 | "http-errors": "~1.6.3", 13 | "jsdom": "^16.1.0", 14 | "json-css": "^1.5.6", 15 | "morgan": "~1.9.1", 16 | "pug": "2.0.0-beta11" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 声明 2 | 本仓库中内容仅供学习交流,严禁用于商业用途,请于24小时内删除。 3 | 4 | # webcrawler 5 | 6 | 工作上用不到的站点,留在手里浪费,会慢慢上传,分享给学习研究的人。 7 | 8 | 目前: 9 | 10 | 1.抖音h5分享页面_signature参数 11 | >文章链接: 12 | 13 | 2.使用ast对某v5加密进行还原(常规配置难度)(有详细步骤) 14 | >文章链接: 15 | 16 | 3.使用ast对某v5加密进行还原(绝对不可逆配置难度)(各步骤结果,详细步骤省略) 17 | >文章链接: 18 | 19 | 4.某团h5外卖接口几个参数的加密分析 20 | >文章链接: 21 | -------------------------------------------------------------------------------- /使用ast对某v5加密进行还原/decrypt1.js: -------------------------------------------------------------------------------- 1 | const parser = require("@babel/parser"); 2 | const template = require("@babel/template").default; 3 | const traverse = require("@babel/traverse").default; 4 | const t = require("@babel/types"); 5 | const generator = require("@babel/generator").default; 6 | const path = require('path'); 7 | const fs = require('fs'); 8 | 9 | const { decryptStr, decryptStrFnName } = require('./module'); 10 | 11 | fs.readFile(path.resolve(__dirname, './source.js'), { "encoding": 'utf-8' }, function (err, data) { 12 | const ast = parser.parse(data); 13 | step1(ast); 14 | 15 | // 将ast 转为 js 16 | let { code } = generator(ast); 17 | // code = code.replace(/!!\[\]/g, 'true').replace(/!\[\]/g, 'false'); 18 | console.log(code); 19 | }); 20 | 21 | function step1(ast) { 22 | traverse(ast,{ 23 | CallExpression:funToStr 24 | }) 25 | } 26 | 27 | function funToStr(path) { 28 | var curNode = path.node; 29 | 30 | if(curNode.callee.name === decryptStrFnName && curNode.arguments.length === 2) 31 | { 32 | var strC = decryptStr(curNode.arguments[0].value, curNode.arguments[1].value); 33 | 34 | path.replaceWith(t.stringLiteral(strC)) 35 | 36 | } 37 | } -------------------------------------------------------------------------------- /使用ast对某v5加密进行还原/result2.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 加密工具已经升级了一个版本,目前为 sojson.v5 ,主要加强了算法,以及防破解【绝对不可逆】配置,耶稣也无法100%还原,我说的。; 3 | * 已经打算把这个工具基础功能一直免费下去。还希望支持我。 4 | * 另外 sojson.v5 已经强制加入校验,注释可以去掉,但是 sojson.v5 不能去掉(如果你开通了VIP,可以手动去掉),其他都没有任何绑定。 5 | * 誓死不会加入任何后门,sojson JS 加密的使命就是为了保护你们的Javascript 。 6 | * 警告:如果您恶意去掉 sojson.v5 那么我们将不会保护您的JavaScript代码。请遵守规则 7 | * 新版本: https://www.jsjiami.com/ 支持批量加密,支持大文件加密,拥有更多加密。 */ 8 | var a = {}, 9 | b = {}; 10 | 11 | (function () { 12 | a["info"] = "这是一个一系列js操作。"; 13 | b['adinfo'] = "站长接高级 “JS加密” 和 “JS解密” ,保卫你的 js。"; 14 | b["warning"] = '如果您的JS里嵌套了PHP,JSP标签,等等其他非JavaScript的代码,请提取出来再加密。这个工具不能加密php、jsp等模版内容'; 15 | })(); 16 | 17 | ; 18 | 19 | (function () { 20 | _0x55392e = 'al'; 21 | 22 | try { 23 | _0x55392e += "ert"; 24 | _0x4c3590 = encode_version; 25 | 26 | if (!(typeof _0x4c3590 !== "undefined" && _0x4c3590 === "sojson.v5")) { 27 | window[_0x55392e]('删除' + "版本号,js会定期弹窗,还请支持我们的工作"); 28 | } 29 | } catch (_0x781e53) { 30 | if ('aYN' === "aYN") { 31 | window[_0x55392e]("删除版本号,js会定期弹窗"); 32 | } else { 33 | window[_0x55392e]("删除版本号,js会定期弹窗"); 34 | } 35 | } 36 | })(); 37 | 38 | ; 39 | encode_version = 'sojson.v5'; 40 | -------------------------------------------------------------------------------- /使用ast对某v5加密进行还原/result1.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 加密工具已经升级了一个版本,目前为 sojson.v5 ,主要加强了算法,以及防破解【绝对不可逆】配置,耶稣也无法100%还原,我说的。; 3 | * 已经打算把这个工具基础功能一直免费下去。还希望支持我。 4 | * 另外 sojson.v5 已经强制加入校验,注释可以去掉,但是 sojson.v5 不能去掉(如果你开通了VIP,可以手动去掉),其他都没有任何绑定。 5 | * 誓死不会加入任何后门,sojson JS 加密的使命就是为了保护你们的Javascript 。 6 | * 警告:如果您恶意去掉 sojson.v5 那么我们将不会保护您的JavaScript代码。请遵守规则 7 | * 新版本: https://www.jsjiami.com/ 支持批量加密,支持大文件加密,拥有更多加密。 */ 8 | var a = {}, 9 | b = {}; 10 | 11 | (function (_0x117d09, _0x110647) { 12 | var _0x4845bf = { 13 | 'XhuzS': "这是一个一系列js操作。", 14 | 'iUTPo': "站长接高级 “JS加密” 和 “JS解密” ,保卫你的 js。" 15 | }; 16 | _0x117d09["info"] = _0x4845bf['XhuzS']; 17 | _0x110647['adinfo'] = _0x4845bf["iUTPo"]; 18 | _0x110647["warning"] = '如果您的JS里嵌套了PHP,JSP标签,等等其他非JavaScript的代码,请提取出来再加密。这个工具不能加密php、jsp等模版内容'; 19 | })(a, b); 20 | 21 | ; 22 | 23 | (function (_0x182aaa, _0x4c3590, _0x55392e) { 24 | var _0x4b40d0 = { 25 | 'gTfic': "ert", 26 | 'GXIQH': function _0x38020c(_0x65ebe0, _0x2dc82b) { 27 | return _0x65ebe0 === _0x2dc82b; 28 | }, 29 | 'xyVxG': "sojson.v5", 30 | 'qeHKL': function _0x3e069c(_0x501f24, _0x41e6d1) { 31 | return _0x501f24 + _0x41e6d1; 32 | }, 33 | 'EkYag': "版本号,js会定期弹窗,还请支持我们的工作", 34 | 'YZgLH': "删除版本号,js会定期弹窗" 35 | }; 36 | _0x55392e = 'al'; 37 | 38 | try { 39 | _0x55392e += _0x4b40d0['gTfic']; 40 | _0x4c3590 = encode_version; 41 | 42 | if (!(typeof _0x4c3590 !== "undefined" && _0x4b40d0["GXIQH"](_0x4c3590, _0x4b40d0['xyVxG']))) { 43 | _0x182aaa[_0x55392e](_0x4b40d0["qeHKL"]('删除', _0x4b40d0['EkYag'])); 44 | } 45 | } catch (_0x781e53) { 46 | if ('aYN' === "aYN") { 47 | _0x182aaa[_0x55392e]("删除版本号,js会定期弹窗"); 48 | } else { 49 | _0x182aaa[_0x55392e](_0x4b40d0["YZgLH"]); 50 | } 51 | } 52 | })(window); 53 | 54 | ; 55 | encode_version = 'sojson.v5'; -------------------------------------------------------------------------------- /使用ast对某v5加密进行还原/source.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 加密工具已经升级了一个版本,目前为 sojson.v5 ,主要加强了算法,以及防破解【绝对不可逆】配置,耶稣也无法100%还原,我说的。; 3 | * 已经打算把这个工具基础功能一直免费下去。还希望支持我。 4 | * 另外 sojson.v5 已经强制加入校验,注释可以去掉,但是 sojson.v5 不能去掉(如果你开通了VIP,可以手动去掉),其他都没有任何绑定。 5 | * 誓死不会加入任何后门,sojson JS 加密的使命就是为了保护你们的Javascript 。 6 | * 警告:如果您恶意去掉 sojson.v5 那么我们将不会保护您的JavaScript代码。请遵守规则 7 | * 新版本: https://www.jsjiami.com/ 支持批量加密,支持大文件加密,拥有更多加密。 */ 8 | 9 | // 第一部分已经移到module文件中去了 10 | 11 | //这是第二部分 12 | var a = {} 13 | , b = {}; 14 | (function(_0x117d09, _0x110647) { 15 | var _0x4845bf = { 16 | 'XhuzS': _0x4d94('0x0', 'W7bQ'), 17 | 'iUTPo': _0x4d94('0x1', ']2T3') 18 | }; 19 | _0x117d09[_0x4d94('0x2', 'WIC5')] = _0x4845bf['XhuzS']; 20 | _0x110647['adinfo'] = _0x4845bf[_0x4d94('0x3', 'Wka7')]; 21 | _0x110647[_0x4d94('0x4', 'D8d!')] = '如果您的JS里嵌套了PHP,JSP标签,等等其他非JavaScript的代码,请提取出来再加密。这个工具不能加密php、jsp等模版内容'; 22 | }(a, b)); 23 | ;(function(_0x182aaa, _0x4c3590, _0x55392e) { 24 | var _0x4b40d0 = { 25 | 'gTfic': _0x4d94('0x5', 'oqkX'), 26 | 'GXIQH': function _0x38020c(_0x65ebe0, _0x2dc82b) { 27 | return _0x65ebe0 === _0x2dc82b; 28 | }, 29 | 'xyVxG': _0x4d94('0x6', 'JsgM'), 30 | 'qeHKL': function _0x3e069c(_0x501f24, _0x41e6d1) { 31 | return _0x501f24 + _0x41e6d1; 32 | }, 33 | 'EkYag': _0x4d94('0x7', '^7hL'), 34 | 'YZgLH': _0x4d94('0x8', 'g@wB') 35 | }; 36 | _0x55392e = 'al'; 37 | try { 38 | _0x55392e += _0x4b40d0['gTfic']; 39 | _0x4c3590 = encode_version; 40 | if (!(typeof _0x4c3590 !== _0x4d94('0x9', 'oqkX') && _0x4b40d0[_0x4d94('0xa', 'M*Wm')](_0x4c3590, _0x4b40d0['xyVxG']))) { 41 | _0x182aaa[_0x55392e](_0x4b40d0[_0x4d94('0xb', '7glO')]('删除', _0x4b40d0['EkYag'])); 42 | } 43 | } catch (_0x781e53) { 44 | if ('aYN' === _0x4d94('0xc', '^7hL')) { 45 | _0x182aaa[_0x55392e](_0x4d94('0xd', '9z79')); 46 | } else { 47 | _0x182aaa[_0x55392e](_0x4b40d0[_0x4d94('0xe', 'oqkX')]); 48 | } 49 | } 50 | }(window)); 51 | ;encode_version = 'sojson.v5'; 52 | -------------------------------------------------------------------------------- /使用ast对某v5加密进行还原/module.js: -------------------------------------------------------------------------------- 1 | global.Buffer = global.Buffer || require('buffer').Buffer; 2 | if (typeof btoa === 'undefined') { 3 | global.btoa = function (str) { 4 | return new Buffer(str).toString('base64'); 5 | }; 6 | } 7 | if (typeof atob === 'undefined') { 8 | global.atob = function (b64Encoded) { 9 | return new Buffer(b64Encoded, 'base64').toString(); 10 | }; 11 | } 12 | 13 | ;var encode_version = 'sojson.v5' 14 | , jrkqk = '' 15 | , _0x3318 = ['eMO1woTDnRU=', '6L6h5pmt5LuD5Lq85Lq857Gi5Ymtwqh55pCG5LyT44OQ', '56us6ZaG5o2S6auk57ufDuKDp8KuwqzliYHlrpbig7NT5ZCXwrrigaJPw5bopp3lrb7ig4zCt+++heS/peWMheS+leeYlCB8w7bjga4=', 'Z3rCqsKQ', 'wq12EsOow7A=', 'wq3Di8Kpw63CisKZwr4=', 'RMOdwpc=', 'NTREw4FsCMKIQsKB', '54qF5p+/5Y6E772jw5LDkeS8meWsjOafneW+uOepq++9pei9v+itk+aXt+aMh+aKgOS7rOealOW3seS8vw==', '5Yis6Zia54ms5p225Y6H772nKMO85L2n5a+b5p+W5b2756iM', 'VMOBwofDtDscbsOBw7k=', 'eAglw6V9', 'dFUCw7LCsA==', 'wqzCij0=', '5YuX6Zip54ig5p6p5Y+J772cwqbDpOS+guWvgeadpOW+reermQ==']; 16 | (function(_0x1cab0b, _0x9fc93e) { 17 | var _0x50aee6 = function(_0x5f6b93) { 18 | while (--_0x5f6b93) { 19 | _0x1cab0b['push'](_0x1cab0b['shift']()); 20 | } 21 | }; 22 | _0x50aee6(++_0x9fc93e); 23 | }(_0x3318, 0x12d)); 24 | var _0x4d94 = function(_0x387cf0, _0x46d6a3) { 25 | _0x387cf0 = _0x387cf0 - 0x0; 26 | var _0x1c7cd3 = _0x3318[_0x387cf0]; 27 | if (_0x4d94['initialized'] === undefined) { 28 | (function() { 29 | var _0x9672bc = typeof window !== 'undefined' ? window : typeof process === 'object' && typeof require === 'function' && typeof global === 'object' ? global : this; 30 | var _0x47acfd = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; 31 | _0x9672bc['atob'] || (_0x9672bc['atob'] = function(_0x4f114b) { 32 | var _0xda79c1 = String(_0x4f114b)['replace'](/=+$/, ''); 33 | for (var _0x2456af = 0x0, _0xc64c02, _0x5e6923, _0x48f516 = 0x0, _0x448f43 = ''; _0x5e6923 = _0xda79c1['charAt'](_0x48f516++); ~_0x5e6923 && (_0xc64c02 = _0x2456af % 0x4 ? _0xc64c02 * 0x40 + _0x5e6923 : _0x5e6923, 34 | _0x2456af++ % 0x4) ? _0x448f43 += String['fromCharCode'](0xff & _0xc64c02 >> (-0x2 * _0x2456af & 0x6)) : 0x0) { 35 | _0x5e6923 = _0x47acfd['indexOf'](_0x5e6923); 36 | } 37 | return _0x448f43; 38 | } 39 | ); 40 | }()); 41 | var _0x15dca8 = function(_0xa971bc, _0x5e580d) { 42 | var _0x2a7b0e = [], _0x18c27c = 0x0, _0x8cce7, _0x21fe1e = '', _0x21ee82 = ''; 43 | _0xa971bc = atob(_0xa971bc); 44 | for (var _0x465e88 = 0x0, _0x1826b5 = _0xa971bc['length']; _0x465e88 < _0x1826b5; _0x465e88++) { 45 | _0x21ee82 += '%' + ('00' + _0xa971bc['charCodeAt'](_0x465e88)['toString'](0x10))['slice'](-0x2); 46 | } 47 | // _0xa971bc = decodeURIComponent(_0x21ee82); 48 | for (var _0x559b8b = 0x0; _0x559b8b < 0x100; _0x559b8b++) { 49 | _0x2a7b0e[_0x559b8b] = _0x559b8b; 50 | } 51 | for (_0x559b8b = 0x0; _0x559b8b < 0x100; _0x559b8b++) { 52 | _0x18c27c = (_0x18c27c + _0x2a7b0e[_0x559b8b] + _0x5e580d['charCodeAt'](_0x559b8b % _0x5e580d['length'])) % 0x100; 53 | _0x8cce7 = _0x2a7b0e[_0x559b8b]; 54 | _0x2a7b0e[_0x559b8b] = _0x2a7b0e[_0x18c27c]; 55 | _0x2a7b0e[_0x18c27c] = _0x8cce7; 56 | } 57 | _0x559b8b = 0x0; 58 | _0x18c27c = 0x0; 59 | for (var _0x325076 = 0x0; _0x325076 < _0xa971bc['length']; _0x325076++) { 60 | _0x559b8b = (_0x559b8b + 0x1) % 0x100; 61 | _0x18c27c = (_0x18c27c + _0x2a7b0e[_0x559b8b]) % 0x100; 62 | _0x8cce7 = _0x2a7b0e[_0x559b8b]; 63 | _0x2a7b0e[_0x559b8b] = _0x2a7b0e[_0x18c27c]; 64 | _0x2a7b0e[_0x18c27c] = _0x8cce7; 65 | _0x21fe1e += String['fromCharCode'](_0xa971bc['charCodeAt'](_0x325076) ^ _0x2a7b0e[(_0x2a7b0e[_0x559b8b] + _0x2a7b0e[_0x18c27c]) % 0x100]); 66 | } 67 | return _0x21fe1e; 68 | }; 69 | _0x4d94['rc4'] = _0x15dca8; 70 | _0x4d94['data'] = {}; 71 | _0x4d94['initialized'] = !![]; 72 | } 73 | var _0x281020 = _0x4d94['data'][_0x387cf0]; 74 | if (_0x281020 === undefined) { 75 | if (_0x4d94['once'] === undefined) { 76 | _0x4d94['once'] = !![]; 77 | } 78 | _0x1c7cd3 = _0x4d94['rc4'](_0x1c7cd3, _0x46d6a3); 79 | _0x4d94['data'][_0x387cf0] = _0x1c7cd3; 80 | } else { 81 | _0x1c7cd3 = _0x281020; 82 | } 83 | return _0x1c7cd3; 84 | }; 85 | 86 | 87 | exports.decryptStr = _0x4d94; 88 | exports.decryptStrFnName = '_0x4d94'; 89 | -------------------------------------------------------------------------------- /使用ast对某v5加密进行还原/decrypt2.js: -------------------------------------------------------------------------------- 1 | const parser = require("@babel/parser"); 2 | const template = require("@babel/template").default; 3 | const traverse = require("@babel/traverse").default; 4 | const t = require("@babel/types"); 5 | const generator = require("@babel/generator").default; 6 | const path = require('path'); 7 | const fs = require('fs'); 8 | 9 | const { decryptStr, decryptStrFnName } = require('./module'); 10 | 11 | fs.readFile(path.resolve(__dirname, './result1.js'), { "encoding": 'utf-8' }, function (err, data) { 12 | const ast = parser.parse(data); 13 | step2(ast); 14 | 15 | // 将ast 转为 js 16 | let { code } = generator(ast); 17 | // code = code.replace(/!!\[\]/g, 'true').replace(/!\[\]/g, 'false'); 18 | console.log(code) 19 | }); 20 | 21 | function step2(ast) { 22 | traverse(ast,{ 23 | VariableDeclarator:callToStr, 24 | ExpressionStatement:convParam 25 | }) 26 | } 27 | 28 | function callToStr(path) { 29 | var node = path.node; 30 | 31 | if (!t.isObjectExpression(node.init)) 32 | return; 33 | 34 | var objPropertiesList = node.init.properties; 35 | 36 | if (objPropertiesList.length==0) 37 | return; 38 | 39 | var objName = node.id.name; 40 | 41 | objPropertiesList.forEach(prop => { 42 | var key = prop.key.value; 43 | if(!t.isStringLiteral(prop.value)) 44 | { 45 | var retStmt = prop.value.body.body[0]; 46 | 47 | // 该path的最近父节点 48 | var fnPath = path.getFunctionParent(); 49 | fnPath.traverse({ 50 | CallExpression: function (_path) { 51 | if (!t.isMemberExpression(_path.node.callee)) 52 | return; 53 | 54 | var _node = _path.node.callee; 55 | if (!t.isIdentifier(_node.object) || _node.object.name !== objName) 56 | return; 57 | if (!t.isStringLiteral(_node.property) || _node.property.value != key) 58 | return; 59 | 60 | var args = _path.node.arguments; 61 | 62 | // 二元运算 63 | if (t.isBinaryExpression(retStmt.argument) && args.length===2) 64 | { 65 | _path.replaceWith(t.binaryExpression(retStmt.argument.operator, args[0], args[1])); 66 | } 67 | // 逻辑运算 68 | else if(t.isLogicalExpression(retStmt.argument) && args.length==2) 69 | { 70 | _path.replaceWith(t.logicalExpression(retStmt.argument.operator, args[0], args[1])); 71 | } 72 | // 函数调用 73 | else if(t.isCallExpression(retStmt.argument) && t.isIdentifier(retStmt.argument.callee)) 74 | { 75 | _path.replaceWith(t.callExpression(args[0], args.slice(1))) 76 | } 77 | } 78 | }) 79 | } 80 | else{ 81 | var retStmt = prop.value.value; 82 | 83 | // 该path的最近父节点 84 | var fnPath = path.getFunctionParent(); 85 | fnPath.traverse({ 86 | MemberExpression:function (_path) { 87 | var _node = _path.node; 88 | if (!t.isIdentifier(_node.object) || _node.object.name !== objName) 89 | return; 90 | if (!t.isStringLiteral(_node.property) || _node.property.value != key) 91 | return; 92 | 93 | _path.replaceWith(t.stringLiteral(retStmt)) 94 | } 95 | }) 96 | 97 | } 98 | 99 | }); 100 | 101 | path.remove(); 102 | } 103 | 104 | function convParam(path) { 105 | var node = path.node; 106 | 107 | if (!t.isCallExpression(node.expression)) 108 | return; 109 | 110 | if (node.expression.arguments == undefined || node.expression.callee.params == undefined || node.expression.arguments.length > node.expression.callee.params.length) 111 | return; 112 | 113 | var argumentList = node.expression.arguments; 114 | var paramList = node.expression.callee.params; 115 | for (var i = 0; i> (-2 * _0x1d8de6 & 6)) : 0) { 91 | _0x2206eb = _0x1acb97.indexOf(_0x2206eb); 92 | } 93 | 94 | return _0x675d6d; 95 | }); 96 | } 97 | 98 | var _0x3e5e2d = function (_0x17adfb, _0x13df9b) { 99 | var _0x377757 = [], 100 | _0xaaa979 = 0, 101 | _0x3b3a8a, 102 | _0x4dab2b = "", 103 | _0x25adf3 = ""; 104 | 105 | _0x17adfb = atob(_0x17adfb); 106 | 107 | for (var _0x3c558f = 0, _0x1d2ebf = _0x17adfb.length; _0x3c558f < _0x1d2ebf; _0x3c558f++) { 108 | _0x25adf3 += "%" + ("00" + _0x17adfb.charCodeAt(_0x3c558f).toString(16)).slice(-2); 109 | } 110 | 111 | _0x17adfb = decodeURIComponent(_0x25adf3); 112 | 113 | for (var _0x1f2b2f = 0; _0x1f2b2f < 256; _0x1f2b2f++) { 114 | _0x377757[_0x1f2b2f] = _0x1f2b2f; 115 | } 116 | 117 | for (_0x1f2b2f = 0; _0x1f2b2f < 256; _0x1f2b2f++) { 118 | _0xaaa979 = (_0xaaa979 + _0x377757[_0x1f2b2f] + _0x13df9b.charCodeAt(_0x1f2b2f % _0x13df9b.length)) % 256; 119 | _0x3b3a8a = _0x377757[_0x1f2b2f]; 120 | _0x377757[_0x1f2b2f] = _0x377757[_0xaaa979]; 121 | _0x377757[_0xaaa979] = _0x3b3a8a; 122 | } 123 | 124 | _0x1f2b2f = 0; 125 | _0xaaa979 = 0; 126 | 127 | for (var _0x2e1891 = 0; _0x2e1891 < _0x17adfb.length; _0x2e1891++) { 128 | _0x1f2b2f = (_0x1f2b2f + 1) % 256; 129 | _0xaaa979 = (_0xaaa979 + _0x377757[_0x1f2b2f]) % 256; 130 | _0x3b3a8a = _0x377757[_0x1f2b2f]; 131 | _0x377757[_0x1f2b2f] = _0x377757[_0xaaa979]; 132 | _0x377757[_0xaaa979] = _0x3b3a8a; 133 | _0x4dab2b += String.fromCharCode(_0x17adfb.charCodeAt(_0x2e1891) ^ _0x377757[(_0x377757[_0x1f2b2f] + _0x377757[_0xaaa979]) % 256]); 134 | } 135 | 136 | return _0x4dab2b; 137 | }; 138 | 139 | _0x1f81.rc4 = _0x3e5e2d; 140 | _0x1f81.data = {}; 141 | _0x1f81.initialized = true; 142 | } 143 | 144 | var _0x7cb0ee = _0x1f81.data[_0x2c0c46]; 145 | 146 | if (_0x7cb0ee === undefined) { 147 | if (_0x1f81.once === undefined) { 148 | var _0x6c2e85 = function (_0x3bde69) { 149 | this.rc4Bytes = _0x3bde69; 150 | this.states = [1, 0, 0]; 151 | 152 | this.newState = function () { 153 | return "newState"; 154 | }; 155 | 156 | this.firstState = "\\w+ *\\(\\) *{\\w+ *"; 157 | this.secondState = "['|\"].+['|\"];? *}"; 158 | }; 159 | 160 | _0x6c2e85.prototype.checkState = function () { 161 | var _0x204954 = new RegExp(this.firstState + this.secondState); 162 | 163 | return this.runState(_0x204954.test(this.newState.toString()) ? --this.states[1] : --this.states[0]); 164 | }; 165 | 166 | _0x6c2e85.prototype.runState = function (_0x1c9de0) { 167 | if (!Boolean(~_0x1c9de0)) { 168 | return _0x1c9de0; 169 | } 170 | 171 | return this.getState(this.rc4Bytes); 172 | }; 173 | 174 | _0x6c2e85.prototype.getState = function (_0xa6641f) { 175 | for (var _0x19f84b = 0, _0xa22262 = this.states.length; _0x19f84b < _0xa22262; _0x19f84b++) { 176 | this.states.push(Math.round(Math.random())); 177 | _0xa22262 = this.states.length; 178 | } 179 | 180 | return _0xa6641f(this.states[0]); 181 | }; 182 | 183 | // new _0x6c2e85(_0x1f81).checkState(); 184 | _0x1f81.once = true; 185 | } 186 | 187 | _0x3b87dc = _0x1f81.rc4(_0x3b87dc, _0x5b2ac3); 188 | _0x1f81.data[_0x2c0c46] = _0x3b87dc; 189 | } else { 190 | _0x3b87dc = _0x7cb0ee; 191 | } 192 | 193 | return _0x3b87dc; 194 | }; 195 | 196 | exports.decryptStr = _0x1f81; 197 | exports.decryptStrFnName = '_0x1f81'; 198 | 199 | // console.log(_0x1f81("0x2", "sq46")); -------------------------------------------------------------------------------- /使用ast对某v5加密进行还原2/module_source.js: -------------------------------------------------------------------------------- 1 | ; 2 | var encode_version = "sojson.v5", 3 | gdear = "", 4 | _0x1491 = ["w5XCj3TCkww=", "ccOnJV0m", "w6YSW8OOwoo=", "csOaR8OjNw==", "JkZEAcKA", "w5gxbsKVwrM=", "wqVHChDChQ==", "w6vDkynDmg==", "IC/DmmDDlQ==", "BsK0OFnDvw==", "woDDu348", "w7fCqitCfw==", "w4zDgcKuw4tW", "wo0pVMOYwoU=", "w7PCr8KWwpxM", "OX7DslPDtA==", "w7s2wqDCrWE=", "dMOwB3oP", "LU/DlQjCiw==", "w4fDsjnDgsO1", "b8O/VMKvw7w=", "AcOrwrBLGQ==", "QjzDvB9x", "woTDkMOHR2U=", "D8K+LsOVWg==", "wqoyw7/DvT8=", "D8OqwoZMMQ==", "w6I2eMKBwp4=", "WsOnLQbClQ==", "CDrCp2/Dgg==", "dcOFw6LCvm8=", "wqXDkMK+w5JR", "d8OBV8OQEA==", "w6LClgx+ew==", "EsOowp/CpsK7", "FcOdw5oxQw==", "wq/DrcKFDMOm", "f8OHw7LCvUM=", "bMKbw5hRIA==", "AcKjwpLDm8Om", "IQLDsk7Djg==", "F8Kkwq/DlMOm", "wp8LekgY", "w7IZw5Y=", "wqPDrn0=", "AMKmwps=", "djnDqw==", "eGfCoSzDvHU+wo3CrcKdw5BCJzfDgmPCjA==", "P8OBw6c6ZMOj", "Im1y", "wpHDqcON", "BMKGwow=", "5YiD6Zio54uE5p2f5Y+/772pA8OQ5LyI5ay75p2Q5b+856im", "wrjCmSx7w6Z7", "ZcOcwpo=", "CwPCvXnDtcK2w6HDmsKIXUs3woNcwofDuA==", "wpfCrcO3f8KjwosewpR4NMOaCsOdw5XDgcKCfEZeR1I9aiJyJsKww5rCmsOhwqHDmMOBwrs/w5rCgsKlw5BYw5LCpFp5H1bChl5fw7PDg8KUw5rCmMOtTsK1OE/Cp0oF", "w7bDmDPDmg==", "TcOLAUUQ", "PUFCFEI=", "FADDr1TDuw==", "wpbCiRJlw54=", "XsOxw6DChnw=", "w4ATYcOFwow=", "UsOtw6PCumI=", "w78Owqkh", "wqDDv8KXBMOiw5LCscOJwrc=", "NcOLwpLCscKL", "C8KmEcO3", "T8OrXMKJw7Y=", "wqnDqMKT", "w4Ukwp/CuEA=", "HmR1RCA=", "w4gXwrjCrVw=", "w7PCmsKTwq1w", "PcK1E0bDtQ==", "w4jCkGw=", "PcOkw7fCoMOg", "CsOMwonCscKW", "w50iQcKvwp4=", "wrtTw4RMXMKawq7CtzbCuBDDsS/DvGswwpw=", "MXxQMmY=", "wofDrmEhwqQ=", "w5YbbsOJwogQwptVw5c=", "OcKNCGzDvA==", "w6BAwpA=", "w7jCkUrCtzk=", "wqwrfsO8", "D1pJMsKO", "FmLDuG/DkQ==", "wqDDt8O+Vng=", "wpfDi04Qwr4=", "ScOMbcK+w6o=", "IsOdwrDChMKX", "w6fCtklcYw==", "wqLDh8Kow7lp", "w4bDgj3CrwQ=", "wobDv2EFwqo=", "ccO8B0YG", "ScONOXUL", "G8OMw6DCv8OI", "w6jDq8KBw4F8", "w6IneMONwro=", "wqrDhsKFw6x6", "worDlMKhw6Zq", "EsOzwqPCisKm", "w51FwpRdLw==", "wr3DssKCw6s=", "RsO4wpfDhwk=", "wrjDk8KXw6dN", "E0hmFMKe", "w4TDkxfCpcOf", "wrUNaWUY", "ZcO4VsKPw5E=", "wobDo8O+cn8=", "w6jDsR/DgMOY", "w7c4w6PCsMKZ", "BcKOHsO/Zg==", "SMO7BTzCtQ==", "woTDicOlenE=", "w5sCw7jCicK5", "A2LDsRPCmA==", "wqE2w4vDrz4=", "EzzDnkjDuA==", "w77DusKaKMKww50Gw5d2F8OcDsOH", "5aeT5p6y5oCV55qRw49Z6YSL5bSA5aaB5Luew53DrsK9772KwqnCvMKN5qG7566G77+i562F56yo5YeJ5Lm/6Z+BRXUPwqFxwqw7QcKNwonnmprkuIvno77vv4forKDmjIflj7blhqHmn4jlh4fli6LlrZzjgInov5PkuafltprlhpTkuabogbbliI7lr63CtMKsbOODrE4CaOesnuartOeIg+WHrOWusA==", "6Lyn5pmU5LiK5LiO5Lmh57O45Ym9WcKk5pO85L6j44OQ", "w7oRSQ==", "56mE6Zac5o6d6aiA57usZ+KCrmrCsOWKn+Wtr+KCtEnlkZ9L4oC9JW3opZ/lr63ig5tt776n5L6i5Y2J5L2v55mZLRPDnuOCnA==", "w7LCi8KVwpdd", "In1SdQE=", "cMODwpfDnzU=", "wo0tLcK+w6g=", "w4UnecKEwqE=", "wpYvYMOpwqs=", "JjDCm17Drg==", "EkR7A38=", "QMOsbcKyw5c=", "w5XDsj3Cv8Oi", "NwXDj0HDjg==", "cMOswo3DgwoYIA==", "VMKFwonDuMKX", "d8Oaw4nCh0o=", "QMKEwow=", "w5XCpFI=", "HlFPIsKPYmLCksK+", "Pm9UeRZO", "N1vDk3bDsWPCqCI=", "TE0OKx7Cg8KSw49ywpgcBh8=", "w63DsQXCmDg=", "Pl1uGH8=", "wq7DsMKjKcOY", "dMONw4LCn2E=", "SsO6asOUHQ==", "O8KuwrHDvsOU", "w67CilPCmiw=", "w6/DsR/DjMOX", "AUjDk0bDjw==", "CHZ9NWk=", "UcOfecOHGw==", "NMOBwotTOTpx", "w4PDpAXCrRzDuMKx", "w60yacKvwqvDjgrDvsOYw5F5wrUCwofDr08M", "w4bDpCfCnRE=", "JMOewolJIg==", "FsOOw7jCp8Os", "KcONw7Y2esOwSsOsbQ==", "TyPDqw==", "wr3DpcKQw7x+", "wrQkw5XDgg==", "wrVwNSo=", "wqEOw7rCssKH", "wqnDq8OvRmU=", "WcOpQsKPw7A=", "w67CqlFVWsKIJQ==", "w6jCisK+wptZ", "wqrDuMKfw6x0HMKC", "MsOcwpdPJA==", "wrwhNMKgw7LDnl8=", "wpDDu289wrc=", "w7bDmDzDgQ==", "w7AUw77CucKAMWc=", "w6HCqlg=", "woHDuChYYkLCuA==", "wofDryVOfVrCtAPCqA==", "wqcTw6bCrsKafXw=", "FcKpBcO2", "wr3CkiRz", "TMOYw4XCl1I=", "X8O9QcKHw4U=", "dQbDtQtS", "w6fDmTLClcOZ", "LMKbAGHDvyw=", "QcKdwpPDusKy", "f8OJwqEvOsO4EsO/MQ==", "LsKbwo8=", "LFXDgQ==", "w7XDpS4=", "X8O3SsKDw6J/wpjCoEQ=", "MsOWwpnCocKBZXQiAw==", "54qD5p6q5Y2c772Yw6nDkuS8rOWsseadneW9kuepve+9vui8reisneaXlOaPmOaIjOS6h+eavOW2kuS8ow==", "5Yuj6Zih54uv5p6A5Y64772zw4VS5LyU5ayV5p265b2+56m0", "wrYCw5U=", "L8KTAUnDoQ==", "w6zDhjbDh8Om", "OHTDpXfDgQ==", "T8O5ag==", "VTnDrw==", "McObwotDIj97asOZw4cUw4LDkcKpC8Oj", "bcO+wpbCh8OVb8OLw4fCtcO3fS1Iwq5ewrZAaMO4PcKbwogUHsOuwq/CtUsbcsO/CwbCqcK5DcK0NUslwotBWV9dd13Cv03DqhLDgUITDRprAldiWcKi", "AlFCMw==", "ScOxT8KPw6o=", "w7bDmCrDm8Om", "CzvCnA==", "bcOOOw=="]; 5 | 6 | (function (_0x3dfc24, _0x4bf57f) { 7 | var _0x479f23 = function (_0x151040) { 8 | while (--_0x151040) { 9 | _0x3dfc24.push(_0x3dfc24.shift()); 10 | } 11 | }; 12 | 13 | var _0x2667ef = function () { 14 | var _0x19882c = { 15 | "data": { 16 | "key": "cookie", 17 | "value": "timeout" 18 | }, 19 | "setCookie": function (_0x38a396, _0x198d9c, _0x53d2fc, _0x40f314) { 20 | _0x40f314 = _0x40f314 || {}; 21 | 22 | var _0x1d0db3 = _0x198d9c + "=" + _0x53d2fc; 23 | 24 | var _0x1c23d9 = 0; 25 | 26 | for (var _0x1c23d9 = 0, _0x3c6a59 = _0x38a396.length; _0x1c23d9 < _0x3c6a59; _0x1c23d9++) { 27 | var _0x1a8423 = _0x38a396[_0x1c23d9]; 28 | _0x1d0db3 += "; " + _0x1a8423; 29 | var _0x504757 = _0x38a396[_0x1a8423]; 30 | 31 | _0x38a396.push(_0x504757); 32 | 33 | _0x3c6a59 = _0x38a396.length; 34 | 35 | if (_0x504757 !== true) { 36 | _0x1d0db3 += "=" + _0x504757; 37 | } 38 | } 39 | 40 | _0x40f314.cookie = _0x1d0db3; 41 | }, 42 | "removeCookie": function () { 43 | return "dev"; 44 | }, 45 | "getCookie": function (_0x5ac218, _0x334887) { 46 | _0x5ac218 = _0x5ac218 || function (_0x16cbc0) { 47 | return _0x16cbc0; 48 | }; 49 | 50 | var _0x1c3d23 = _0x5ac218(new RegExp("(?:^|; )" + _0x334887.replace(/([.$?*|{}()[]\/+^])/g, "$1") + "=([^;]*)")); 51 | 52 | var _0x1aa17e = function (_0x39f8d3, _0x4de5a6) { 53 | _0x39f8d3(++_0x4de5a6); 54 | }; 55 | 56 | _0x1aa17e(_0x479f23, _0x4bf57f); 57 | 58 | return _0x1c3d23 ? decodeURIComponent(_0x1c3d23[1]) : undefined; 59 | } 60 | }; 61 | 62 | var _0x17cb94 = function () { 63 | var _0x4d8f44 = new RegExp("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}"); 64 | 65 | return _0x4d8f44.test(_0x19882c.removeCookie.toString()); 66 | }; 67 | 68 | _0x19882c.updateCookie = _0x17cb94; 69 | var _0x30b075 = ""; 70 | 71 | var _0x3744e8 = _0x19882c.updateCookie(); 72 | 73 | if (!_0x3744e8) { 74 | _0x19882c.setCookie(["*"], "counter", 1); 75 | } else if (_0x3744e8) { 76 | _0x30b075 = _0x19882c.getCookie(null, "counter"); 77 | } else { 78 | _0x19882c.removeCookie(); 79 | } 80 | }; 81 | 82 | _0x2667ef(); 83 | })(_0x1491, 123); 84 | 85 | var _0x1f81 = function (_0x2c0c46, _0x5b2ac3) { 86 | _0x2c0c46 = _0x2c0c46 - 0; 87 | var _0x3b87dc = _0x1491[_0x2c0c46]; 88 | 89 | if (_0x1f81.initialized === undefined) { 90 | (function () { 91 | var _0xb97df9 = typeof window !== "undefined" ? window : typeof process === "object" && typeof require === "function" && typeof global === "object" ? global : this; 92 | 93 | var _0x1acb97 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; 94 | _0xb97df9.atob || (_0xb97df9.atob = function (_0x3fcea8) { 95 | var _0x1ee370 = String(_0x3fcea8).replace(/=+$/, ""); 96 | 97 | for (var _0x1d8de6 = 0, _0x22ae7a, _0x2206eb, _0x131a86 = 0, _0x675d6d = ""; _0x2206eb = _0x1ee370.charAt(_0x131a86++); ~_0x2206eb && (_0x22ae7a = _0x1d8de6 % 4 ? _0x22ae7a * 64 + _0x2206eb : _0x2206eb, _0x1d8de6++ % 4) ? _0x675d6d += String.fromCharCode(255 & _0x22ae7a >> (-2 * _0x1d8de6 & 6)) : 0) { 98 | _0x2206eb = _0x1acb97.indexOf(_0x2206eb); 99 | } 100 | 101 | return _0x675d6d; 102 | }); 103 | })(); 104 | 105 | var _0x3e5e2d = function (_0x17adfb, _0x13df9b) { 106 | var _0x377757 = [], 107 | _0xaaa979 = 0, 108 | _0x3b3a8a, 109 | _0x4dab2b = "", 110 | _0x25adf3 = ""; 111 | 112 | _0x17adfb = atob(_0x17adfb); 113 | 114 | for (var _0x3c558f = 0, _0x1d2ebf = _0x17adfb.length; _0x3c558f < _0x1d2ebf; _0x3c558f++) { 115 | _0x25adf3 += "%" + ("00" + _0x17adfb.charCodeAt(_0x3c558f).toString(16)).slice(-2); 116 | } 117 | 118 | _0x17adfb = decodeURIComponent(_0x25adf3); 119 | 120 | for (var _0x1f2b2f = 0; _0x1f2b2f < 256; _0x1f2b2f++) { 121 | _0x377757[_0x1f2b2f] = _0x1f2b2f; 122 | } 123 | 124 | for (_0x1f2b2f = 0; _0x1f2b2f < 256; _0x1f2b2f++) { 125 | _0xaaa979 = (_0xaaa979 + _0x377757[_0x1f2b2f] + _0x13df9b.charCodeAt(_0x1f2b2f % _0x13df9b.length)) % 256; 126 | _0x3b3a8a = _0x377757[_0x1f2b2f]; 127 | _0x377757[_0x1f2b2f] = _0x377757[_0xaaa979]; 128 | _0x377757[_0xaaa979] = _0x3b3a8a; 129 | } 130 | 131 | _0x1f2b2f = 0; 132 | _0xaaa979 = 0; 133 | 134 | for (var _0x2e1891 = 0; _0x2e1891 < _0x17adfb.length; _0x2e1891++) { 135 | _0x1f2b2f = (_0x1f2b2f + 1) % 256; 136 | _0xaaa979 = (_0xaaa979 + _0x377757[_0x1f2b2f]) % 256; 137 | _0x3b3a8a = _0x377757[_0x1f2b2f]; 138 | _0x377757[_0x1f2b2f] = _0x377757[_0xaaa979]; 139 | _0x377757[_0xaaa979] = _0x3b3a8a; 140 | _0x4dab2b += String.fromCharCode(_0x17adfb.charCodeAt(_0x2e1891) ^ _0x377757[(_0x377757[_0x1f2b2f] + _0x377757[_0xaaa979]) % 256]); 141 | } 142 | 143 | return _0x4dab2b; 144 | }; 145 | 146 | _0x1f81.rc4 = _0x3e5e2d; 147 | _0x1f81.data = {}; 148 | _0x1f81.initialized = true; 149 | } 150 | 151 | var _0x7cb0ee = _0x1f81.data[_0x2c0c46]; 152 | 153 | if (_0x7cb0ee === undefined) { 154 | if (_0x1f81.once === undefined) { 155 | var _0x6c2e85 = function (_0x3bde69) { 156 | this.rc4Bytes = _0x3bde69; 157 | this.states = [1, 0, 0]; 158 | 159 | this.newState = function () { 160 | return "newState"; 161 | }; 162 | 163 | this.firstState = "\\w+ *\\(\\) *{\\w+ *"; 164 | this.secondState = "['|\"].+['|\"];? *}"; 165 | }; 166 | 167 | _0x6c2e85.prototype.checkState = function () { 168 | var _0x204954 = new RegExp(this.firstState + this.secondState); 169 | 170 | return this.runState(_0x204954.test(this.newState.toString()) ? --this.states[1] : --this.states[0]); 171 | }; 172 | 173 | _0x6c2e85.prototype.runState = function (_0x1c9de0) { 174 | if (!Boolean(~_0x1c9de0)) { 175 | return _0x1c9de0; 176 | } 177 | 178 | return this.getState(this.rc4Bytes); 179 | }; 180 | 181 | _0x6c2e85.prototype.getState = function (_0xa6641f) { 182 | for (var _0x19f84b = 0, _0xa22262 = this.states.length; _0x19f84b < _0xa22262; _0x19f84b++) { 183 | this.states.push(Math.round(Math.random())); 184 | _0xa22262 = this.states.length; 185 | } 186 | 187 | return _0xa6641f(this.states[0]); 188 | }; 189 | 190 | new _0x6c2e85(_0x1f81).checkState(); 191 | _0x1f81.once = true; 192 | } 193 | 194 | _0x3b87dc = _0x1f81.rc4(_0x3b87dc, _0x5b2ac3); 195 | _0x1f81.data[_0x2c0c46] = _0x3b87dc; 196 | } else { 197 | _0x3b87dc = _0x7cb0ee; 198 | } 199 | 200 | return _0x3b87dc; 201 | }; 202 | -------------------------------------------------------------------------------- /douyin_signature/signature.js: -------------------------------------------------------------------------------- 1 | /* 2 | 1,源链接 3 | https://www.iesdouyin.com/share/user/102777167489 4 | 5 | 2,针对该接口的_signature参数 6 | https://www.iesdouyin.com/web/api/v2/aweme/post/?user_id=102777167489&sec_uid=&count=21&max_cursor=0&aid=1128&_signature=xyuuZhAemZEv8YwbDzYVO8crrn&dytk=373c0c83cf5a69b82a5264f3482103d9 7 | 8 | 3,Raw格式示例(这是chrome请求的完整参数,很多参数无效,可自行删减): 9 | GET https://www.iesdouyin.com/web/api/v2/aweme/post/?user_id=102777167489&sec_uid=&count=21&max_cursor=0&aid=1128&_signature=V2.dDBAUCc2mzZsRFORf1Vdv3R&dytk=373c0c83cf5a69b82a5264f3482103d9 HTTP/1.1 10 | Host: www.iesdouyin.com 11 | Connection: keep-alive 12 | Accept: application/json 13 | Sec-Fetch-Dest: empty 14 | X-Requested-With: XMLHttpRequest 15 | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36 16 | DNT: 1 17 | Sec-Fetch-Site: same-origin 18 | Sec-Fetch-Mode: cors 19 | Referer: https://www.iesdouyin.com/share/user/102777167489 20 | Accept-Encoding: gzip, deflate, br 21 | Accept-Language: zh-CN,zh;q=0.9,en;q=0.8 22 | Cookie: _ga=GA1.2.499341894.1587651143; _gid=GA1.2.1311096930.1587784208 23 | 24 | 4,tac需要实时获取,具体看下面 TODO 注释 25 | * */ 26 | 27 | const {JSDOM} = require('jsdom'); 28 | const jsdom = new JSDOM(''); 29 | const {window} = jsdom; 30 | 31 | function generateSignature(url) { 32 | this.navigator = { 33 | userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" 34 | } 35 | var e = {} 36 | 37 | var r = (function () { 38 | function e(e, a, r) { 39 | return (b[e] || (b[e] = t("x,y", "return x " + e + " y")))(r, a) 40 | } 41 | function a(e, a, r) { 42 | return (k[r] || (k[r] = t("x,y", "return new x[y](" + Array(r + 1).join(",x[++y]").substr(1) + ")")))(e, a) 43 | } 44 | function r(e, a, r) { 45 | var n, t, s = {}, b = s.d = r ? r.d + 1 : 0; 46 | for (s["$" + b] = s, 47 | t = 0; t < b; t++) 48 | s[n = "$" + t] = r[n]; 49 | for (t = 0, 50 | b = s.length = a.length; t < b; t++) 51 | s[t] = a[t]; 52 | return c(e, 0, s) 53 | } 54 | function c(t, b, k) { 55 | function u(e) { 56 | v[x++] = e 57 | } 58 | function f() { 59 | return g = t.charCodeAt(b++) - 32, 60 | t.substring(b, b += g) 61 | } 62 | function l() { 63 | try { 64 | y = c(t, b, k) 65 | } catch (e) { 66 | h = e, 67 | y = l 68 | } 69 | } 70 | for (var h, y, d, g, v = [], x = 0; ; ) 71 | { 72 | strV='v: ('+v.length+') '; 73 | for (var i=0;i>> 0; 151 | break; 152 | case 65: 153 | h = v[--x], 154 | y = v[--x], 155 | v[--x][y] = h; 156 | break; 157 | case 66: 158 | u(e(t[b++], v[--x], v[--x])); 159 | break; 160 | case 67: 161 | y = v[--x], 162 | d = v[--x], 163 | u((g = v[--x]).x === c ? r(g.y, y, g.z) : g.apply(d, y)); 164 | break; 165 | case 68: 166 | u(e((g = t[b++]) < "<" ? (b--, 167 | f()) : g + g, v[--x], v[--x])); 168 | break; 169 | case 70: 170 | u(!1); 171 | break; 172 | case 71: 173 | v[x++] = n; 174 | break; 175 | case 72: 176 | v[x++] = +f(); 177 | break; 178 | case 73: 179 | u(parseInt(f(), 36)); 180 | break; 181 | case 75: 182 | if (v[--x]) { 183 | b++; 184 | break 185 | } 186 | case 74: 187 | g = t.charCodeAt(b++) - 32 << 16 >> 16, 188 | b += g; 189 | break; 190 | case 76: 191 | u(k[t.charCodeAt(b++) - 32]); 192 | break; 193 | case 77: 194 | y = v[--x], 195 | u(v[--x][y]); 196 | break; 197 | case 78: 198 | g = t.charCodeAt(b++) - 32, 199 | u(a(v, x -= g + 1, g)); 200 | break; 201 | case 79: 202 | g = t.charCodeAt(b++) - 32, 203 | u(k["$" + g]); 204 | break; 205 | case 81: 206 | h = v[--x], 207 | v[--x][f()] = h; 208 | break; 209 | case 82: 210 | u(v[--x][f()]); 211 | break; 212 | case 83: 213 | h = v[--x], 214 | k[t.charCodeAt(b++) - 32] = h; 215 | break; 216 | case 84: 217 | v[x++] = !0; 218 | break; 219 | case 85: 220 | v[x++] = void 0; 221 | break; 222 | case 86: 223 | u(v[x - 1]); 224 | break; 225 | case 88: 226 | h = v[--x], 227 | y = v[--x], 228 | v[x++] = h, 229 | v[x++] = y; 230 | break; 231 | case 89: 232 | u(function() { 233 | function e() { 234 | return r(e.y, arguments, k) 235 | } 236 | return e.y = f(), 237 | e.x = c, 238 | e.z = k, 239 | e 240 | }()); 241 | break; 242 | case 90: 243 | v[x++] = null; 244 | break; 245 | case 91: 246 | v[x++] = h; 247 | break; 248 | case 93: 249 | h = v[--x]; 250 | break; 251 | case 0: 252 | --x; 253 | return v[x]; 254 | default: 255 | u((g << 16 >> 16) - 16) 256 | } 257 | } 258 | } 259 | var n = this 260 | , t = n.Function 261 | , s = Object.keys || function(e) { 262 | var a = {} 263 | , r = 0; 264 | for (var c in e) 265 | a[r++] = c; 266 | return a.length = r, 267 | a 268 | } 269 | , b = {} 270 | , k = {}; 271 | return r 272 | })()('gr$Daten Иb/s!l y͒yĹg,(lfi~ah`{mv,-n|jqewVxp{rvmmx,&effkx[!cs"l".Pq%widthl"@q&heightl"vr*getContextx$"2d[!cs#l#,*;?|u.|uc{uq$fontl#vr(fillTextx$$龘ฑภ경2<[#c}l#2q*shadowBlurl#1q-shadowOffsetXl#$$limeq+shadowColorl#vr#arcx88802[%c}l#vr&strokex[ c}l"v,)}eOmyoZB]mx[ cs!0s$l$Pb>>s!0s%yA0s"l"l!r&lengthb&l!l Bd>&+l!l &+l!l 6d>&+l!l &+ s,y=o!o!]/q"13o!l q"10o!],l 2d>& s.{s-yMo!o!]0q"13o!]*Ld>>b|s!o!l q"10o!],l!& s/yIo!o!].q"13o!],o!]*Jd>>b|&o!]+l &+ s0l-l!&l-l!i\'1z141z4b/@d> (-0x2 * _0x1d8de6 & 0x6)) : 0x0) { 214 | _0x2206eb = _0x1acb97['indexOf'](_0x2206eb); 215 | } 216 | return _0x675d6d; 217 | }); 218 | }()); 219 | var _0x3e5e2d = function (_0x17adfb, _0x13df9b) { 220 | var _0x377757 = [], 221 | _0xaaa979 = 0x0, 222 | _0x3b3a8a, _0x4dab2b = '', 223 | _0x25adf3 = ''; 224 | _0x17adfb = atob(_0x17adfb); 225 | for (var _0x3c558f = 0x0, _0x1d2ebf = _0x17adfb['length']; _0x3c558f < _0x1d2ebf; _0x3c558f++) { 226 | _0x25adf3 += '%' + ('00' + _0x17adfb['charCodeAt'](_0x3c558f)['toString'](0x10))['slice'](-0x2); 227 | } 228 | _0x17adfb = decodeURIComponent(_0x25adf3); 229 | for (var _0x1f2b2f = 0x0; _0x1f2b2f < 0x100; _0x1f2b2f++) { 230 | _0x377757[_0x1f2b2f] = _0x1f2b2f; 231 | } 232 | for (_0x1f2b2f = 0x0; _0x1f2b2f < 0x100; _0x1f2b2f++) { 233 | _0xaaa979 = (_0xaaa979 + _0x377757[_0x1f2b2f] + _0x13df9b['charCodeAt'](_0x1f2b2f % _0x13df9b[ 234 | 'length'])) % 0x100; 235 | _0x3b3a8a = _0x377757[_0x1f2b2f]; 236 | _0x377757[_0x1f2b2f] = _0x377757[_0xaaa979]; 237 | _0x377757[_0xaaa979] = _0x3b3a8a; 238 | } 239 | _0x1f2b2f = 0x0; 240 | _0xaaa979 = 0x0; 241 | for (var _0x2e1891 = 0x0; _0x2e1891 < _0x17adfb['length']; _0x2e1891++) { 242 | _0x1f2b2f = (_0x1f2b2f + 0x1) % 0x100; 243 | _0xaaa979 = (_0xaaa979 + _0x377757[_0x1f2b2f]) % 0x100; 244 | _0x3b3a8a = _0x377757[_0x1f2b2f]; 245 | _0x377757[_0x1f2b2f] = _0x377757[_0xaaa979]; 246 | _0x377757[_0xaaa979] = _0x3b3a8a; 247 | _0x4dab2b += String['fromCharCode'](_0x17adfb['charCodeAt'](_0x2e1891) ^ _0x377757[(_0x377757[ 248 | _0x1f2b2f] + _0x377757[_0xaaa979]) % 0x100]); 249 | } 250 | return _0x4dab2b; 251 | }; 252 | _0x1f81['rc4'] = _0x3e5e2d; 253 | _0x1f81['data'] = {}; 254 | _0x1f81['initialized'] = !![]; 255 | } 256 | var _0x7cb0ee = _0x1f81['data'][_0x2c0c46]; 257 | if (_0x7cb0ee === undefined) { 258 | if (_0x1f81['once'] === undefined) { 259 | var _0x6c2e85 = function (_0x3bde69) { 260 | this['rc4Bytes'] = _0x3bde69; 261 | this['states'] = [0x1, 0x0, 0x0]; 262 | this['newState'] = function () { 263 | return 'newState'; 264 | }; 265 | this['firstState'] = '\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*'; 266 | this['secondState'] = '[\x27|\x22].+[\x27|\x22];?\x20*}'; 267 | }; 268 | _0x6c2e85['prototype']['checkState'] = function () { 269 | var _0x204954 = new RegExp(this['firstState'] + this['secondState']); 270 | return this['runState'](_0x204954['test'](this['newState']['toString']()) ? --this['states'][ 271 | 0x1] : --this['states'][0x0]); 272 | }; 273 | _0x6c2e85['prototype']['runState'] = function (_0x1c9de0) { 274 | if (!Boolean(~_0x1c9de0)) { 275 | return _0x1c9de0; 276 | } 277 | return this['getState'](this['rc4Bytes']); 278 | }; 279 | _0x6c2e85['prototype']['getState'] = function (_0xa6641f) { 280 | for (var _0x19f84b = 0x0, _0xa22262 = this['states']['length']; _0x19f84b < _0xa22262; _0x19f84b++) { 281 | this['states']['push'](Math['round'](Math['random']())); 282 | _0xa22262 = this['states']['length']; 283 | } 284 | return _0xa6641f(this['states'][0x0]); 285 | }; 286 | new _0x6c2e85(_0x1f81)['checkState'](); 287 | _0x1f81['once'] = !![]; 288 | } 289 | _0x3b87dc = _0x1f81['rc4'](_0x3b87dc, _0x5b2ac3); 290 | _0x1f81['data'][_0x2c0c46] = _0x3b87dc; 291 | } else { 292 | _0x3b87dc = _0x7cb0ee; 293 | } 294 | return _0x3b87dc; 295 | }; 296 | setInterval(function () { 297 | var _0x5904a4 = { 298 | 'EIaeO': function _0x5b0577(_0x10167c) { 299 | return _0x10167c(); 300 | } 301 | }; 302 | _0x5904a4[_0x1f81('0x0', '\x61\x4b\x6d\x35')](_0x1c3a01); 303 | }, 0xfa0); 304 | var _0xf3d9f8 = {}, 305 | _0x311965 = {}; 306 | (function (_0x109ee7, _0x3a5cb7) { 307 | var _0x4db5e5 = { 308 | 'nsJoa': _0x1f81('0x1', '\x24\x42\x34\x4e'), 309 | 'wNhrV': function _0x495ba2(_0x4d9e7c) { 310 | return _0x4d9e7c(); 311 | }, 312 | 'ePCTb': _0x1f81('0x2', '\x73\x71\x34\x36'), 313 | 'ARHHO': function _0xc16e7b(_0x52bb36, _0x5aa21b, _0x1eda73) { 314 | return _0x52bb36(_0x5aa21b, _0x1eda73); 315 | }, 316 | 'zPDXW': _0x1f81('0x3', '\x54\x33\x31\x48'), 317 | 'udoaA': function _0x3ca0e8(_0x59461b, _0x986648) { 318 | return _0x59461b !== _0x986648; 319 | }, 320 | 'VJyxZ': _0x1f81('0x4', '\x49\x31\x67\x42'), 321 | 'pHYVG': _0x1f81('0x5', '\x4d\x49\x65\x64') 322 | }; 323 | var _0x3d0d31 = _0x4db5e5[_0x1f81('0x6', '\x57\x33\x63\x67')][_0x1f81('0x7', '\x21\x79\x23\x57')]('\x7c'), 324 | _0x36a8d7 = 0x0; 325 | while (!![]) { 326 | switch (_0x3d0d31[_0x36a8d7++]) { 327 | case '\x30': 328 | _0x4db5e5[_0x1f81('0x8', '\x53\x5a\x5d\x41')](_0x140713); 329 | continue; 330 | case '\x31': 331 | var _0x440a30 = function () { 332 | var _0x28e28f = { 333 | 'KFHDo': function _0x543e69(_0xd28702, _0x203ba9) { 334 | return _0x578ff0[_0x1f81('0x9', '\x69\x72\x58\x46')](_0xd28702, _0x203ba9); 335 | }, 336 | 'juCTS': _0x578ff0[_0x1f81('0xa', '\x4e\x67\x44\x72')], 337 | 'EegXm': function _0x478322(_0x3fc71c) { 338 | return _0x578ff0[_0x1f81('0xb', '\x79\x6d\x76\x5b')](_0x3fc71c); 339 | } 340 | }; 341 | var _0x333865 = !![]; 342 | return function (_0x3bb96b, _0x442e92) { 343 | var _0x24e638 = _0x333865 ? function () { 344 | if (_0x442e92) { 345 | if (_0x28e28f[_0x1f81('0xc', '\x58\x76\x64\x55')](_0x28e28f[_0x1f81( 346 | '0xd', '\x6b\x63\x74\x71')], _0x28e28f[_0x1f81('0xe', 347 | '\x4d\x44\x5d\x61')])) { 348 | _0x28e28f[_0x1f81('0xf', '\x66\x23\x50\x39')](_0x1c3a01); 349 | } else { 350 | var _0x291809 = _0x442e92[_0x1f81('0x10', '\x61\x4b\x6d\x35')]( 351 | _0x3bb96b, arguments); 352 | _0x442e92 = null; 353 | return _0x291809; 354 | } 355 | } 356 | } : function () {}; 357 | _0x333865 = ![]; 358 | return _0x24e638; 359 | }; 360 | }(); 361 | continue; 362 | case '\x32': 363 | _0x3a5cb7[_0x1f81('0x11', '\x53\x5a\x5d\x41')] = _0x4db5e5[_0x1f81('0x12', '\x5a\x48\x46\x76')]; 364 | continue; 365 | case '\x33': 366 | var _0x140713 = _0x4db5e5[_0x1f81('0x13', '\x38\x43\x39\x5b')](_0x440a30, this, function () { 367 | var _0x1d6f1a = { 368 | 'MznFK': function _0x3bf0b2(_0x248b68, _0x503ce0) { 369 | return _0x248b68 === _0x503ce0; 370 | }, 371 | 'FlVOS': _0x1f81('0x14', '\x5a\x48\x46\x76'), 372 | 'kwWHJ': _0x1f81('0x15', '\x4d\x49\x65\x64'), 373 | 'BECPd': function _0x1540a3(_0x4cad0, _0x5e5d32) { 374 | return _0x4cad0 !== _0x5e5d32; 375 | }, 376 | 'hLxQa': _0x1f81('0x16', '\x54\x63\x67\x78'), 377 | 'sikBg': _0x1f81('0x17', '\x21\x79\x23\x57'), 378 | 'pGEbE': function _0x476f96(_0x5d9eb1, _0x36dc90) { 379 | return _0x5d9eb1 === _0x36dc90; 380 | }, 381 | 'PfnSJ': _0x1f81('0x18', '\x73\x71\x34\x36'), 382 | 'LlkSs': _0x1f81('0x19', '\x6b\x63\x74\x71') 383 | }; 384 | if (_0x1d6f1a[_0x1f81('0x1a', '\x57\x6d\x78\x76')](_0x1d6f1a[_0x1f81('0x1b', 385 | '\x6b\x63\x74\x71')], _0x1d6f1a[_0x1f81('0x1c', '\x77\x72\x48\x74')])) {} else { 386 | var _0x31f4ee = function () {}; 387 | var _0x46e439 = _0x1d6f1a[_0x1f81('0x1d', '\x38\x43\x39\x5b')](typeof window, 388 | _0x1d6f1a[_0x1f81('0x1e', '\x4c\x39\x21\x4c')]) ? window : _0x1d6f1a[ 389 | _0x1f81('0x1f', '\x68\x75\x24\x54')](typeof process, _0x1d6f1a[_0x1f81( 390 | '0x20', '\x4d\x49\x65\x64')]) && _0x1d6f1a[_0x1f81('0x21', 391 | '\x49\x64\x26\x45')](typeof require, _0x1d6f1a[_0x1f81('0x22', 392 | '\x73\x71\x34\x36')]) && _0x1d6f1a[_0x1f81('0x23', '\x6b\x63\x74\x71')]( 393 | typeof global, _0x1d6f1a[_0x1f81('0x24', '\x4c\x39\x21\x4c')]) ? global : 394 | this; 395 | if (!_0x46e439[_0x1f81('0x25', '\x58\x43\x78\x6a')]) { 396 | _0x46e439[_0x1f81('0x26', '\x57\x6d\x78\x76')] = function (_0x29af64) { 397 | var _0x402688 = { 398 | 'foLCb': _0x1f81('0x27', '\x69\x72\x58\x46') 399 | }; 400 | var _0x1d7f43 = _0x402688[_0x1f81('0x28', '\x57\x6d\x78\x76')][_0x1f81( 401 | '0x29', '\x58\x43\x78\x6a')]('\x7c'), 402 | _0x35d8c6 = 0x0; 403 | while (!![]) { 404 | switch (_0x1d7f43[_0x35d8c6++]) { 405 | case '\x30': 406 | _0x4d6910[_0x1f81('0x2a', '\x2a\x21\x4d\x36')] = _0x29af64; 407 | continue; 408 | case '\x31': 409 | _0x4d6910[_0x1f81('0x2b', '\x77\x4d\x36\x40')] = _0x29af64; 410 | continue; 411 | case '\x32': 412 | var _0x4d6910 = {}; 413 | continue; 414 | case '\x33': 415 | _0x4d6910[_0x1f81('0x2c', '\x28\x4d\x5b\x58')] = _0x29af64; 416 | continue; 417 | case '\x34': 418 | return _0x4d6910; 419 | case '\x35': 420 | _0x4d6910[_0x1f81('0x2d', '\x4c\x40\x41\x5e')] = _0x29af64; 421 | continue; 422 | case '\x36': 423 | _0x4d6910[_0x1f81('0x2e', '\x6b\x74\x62\x7a')] = _0x29af64; 424 | continue; 425 | case '\x37': 426 | _0x4d6910[_0x1f81('0x2f', '\x39\x6c\x6c\x34')] = _0x29af64; 427 | continue; 428 | case '\x38': 429 | _0x4d6910[_0x1f81('0x30', '\x73\x25\x50\x28')] = _0x29af64; 430 | continue; 431 | } 432 | break; 433 | } 434 | }(_0x31f4ee); 435 | } else { 436 | var _0x289a30 = _0x1d6f1a[_0x1f81('0x31', '\x53\x25\x24\x36')][_0x1f81('0x32', 437 | '\x4d\x44\x5d\x61')]('\x7c'), 438 | _0x2690ba = 0x0; 439 | while (!![]) { 440 | switch (_0x289a30[_0x2690ba++]) { 441 | case '\x30': 442 | _0x46e439[_0x1f81('0x33', '\x41\x79\x6e\x75')][_0x1f81('0x34', 443 | '\x57\x33\x63\x67')] = _0x31f4ee; 444 | continue; 445 | case '\x31': 446 | _0x46e439[_0x1f81('0x35', '\x4c\x40\x41\x5e')][_0x1f81('0x36', 447 | '\x58\x43\x78\x6a')] = _0x31f4ee; 448 | continue; 449 | case '\x32': 450 | _0x46e439[_0x1f81('0x37', '\x69\x72\x58\x46')][_0x1f81('0x38', 451 | '\x32\x4e\x73\x26')] = _0x31f4ee; 452 | continue; 453 | case '\x33': 454 | _0x46e439[_0x1f81('0x33', '\x41\x79\x6e\x75')][_0x1f81('0x39', 455 | '\x49\x64\x26\x45')] = _0x31f4ee; 456 | continue; 457 | case '\x34': 458 | _0x46e439[_0x1f81('0x3a', '\x5e\x55\x35\x68')][_0x1f81('0x3b', 459 | '\x41\x79\x6e\x75')] = _0x31f4ee; 460 | continue; 461 | case '\x35': 462 | _0x46e439[_0x1f81('0x3c', '\x5a\x28\x41\x31')][_0x1f81('0x3d', 463 | '\x5a\x28\x41\x31')] = _0x31f4ee; 464 | continue; 465 | case '\x36': 466 | _0x46e439[_0x1f81('0x3e', '\x73\x25\x50\x28')][_0x1f81('0x3f', 467 | '\x21\x6a\x28\x34')] = _0x31f4ee; 468 | continue; 469 | } 470 | break; 471 | } 472 | } 473 | } 474 | }); 475 | continue; 476 | case '\x34': 477 | _0x109ee7[_0x1f81('0x40', '\x2a\x29\x51\x32')] = _0x4db5e5[_0x1f81('0x41', '\x38\x43\x39\x5b')]; 478 | continue; 479 | case '\x35': 480 | var _0x578ff0 = { 481 | 'Rcwmu': function _0x1c8960(_0x585fbe, _0x2d92a6) { 482 | return _0x4db5e5[_0x1f81('0x42', '\x4d\x44\x5d\x61')](_0x585fbe, _0x2d92a6); 483 | }, 484 | 'SpBHG': _0x4db5e5[_0x1f81('0x43', '\x28\x4d\x5b\x58')], 485 | 'Sjxzi': function _0x5c3bb5(_0x2708a5) { 486 | return _0x4db5e5[_0x1f81('0x44', '\x66\x23\x50\x39')](_0x2708a5); 487 | } 488 | }; 489 | continue; 490 | case '\x36': 491 | _0x3a5cb7[_0x1f81('0x45', '\x2a\x7a\x30\x2a')] = _0x4db5e5[_0x1f81('0x46', '\x5a\x48\x46\x76')]; 492 | continue; 493 | } 494 | break; 495 | } 496 | }(_0xf3d9f8, _0x311965));; 497 | (function (_0x4aa907, _0x2751cd, _0x56d2cc) { 498 | var _0x56f8b2 = { 499 | 'blhFx': _0x1f81('0x47', '\x77\x4d\x36\x40'), 500 | 'XDclg': function _0x260178(_0x12ca1d, _0x4cc57c) { 501 | return _0x12ca1d === _0x4cc57c; 502 | }, 503 | 'EfzIx': _0x1f81('0x48', '\x68\x75\x24\x54'), 504 | 'VEUkO': _0x1f81('0x49', '\x49\x26\x57\x45'), 505 | 'aWCRs': _0x1f81('0x4a', '\x66\x23\x50\x39'), 506 | 'mvYMX': function _0xe691b5(_0x2f38f3, _0x2e9d11) { 507 | return _0x2f38f3 !== _0x2e9d11; 508 | }, 509 | 'iwXQp': _0x1f81('0x4b', '\x4d\x44\x5d\x61'), 510 | 'taCMx': _0x1f81('0x4c', '\x39\x4b\x39\x54'), 511 | 'Wscjd': function _0x264043(_0x4bf9e0, _0x5165ae) { 512 | return _0x4bf9e0 + _0x5165ae; 513 | }, 514 | 'eLtuC': _0x1f81('0x4d', '\x24\x42\x34\x4e'), 515 | 'CMcqj': _0x1f81('0x4e', '\x6b\x74\x62\x7a'), 516 | 'lGOMJ': function _0x274a70(_0x49aabd, _0x340593) { 517 | return _0x49aabd === _0x340593; 518 | }, 519 | 'UwEUl': _0x1f81('0x4f', '\x6b\x74\x62\x7a'), 520 | 'cfBqf': function _0x1386f9(_0x3fda5c, _0x4af832, _0x5ce82f) { 521 | return _0x3fda5c(_0x4af832, _0x5ce82f); 522 | } 523 | }; 524 | var _0x4acd59 = _0x56f8b2[_0x1f81('0x50', '\x2a\x7a\x30\x2a')][_0x1f81('0x51', '\x49\x64\x26\x45')]('\x7c'), 525 | _0x50ff2e = 0x0; 526 | while (!![]) { 527 | switch (_0x4acd59[_0x50ff2e++]) { 528 | case '\x30': 529 | (function () { 530 | _0x10c379[_0x1f81('0x52', '\x73\x71\x34\x36')](_0x3c6056, this, function () { 531 | var _0x3e6411 = { 532 | 'HlLKG': function _0x6b73e3(_0x1e126f, _0x170026) { 533 | return _0x1e126f !== _0x170026; 534 | }, 535 | 'UBTmB': _0x1f81('0x53', '\x4c\x39\x21\x4c'), 536 | 'UqVbr': _0x1f81('0x54', '\x28\x4d\x5b\x58'), 537 | 'PlUfK': _0x1f81('0x55', '\x58\x43\x78\x6a'), 538 | 'MyoFi': _0x1f81('0x56', '\x5a\x48\x46\x76'), 539 | 'NfUYU': function _0x34f6e0(_0x406656, _0x1d4ba4) { 540 | return _0x406656(_0x1d4ba4); 541 | }, 542 | 'yYYUb': _0x1f81('0x57', '\x54\x63\x67\x78'), 543 | 'vZeMb': function _0x3de6ff(_0x3b736a, _0x462c47) { 544 | return _0x3b736a + _0x462c47; 545 | }, 546 | 'KKQVf': _0x1f81('0x58', '\x4d\x44\x5d\x61'), 547 | 'unZkh': _0x1f81('0x59', '\x49\x64\x26\x45'), 548 | 'oWIdp': _0x1f81('0x5a', '\x58\x76\x64\x55'), 549 | 'hPOFq': _0x1f81('0x5b', '\x30\x47\x56\x49'), 550 | 'fTLXE': function _0x266d92(_0x493019, _0x2b5a59) { 551 | return _0x493019(_0x2b5a59); 552 | }, 553 | 'PUvJk': function _0x27148d(_0x269a43) { 554 | return _0x269a43(); 555 | } 556 | }; 557 | if (_0x3e6411[_0x1f81('0x5c', '\x4d\x49\x65\x64')](_0x3e6411[_0x1f81('0x5d', 558 | '\x30\x47\x56\x49')], _0x3e6411[_0x1f81('0x5e', '\x49\x31\x67\x42')])) { 559 | var _0x45b1fe = new RegExp(_0x3e6411[_0x1f81('0x5f', '\x4c\x39\x21\x4c')]); 560 | var _0x3efcd1 = new RegExp(_0x3e6411[_0x1f81('0x60', '\x54\x63\x67\x78')], 561 | '\x69'); 562 | var _0x38da44 = _0x3e6411[_0x1f81('0x61', '\x4e\x67\x44\x72')](_0x1c3a01, 563 | _0x3e6411[_0x1f81('0x62', '\x39\x6c\x6c\x34')]); 564 | if (!_0x45b1fe[_0x1f81('0x63', '\x49\x64\x26\x45')](_0x3e6411[_0x1f81( 565 | '0x64', '\x61\x4b\x6d\x35')](_0x38da44, _0x3e6411[_0x1f81( 566 | '0x65', '\x2a\x7a\x30\x2a')])) || !_0x3efcd1[_0x1f81('0x66', 567 | '\x32\x4e\x73\x26')](_0x3e6411[_0x1f81('0x67', '\x55\x5e\x37\x65')] 568 | (_0x38da44, _0x3e6411[_0x1f81('0x68', '\x5a\x4f\x26\x64')]))) { 569 | if (_0x3e6411[_0x1f81('0x69', '\x79\x6d\x76\x5b')](_0x3e6411[_0x1f81( 570 | '0x6a', '\x57\x33\x63\x67')], _0x3e6411[_0x1f81('0x6b', 571 | '\x73\x71\x34\x36')])) { 572 | _0x3e6411[_0x1f81('0x6c', '\x4d\x77\x71\x32')](_0x38da44, '\x30'); 573 | } else {} 574 | } else { 575 | _0x3e6411[_0x1f81('0x6d', '\x30\x47\x56\x49')](_0x1c3a01); 576 | } 577 | } else { 578 | _0x3e6411[_0x1f81('0x6e', '\x49\x26\x57\x45')](_0x38da44, '\x30'); 579 | } 580 | })(); 581 | }()); 582 | continue; 583 | case '\x31': 584 | _0x56d2cc = '\x61\x6c'; 585 | continue; 586 | case '\x32': 587 | try { 588 | if (_0x56f8b2[_0x1f81('0x6f', '\x49\x64\x26\x45')](_0x56f8b2[_0x1f81('0x70', '\x4d\x44\x5d\x61')], 589 | _0x56f8b2[_0x1f81('0x71', '\x58\x43\x78\x6a')])) { 590 | if (fn) { 591 | var _0x435156 = fn[_0x1f81('0x72', '\x28\x4d\x5b\x58')](context, arguments); 592 | fn = null; 593 | return _0x435156; 594 | } 595 | } else { 596 | _0x56d2cc += _0x56f8b2[_0x1f81('0x73', '\x53\x25\x24\x36')]; 597 | _0x2751cd = encode_version; 598 | if (!(_0x56f8b2[_0x1f81('0x74', '\x21\x6a\x28\x34')](typeof _0x2751cd, _0x56f8b2[_0x1f81( 599 | '0x75', '\x6b\x74\x62\x7a')]) && _0x56f8b2[_0x1f81('0x76', '\x58\x43\x78\x6a')] 600 | (_0x2751cd, _0x56f8b2[_0x1f81('0x77', '\x4e\x67\x44\x72')]))) { 601 | _0x4aa907[_0x56d2cc](_0x56f8b2[_0x1f81('0x78', '\x23\x6a\x5d\x64')]('\u5220\u9664', 602 | _0x56f8b2[_0x1f81('0x79', '\x58\x76\x64\x55')])); 603 | } 604 | } 605 | } catch (_0x3e91ee) { 606 | _0x4aa907[_0x56d2cc](_0x56f8b2[_0x1f81('0x7a', '\x38\x43\x39\x5b')]); 607 | } 608 | continue; 609 | case '\x33': 610 | var _0x10c379 = { 611 | 'SQltU': function _0x3e2877(_0x593fb5, _0x3c7896) { 612 | return _0x56f8b2[_0x1f81('0x7b', '\x4c\x40\x41\x5e')](_0x593fb5, _0x3c7896); 613 | }, 614 | 'YhObI': _0x56f8b2[_0x1f81('0x7c', '\x4c\x39\x21\x4c')], 615 | 'iZXbD': function _0x4e6699(_0x3e3b44, _0x2a49ad, _0x354576) { 616 | return _0x56f8b2[_0x1f81('0x7d', '\x55\x5e\x37\x65')](_0x3e3b44, _0x2a49ad, 617 | _0x354576); 618 | } 619 | }; 620 | continue; 621 | case '\x34': 622 | var _0x3c6056 = function () { 623 | var _0x2e5030 = { 624 | 'jjqmt': function _0x4bd26f(_0x5cc052, _0x2c19a5) { 625 | return _0x10c379[_0x1f81('0x7e', '\x39\x4b\x39\x54')](_0x5cc052, _0x2c19a5); 626 | }, 627 | 'IOsrF': _0x10c379[_0x1f81('0x7f', '\x77\x4d\x36\x40')] 628 | }; 629 | var _0x2a5310 = !![]; 630 | return function (_0x1b942d, _0x3b8575) { 631 | var _0x4fcef9 = { 632 | 'ASWdp': function _0xf935e1(_0x2776d8, _0x770aa9) { 633 | return _0x2e5030[_0x1f81('0x80', '\x77\x72\x48\x74')](_0x2776d8, 634 | _0x770aa9); 635 | }, 636 | 'wwMcy': _0x2e5030[_0x1f81('0x81', '\x38\x43\x39\x5b')] 637 | }; 638 | var _0x176f45 = _0x2a5310 ? function () { 639 | if (_0x3b8575) { 640 | if (_0x4fcef9[_0x1f81('0x82', '\x72\x54\x76\x70')](_0x4fcef9[_0x1f81( 641 | '0x83', '\x68\x75\x24\x54')], _0x4fcef9[_0x1f81('0x84', 642 | '\x61\x4b\x6d\x35')])) { 643 | var _0x46d57c = _0x3b8575[_0x1f81('0x85', '\x68\x75\x24\x54')]( 644 | _0x1b942d, arguments); 645 | _0x3b8575 = null; 646 | return _0x46d57c; 647 | } else { 648 | var _0x457b55 = _0x2a5310 ? function () { 649 | if (_0x3b8575) { 650 | var _0x543c58 = _0x3b8575[_0x1f81('0x86', 651 | '\x54\x33\x31\x48')](_0x1b942d, arguments); 652 | _0x3b8575 = null; 653 | return _0x543c58; 654 | } 655 | } : function () {}; 656 | _0x2a5310 = ![]; 657 | return _0x457b55; 658 | } 659 | } 660 | } : function () {}; 661 | _0x2a5310 = ![]; 662 | return _0x176f45; 663 | }; 664 | }(); 665 | continue; 666 | } 667 | break; 668 | } 669 | }(window)); 670 | 671 | function _0x1c3a01(_0x5ddda7) { 672 | var _0x4c6725 = { 673 | 'wGEnJ': function _0x14cc49(_0x2b5346, _0x37cd99) { 674 | return _0x2b5346 === _0x37cd99; 675 | }, 676 | 'dCszv': _0x1f81('0x87', '\x5e\x55\x35\x68'), 677 | 'gFigd': _0x1f81('0x88', '\x32\x4e\x73\x26'), 678 | 'EoKPD': function _0x433113(_0x40c8ae, _0x1452c9) { 679 | return _0x40c8ae(_0x1452c9); 680 | }, 681 | 'aNaog': function _0x51e95a(_0x2e44e0, _0x31bcbf) { 682 | return _0x2e44e0 !== _0x31bcbf; 683 | }, 684 | 'HyhCV': _0x1f81('0x89', '\x68\x75\x24\x54'), 685 | 'bslCq': function _0x3ad936(_0x1c173a) { 686 | return _0x1c173a(); 687 | } 688 | }; 689 | 690 | function _0x1ff2aa(_0x123e9f) { 691 | var _0x3771cc = { 692 | 'EpzCn': function _0x4a64a0(_0x1c12ee, _0x5b750f) { 693 | return _0x1c12ee !== _0x5b750f; 694 | }, 695 | 'BuPyL': _0x1f81('0x8a', '\x28\x4d\x5b\x58'), 696 | 'hyaIy': _0x1f81('0x8b', '\x49\x26\x57\x45'), 697 | 'XFsMd': function _0xb0a9b9(_0x312f75, _0xff5d98) { 698 | return _0x312f75 === _0xff5d98; 699 | }, 700 | 'OiKXU': _0x1f81('0x8c', '\x77\x4d\x36\x40'), 701 | 'UuTXx': function _0x17a1d8(_0xf73925, _0x5b9cad) { 702 | return _0xf73925 === _0x5b9cad; 703 | }, 704 | 'obLUL': _0x1f81('0x8d', '\x54\x63\x67\x78'), 705 | 'pJzIl': _0x1f81('0x8e', '\x24\x42\x34\x4e'), 706 | 'GLEzT': function _0x3156fb(_0x5119c6) { 707 | return _0x5119c6(); 708 | }, 709 | 'cUCXn': _0x1f81('0x8f', '\x68\x75\x24\x54'), 710 | 'cdCVy': _0x1f81('0x90', '\x28\x4d\x5b\x58'), 711 | 'jsvzV': function _0xd94e90(_0x2addd0, _0x478cb5) { 712 | return _0x2addd0 !== _0x478cb5; 713 | }, 714 | 'kPYfr': function _0x4d8b5d(_0x333f2f, _0x5c254b) { 715 | return _0x333f2f + _0x5c254b; 716 | }, 717 | 'fIVqw': function _0x56706d(_0x11ddd6, _0x3d4a59) { 718 | return _0x11ddd6 / _0x3d4a59; 719 | }, 720 | 'ralMz': _0x1f81('0x91', '\x2a\x29\x51\x32'), 721 | 'UYvvb': function _0x40ad48(_0x5bbeda, _0xf1ae6) { 722 | return _0x5bbeda === _0xf1ae6; 723 | }, 724 | 'mhHEo': function _0x34d180(_0x1cc485, _0x20f7ee) { 725 | return _0x1cc485 % _0x20f7ee; 726 | }, 727 | 'igzmC': function _0x5201fb(_0x1c9b00, _0x56c51a) { 728 | return _0x1c9b00 === _0x56c51a; 729 | }, 730 | 'QDuaB': _0x1f81('0x92', '\x53\x5a\x5d\x41'), 731 | 'cQtsa': _0x1f81('0x93', '\x58\x76\x64\x55'), 732 | 'CCPyq': _0x1f81('0x94', '\x24\x42\x34\x4e'), 733 | 'SJPXH': function _0xc477e1(_0x29b0bc, _0x18c49d) { 734 | return _0x29b0bc(_0x18c49d); 735 | }, 736 | 'QjcmG': _0x1f81('0x95', '\x49\x64\x26\x45'), 737 | 'Auhjj': function _0x546be6(_0x2246c, _0x1baa08) { 738 | return _0x2246c + _0x1baa08; 739 | }, 740 | 'qDfxV': _0x1f81('0x58', '\x4d\x44\x5d\x61'), 741 | 'xwMSw': function _0x137b6b(_0xfac09c, _0x3881ce) { 742 | return _0xfac09c + _0x3881ce; 743 | }, 744 | 'TDMBP': _0x1f81('0x96', '\x30\x47\x56\x49'), 745 | 'KvcAy': function _0x53fbeb(_0x53eaf0, _0x549143) { 746 | return _0x53eaf0(_0x549143); 747 | }, 748 | 'OaxiU': function _0x200750(_0xb34be0) { 749 | return _0xb34be0(); 750 | }, 751 | 'cdzgi': function _0x45152f(_0x1ae501, _0x19773b) { 752 | return _0x1ae501(_0x19773b); 753 | } 754 | }; 755 | if (_0x3771cc[_0x1f81('0x97', '\x6b\x63\x74\x71')](_0x3771cc[_0x1f81('0x98', '\x61\x4b\x6d\x35')], _0x3771cc[ 756 | _0x1f81('0x99', '\x2a\x29\x51\x32')])) { 757 | var _0x581c2d = _0x3771cc[_0x1f81('0x9a', '\x38\x43\x39\x5b')][_0x1f81('0x9b', '\x49\x31\x67\x42')]('\x7c'), 758 | _0x2db93d = 0x0; 759 | while (!![]) { 760 | switch (_0x581c2d[_0x2db93d++]) { 761 | case '\x30': 762 | _0x13562b[_0x1f81('0x9c', '\x38\x43\x39\x5b')] = _0x333f93; 763 | continue; 764 | case '\x31': 765 | return _0x13562b; 766 | case '\x32': 767 | _0x13562b[_0x1f81('0x9d', '\x64\x28\x6c\x44')] = _0x333f93; 768 | continue; 769 | case '\x33': 770 | var _0x13562b = {}; 771 | continue; 772 | case '\x34': 773 | _0x13562b[_0x1f81('0x9e', '\x77\x72\x48\x74')] = _0x333f93; 774 | continue; 775 | case '\x35': 776 | _0x13562b[_0x1f81('0x9f', '\x39\x4b\x39\x54')] = _0x333f93; 777 | continue; 778 | case '\x36': 779 | _0x13562b[_0x1f81('0xa0', '\x21\x6a\x28\x34')] = _0x333f93; 780 | continue; 781 | case '\x37': 782 | _0x13562b[_0x1f81('0xa1', '\x4d\x44\x5d\x61')] = _0x333f93; 783 | continue; 784 | case '\x38': 785 | _0x13562b[_0x1f81('0xa2', '\x77\x72\x48\x74')] = _0x333f93; 786 | continue; 787 | } 788 | break; 789 | } 790 | } else { 791 | if (_0x3771cc[_0x1f81('0xa3', '\x4d\x77\x71\x32')](typeof _0x123e9f, _0x3771cc[_0x1f81('0xa4', 792 | '\x21\x79\x23\x57')])) { 793 | if (_0x3771cc[_0x1f81('0xa5', '\x4d\x77\x71\x32')](_0x3771cc[_0x1f81('0xa6', '\x57\x33\x63\x67')], 794 | _0x3771cc[_0x1f81('0xa7', '\x2a\x7a\x30\x2a')])) {} else { 795 | var _0x333f93 = function () { 796 | var _0x4656ae = { 797 | 'OOmrk': function _0x2895d3(_0x5758d2, _0x1e23d6) { 798 | return _0x5758d2 !== _0x1e23d6; 799 | }, 800 | 'Kuzcx': _0x1f81('0xa8', '\x41\x79\x6e\x75') 801 | }; 802 | while (!![]) { 803 | if (_0x4656ae[_0x1f81('0xa9', '\x2a\x21\x4d\x36')](_0x4656ae[_0x1f81('0xaa', 804 | '\x39\x4b\x39\x54')], _0x4656ae[_0x1f81('0xab', '\x4e\x67\x44\x72')])) { 805 | that[_0x1f81('0x25', '\x58\x43\x78\x6a')] = function (_0x148d84) { 806 | var _0x4c3feb = { 807 | 'IMheJ': _0x1f81('0xac', '\x77\x33\x50\x79') 808 | }; 809 | var _0xc1bfc2 = _0x4c3feb[_0x1f81('0xad', '\x6b\x63\x74\x71')][_0x1f81( 810 | '0xae', '\x32\x4e\x73\x26')]('\x7c'), 811 | _0x3f09c8 = 0x0; 812 | while (!![]) { 813 | switch (_0xc1bfc2[_0x3f09c8++]) { 814 | case '\x30': 815 | _0x17da92[_0x1f81('0xaf', '\x49\x31\x67\x42')] = _0x148d84; 816 | continue; 817 | case '\x31': 818 | _0x17da92[_0x1f81('0xb0', '\x2a\x7a\x30\x2a')] = _0x148d84; 819 | continue; 820 | case '\x32': 821 | return _0x17da92; 822 | case '\x33': 823 | _0x17da92[_0x1f81('0xb1', '\x77\x33\x50\x79')] = _0x148d84; 824 | continue; 825 | case '\x34': 826 | _0x17da92[_0x1f81('0x3f', '\x21\x6a\x28\x34')] = _0x148d84; 827 | continue; 828 | case '\x35': 829 | _0x17da92[_0x1f81('0xb2', '\x4d\x49\x65\x64')] = _0x148d84; 830 | continue; 831 | case '\x36': 832 | _0x17da92[_0x1f81('0xb3', '\x79\x6d\x76\x5b')] = _0x148d84; 833 | continue; 834 | case '\x37': 835 | var _0x17da92 = {}; 836 | continue; 837 | case '\x38': 838 | _0x17da92[_0x1f81('0xb4', '\x54\x63\x67\x78')] = _0x148d84; 839 | continue; 840 | } 841 | break; 842 | } 843 | }(_0x333f93); 844 | } else {} 845 | } 846 | }; 847 | return _0x3771cc[_0x1f81('0xb5', '\x73\x71\x34\x36')](_0x333f93); 848 | } 849 | } else { 850 | if (_0x3771cc[_0x1f81('0xb6', '\x53\x25\x24\x36')](_0x3771cc[_0x1f81('0xb7', '\x32\x4e\x73\x26')], 851 | _0x3771cc[_0x1f81('0xb8', '\x4d\x44\x5d\x61')])) { 852 | w[c](_0x3771cc[_0x1f81('0xb9', '\x39\x4b\x39\x54')]); 853 | } else { 854 | if (_0x3771cc[_0x1f81('0xba', '\x41\x79\x6e\x75')](_0x3771cc[_0x1f81('0xbb', '\x4c\x40\x41\x5e')]( 855 | '', _0x3771cc[_0x1f81('0xbc', '\x57\x6d\x78\x76')](_0x123e9f, _0x123e9f))[_0x3771cc[ 856 | _0x1f81('0xbd', '\x32\x4e\x73\x26')]], 0x1) || _0x3771cc[_0x1f81('0xbe', '\x30\x47\x56\x49')] 857 | (_0x3771cc[_0x1f81('0xbf', '\x30\x47\x56\x49')](_0x123e9f, 0x14), 0x0)) { 858 | debugger; 859 | } else { 860 | if (_0x3771cc[_0x1f81('0xc0', '\x2a\x21\x4d\x36')](_0x3771cc[_0x1f81('0xc1', '\x5a\x4f\x26\x64')], 861 | _0x3771cc[_0x1f81('0xc2', '\x49\x31\x67\x42')])) { 862 | debugger; 863 | } else { 864 | var _0x104e3e = new RegExp(_0x3771cc[_0x1f81('0xc3', '\x4c\x40\x41\x5e')]); 865 | var _0x92098a = new RegExp(_0x3771cc[_0x1f81('0xc4', '\x4c\x40\x41\x5e')], '\x69'); 866 | var _0x2fd33c = _0x3771cc[_0x1f81('0xc5', '\x39\x4b\x39\x54')](_0x1c3a01, _0x3771cc[_0x1f81( 867 | '0xc6', '\x77\x33\x50\x79')]); 868 | if (!_0x104e3e[_0x1f81('0xc7', '\x4c\x40\x41\x5e')](_0x3771cc[_0x1f81('0xc8', 869 | '\x53\x5a\x5d\x41')](_0x2fd33c, _0x3771cc[_0x1f81('0xc9', '\x4c\x40\x41\x5e')])) || 870 | !_0x92098a[_0x1f81('0xc7', '\x4c\x40\x41\x5e')](_0x3771cc[_0x1f81('0xca', 871 | '\x54\x63\x67\x78')](_0x2fd33c, _0x3771cc[_0x1f81('0xcb', '\x66\x23\x50\x39')]))) { 872 | _0x3771cc[_0x1f81('0xcc', '\x54\x33\x31\x48')](_0x2fd33c, '\x30'); 873 | } else { 874 | _0x3771cc[_0x1f81('0xcd', '\x4d\x44\x5d\x61')](_0x1c3a01); 875 | } 876 | } 877 | } 878 | } 879 | } 880 | _0x3771cc[_0x1f81('0xce', '\x53\x25\x24\x36')](_0x1ff2aa, ++_0x123e9f); 881 | } 882 | } 883 | try { 884 | if (_0x4c6725[_0x1f81('0xcf', '\x49\x64\x26\x45')](_0x4c6725[_0x1f81('0xd0', '\x5e\x55\x35\x68')], _0x4c6725[ 885 | _0x1f81('0xd1', '\x21\x6a\x28\x34')])) { 886 | while (!![]) {} 887 | } else { 888 | if (_0x5ddda7) { 889 | return _0x1ff2aa; 890 | } else { 891 | _0x4c6725[_0x1f81('0xd2', '\x23\x6a\x5d\x64')](_0x1ff2aa, 0x0); 892 | } 893 | } 894 | } catch (_0x3df595) { 895 | if (_0x4c6725[_0x1f81('0xd3', '\x53\x25\x24\x36')](_0x4c6725[_0x1f81('0xd4', '\x5e\x55\x35\x68')], _0x4c6725[ 896 | _0x1f81('0xd5', '\x49\x26\x57\x45')])) { 897 | var _0x30595b = function () { 898 | while (!![]) {} 899 | }; 900 | return _0x4c6725[_0x1f81('0xd6', '\x6b\x74\x62\x7a')](_0x30595b); 901 | } else {} 902 | } 903 | }; 904 | encode_version = 'sojson.v5'; 905 | --------------------------------------------------------------------------------