入口:
传递的参数值:
sign函数
function() {var _0x36c5d3 = _0x79c1ce;let _0x479298 = arguments[_0x36c5d3(0x5a9, 'PHXL')] > 0x0 && void 0x0 !== arguments[0x0] ? arguments[0x0] : {};try {var _0x1a6f66;if (!_0x32d6a8[_0x36c5d3(0x4d7, 'l!Uo')][_0x36c5d3(0x3a7, 'yS(K')]) return _0x347d76[_0x36c5d3(0x514, 'j7Mt')][_0x36c5d3(0x323, 'a$#V')](_0x36c5d3(0x543, 'XEk5'), {'reason': _0x36c5d3(0x56a, 'an)q')}),Promise[_0x36c5d3(0x3cd, 'aSrl')]({});const _0x48393f = (0x0, _0xbae138[_0x36c5d3(0x5fd, 't[mc')])(),_0x4085c6 = '' [_0x36c5d3(0x536, 'J0hY')](Date[_0x36c5d3(0x37b, 'aO!D')]());let _0x3a0e53 = _0x479298;_0x36c5d3(0x230, 'R90F') != typeof _0x479298 && (_0x3a0e53 = {});const _0x209c05 = _0x4438f3(_0x4438f3({},_0x3a0e53), {},{'random': _0x48393f,'timestamp': _0x4085c6}),_0x2c4733 = JSON[_0x36c5d3(0x44c, '3z04')](_0x209c05) + (0x0, _0x167d7d[_0x36c5d3(0x5a5, 'hjcQ')])();return (null === (_0x1a6f66 = (0x0, _0x438ffe[_0x36c5d3(0x40b, 'J0hY')])(_0x2c4733)) || void 0x0 === _0x1a6f66 ? void 0x0: _0x1a6f66[_0x36c5d3(0x44d, '$@]b')](function(_0x1eacf4) {return {'pcSign': _0x1eacf4 || '','random': _0x48393f,'timestamp': _0x4085c6};})) || Promise[_0x36c5d3(0x266, 'aO!D')]({});} catch(_0x51361c) {return _0x347d76[_0x36c5d3(0x57d, 'PR!R')][_0x36c5d3(0x4b0, 'JEGu')](_0x36c5d3(0x21d, 'UAr['), {'reason': '' [_0x36c5d3(0x4de, 'gf^x')](_0x51361c)}),Promise[_0x36c5d3(0x629, '7n#R')]({});}
}
定位security.SDK.umd.js
_0x10bdff[_0x79c1ce(0x475, '[wa(')] = function() {var _0x36c5d3 = _0x79c1ce;let _0x479298 = arguments[_0x36c5d3(0x5a9, 'PHXL')] > 0x0 && void 0x0 !== arguments[0x0] ? arguments[0x0] : {};try {var _0x1a6f66;if (!_0x32d6a8[_0x36c5d3(0x4d7, 'l!Uo')][_0x36c5d3(0x3a7, 'yS(K')])return _0x347d76[_0x36c5d3(0x514, 'j7Mt')][_0x36c5d3(0x323, 'a$#V')](_0x36c5d3(0x543, 'XEk5'), {'reason': _0x36c5d3(0x56a, 'an)q')}),Promise[_0x36c5d3(0x3cd, 'aSrl')]({});const _0x48393f = (0x0,_0xbae138[_0x36c5d3(0x5fd, 't[mc')])(), _0x4085c6 = ''[_0x36c5d3(0x536, 'J0hY')](Date[_0x36c5d3(0x37b, 'aO!D')]());let _0x3a0e53 = _0x479298;_0x36c5d3(0x230, 'R90F') != typeof _0x479298 && (_0x3a0e53 = {});const _0x209c05 = _0x4438f3(_0x4438f3({}, _0x3a0e53), {}, {'random': _0x48393f,'timestamp': _0x4085c6}), _0x2c4733 = JSON[_0x36c5d3(0x44c, '3z04')](_0x209c05) + (0x0,_0x167d7d[_0x36c5d3(0x5a5, 'hjcQ')])();return (null === (_0x1a6f66 = (0x0,_0x438ffe[_0x36c5d3(0x40b, 'J0hY')])(_0x2c4733)) || void 0x0 === _0x1a6f66 ? void 0x0 : _0x1a6f66[_0x36c5d3(0x44d, '$@]b')](function(_0x1eacf4) {return {'pcSign': _0x1eacf4 || '','random': _0x48393f,'timestamp': _0x4085c6};})) || Promise[_0x36c5d3(0x266, 'aO!D')]({});} catch (_0x51361c) {return _0x347d76[_0x36c5d3(0x57d, 'PR!R')][_0x36c5d3(0x4b0, 'JEGu')](_0x36c5d3(0x21d, 'UAr['), {'reason': ''[_0x36c5d3(0x4de, 'gf^x')](_0x51361c)}),Promise[_0x36c5d3(0x629, '7n#R')]({});}};const _0x32d6a8 = _0x535b3(0x53), _0xbae138 = _0x535b3(0xfd), _0x167d7d = _0x535b3(0x3ba), _0x438ffe = _0x535b3(0x1b5), _0x347d76 = _0x535b3(0x2a4);},
打断点调试
1.
此时拿到random(_0x48393f)的值
const _0x48393f = (0x0,_0xbae138[_0x36c5d3(0x5fd, 't[mc')])(), _0x4085c6 = ''[_0x36c5d3(0x536, 'J0hY')](Date[_0x36c5d3(0x37b, 'aO!D')]());
根据上述函数,已知函数标量_0x36c5d3
function(_0x457ace, _0x349832) {_0x457ace = _0x457ace - 0x18a;var _0x4c6e1a = _0x19971f[_0x457ace];if (a0_0x457a['pIaRKj'] === undefined) {var _0x2a073e = function(_0x3f86c9) {var _0x153ef8 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x6873a5 = '',_0x41c8da = '';for (var _0x5c7b8d = 0x0,_0x27fa83, _0x3f32c6, _0xef38ce = 0x0; _0x3f32c6 = _0x3f86c9['charAt'](_0xef38ce++);~_0x3f32c6 && (_0x27fa83 = _0x5c7b8d % 0x4 ? _0x27fa83 * 0x40 + _0x3f32c6: _0x3f32c6, _0x5c7b8d++%0x4) ? _0x6873a5 += String['fromCharCode'](0xff & _0x27fa83 >> ( - 0x2 * _0x5c7b8d & 0x6)) : 0x0) {_0x3f32c6 = _0x153ef8['indexOf'](_0x3f32c6);}for (var _0x56ffc6 = 0x0,_0x2026b1 = _0x6873a5['length']; _0x56ffc6 < _0x2026b1; _0x56ffc6++) {_0x41c8da += '%' + ('00' + _0x6873a5['charCodeAt'](_0x56ffc6)['toString'](0x10))['slice']( - 0x2);}return decodeURIComponent(_0x41c8da);};var _0x384326 = function(_0x5a7df8, _0x68a587) {var _0x46b693 = [],_0xb659b6 = 0x0,_0x38697a,_0x299539 = '';_0x5a7df8 = _0x2a073e(_0x5a7df8);var _0x3b9660;for (_0x3b9660 = 0x0; _0x3b9660 < 0x100; _0x3b9660++) {_0x46b693[_0x3b9660] = _0x3b9660;}for (_0x3b9660 = 0x0; _0x3b9660 < 0x100; _0x3b9660++) {_0xb659b6 = (_0xb659b6 + _0x46b693[_0x3b9660] + _0x68a587['charCodeAt'](_0x3b9660 % _0x68a587['length'])) % 0x100,_0x38697a = _0x46b693[_0x3b9660],_0x46b693[_0x3b9660] = _0x46b693[_0xb659b6],_0x46b693[_0xb659b6] = _0x38697a;}_0x3b9660 = 0x0,_0xb659b6 = 0x0;for (var _0x271a01 = 0x0; _0x271a01 < _0x5a7df8['length']; _0x271a01++) {_0x3b9660 = (_0x3b9660 + 0x1) % 0x100,_0xb659b6 = (_0xb659b6 + _0x46b693[_0x3b9660]) % 0x100,_0x38697a = _0x46b693[_0x3b9660],_0x46b693[_0x3b9660] = _0x46b693[_0xb659b6],_0x46b693[_0xb659b6] = _0x38697a,_0x299539 += String['fromCharCode'](_0x5a7df8['charCodeAt'](_0x271a01) ^ _0x46b693[(_0x46b693[_0x3b9660] + _0x46b693[_0xb659b6]) % 0x100]);}return _0x299539;};a0_0x457a['mlzgZn'] = _0x384326,_0x348322 = arguments,a0_0x457a['pIaRKj'] = !![];}var _0x2a2c40 = _0x19971f[0x0],_0x17806e = _0x457ace + _0x2a2c40,_0x4fed40 = _0x348322[_0x17806e];return ! _0x4fed40 ? (a0_0x457a['kveOFi'] === undefined && (a0_0x457a['kveOFi'] = !![]), _0x4c6e1a = a0_0x457a['mlzgZn'](_0x4c6e1a, _0x349832), _0x348322[_0x17806e] = _0x4c6e1a) : _0x4c6e1a = _0x4fed40,_0x4c6e1a;
}
拆解0x48393f构成
- 解析_0x4085c6的生成
_0x4085c6 = ''[_0x36c5d3(0x536, 'J0hY')](Date[_0x36c5d3(0x37b, 'aO!D')]())
继续对function(_0x457ace, _0x349832),即_0x36c5d3函数打断点