diff --git a/猿人学第5题-hook-cookie, AES加密/readme.md b/猿人学第5题-hook-cookie, AES加密/readme.md deleted file mode 100644 index 416fc7a..0000000 --- a/猿人学第5题-hook-cookie, AES加密/readme.md +++ /dev/null @@ -1,275 +0,0 @@ -## 知识点 - -油猴hook是注意 //@run-at document-start 表示页面加载之前 - -hook cookie - -Cookie之所以要新增一个包含固定字符串的判断是因为,cookie经常被修改,这样会断很多次,而我们只想让他断在固定cookie块被设置的时候,因此这么写 - -hook m - - // ==UserScript== - // @name Hook Cookie - // @namespace http://tampermonkey.net/ - // @version 0.1 - // @description pass - // @author ayf - // @run-at document-start - // @match *://match.yuanrenxue.com/* - // @grant none - // ==/UserScript== - - (function () { - 'use strict'; - Object.defineProperty(document, "cookie", { - set:function(val){ - console.log(11111) - if(val.indexOf("m") != -1){ - debugger; - } - return val; - } - }) - })(); - -hook RM4hZBv0dDon443M - - // 方案二 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。 - - // ==UserScript== - // @name Hook Cookie - // @namespace http://tampermonkey.net/ - // @version 0.1 - // @description pass - // @author ayf - // @run-at document-start - // @match *://match.yuanrenxue.com/* - // @grant none - // ==/UserScript== - - (function () { - 'use strict'; - Object.defineProperty(document, "cookie", { - set:function(val){ - console.log(11111) - if(val.indexOf("RM4hZBv0dDon443M") != -1){ - debugger; - } - return val; - } - }) - })(); - -hook window - - // ==UserScript== - // @name Hook window - // @namespace http://tampermonkey.net/ - // @version 0.1 - // @description pass - // @author ayf - // @run-at document-start - // @match *://match.yuanrenxue.com/* - // @grant none - // ==/UserScript== - - (function () { - 'use strict'; - Object.defineProperty(window, "_$ss", { - set:function(val){ - console.log(11111) - console.warn("hook _$ss", val) - debugger; - return val; - } - }) - })(); - -这里 hook "RM4hZBv0dDon443M" 找到 _0x4e96b4['_$ss'] 生成的加密参数 - -![debugger](../img/80.png) - - _0x29dd83 = _$Tk['A' + _$UH[0x32d]][_$UH[0x337] + _$UH[0x336]](_$Ww, _0x4e96b4[_0xc77418('0x6', 'OCbs')], { - 'mode': _$Tk[_$UH[0x339] + _$UH[0x33a]][_$UH[0x2e5]], - 'padding': _$Tk[_$UH[0x33b]][_$UH[0x33c] + _$UH[0x33d]] - }), - _0x4e96b4['_$' + _$UH[0x348][0x1] + _$UH[0x353][0x1]] = _0x29dd83[_$UH[0x1f]](); - -解混淆 - - _0x29dd83 = _$Tk['AES']['encrypt'](_$Ww, _0x4e96b4['_$qF'], { - 'mode': _$Tk['mode']['ECB'], - 'padding': _$Tk['pad']['Pkcs7'] - }); - - ss = _0x29dd83['toString'](); - console.log(ss); - -这里就很熟悉了 AES加密,贴一段加密代码 - - const CryptoJS = require("crypto-js"); - - let value = "123456"; //待加密的字符串 - let secret_value = "af25-87hk-a35v-5"; //密匙 16位 - let iv_value = "af25-87hk-a35v-5"; // 初始向量 initial vector 16位 - - // 密匙和向量处理 - let secret = CryptoJS.enc.Utf8.parse(secret_value); - let iv = CryptoJS.enc.Utf8.parse(iv_value); - - // 加密 - let encrypted = CryptoJS.AES.encrypt(value, secret, { - iv: iv, - // mode 支持 CBC, CFB,CTB,ECB,OFB,OFB, 默认CBC - mode: CryptoJS.mode.CBC, - - // NoPadding, zeropadding 默认Pkcs7 即 pkcs5 - padding: CryptoJS.pad.Pkcs7 - }); - - // 将加密结果转换为字符串 - encrypted = encrypted.toString(); - - // 解密,传入密文,密钥盒向量设置加密与填充模式 - let decrypted = CryptoJS.AES.decrypt(encrypted, secret, { - iv: iv, - // mode 支持 CBC, CFB,CTB,ECB,OFB,OFB, 默认CBC - mode: CryptoJS.mode.CBC, - - // NoPadding, zeropadding 默认Pkcs7 即 pkcs5 - padding: CryptoJS.pad.Pkcs7 - }); - - // 将解密结果转换为utf8字符串 - decrypted = CryptoJS.enc.Utf8.stringify(decrypted); - - console.log(value); - console.log(encrypted); - console.log(decrypted); - -_$Ww是明文, _0x4e96b4['_$qF']是密钥 - -### 测试一下是否是 标准的 CryptoJS js库 - - const CryptoJS = require("crypto-js"); - _$Tk = CryptoJS; - window = global; - _0x4e96b4 = window; - - _0x4e96b4['_$pr'] = [ - "d91dfb71a14b4b8dbab7a83b4db3c930", - "795fef1417a874c0a518372c686c4114", - "4da402cd8daa5909a9dcfdf931f0b269", - "f7071d9eb5acc11a29da60f508c0b048", - "c7740dc325c12af5fd95695e53b1cda9" - ]; - - - _0x4e96b4['_$qF'] = { - "words": [ - 1297373489, - 1299857785, - 1330930554, - 1297373490 - ], - "sigBytes": 16 - }; - - _$Ww = _$Tk['enc']['Utf8']['parse'](_0x4e96b4['_$pr']['toString']()); - _0x29dd83 = _$Tk['AES']['encrypt'](_$Ww, _0x4e96b4['_$qF'], { - 'mode': _$Tk['mode']['ECB'], - 'padding': _$Tk['pad']['Pkcs7'] - }); - - ss = _0x29dd83['toString'](); - console.log(ss); - -结果是和浏览器执行的一样 - - ywOWQQGsmlZnSRHpvOlsrLICIWP6VMt8UIHjTAjAkll06leu+va5tUF+blZKgfe2Mo64p2Gj/BC1icBOTqxDYpjF3RuhCvddBo6uEXzqkMpnk9ReYWyfFmCgkAsgTD8aOEwbL+AhReaAp/90AsvN2bFF2NmhpP2FUDAIUTnl9zIBicVGN97W/CjLNJVhEfTvif6zf7StT68TwDwgNgnj8VfaN47rQFftK7oApF/5CA4= - - -### 先解决密钥的问题 - -顺藤摸瓜 _0x4e96b4['_$qF'] - - // 密钥 - _0x35bb1d = Date; - function _0x2d5f5b() { - return new _0x35bb1d()['valueOf'](); - } - _$yw = _0x2d5f5b()['toString'](); - _0x4e96b4['_$is'] = _$yw; - _0x4e96b4['_$qF'] = CryptoJS['enc']['Utf8']['parse'](_0x4e96b4['btoa'](_0x4e96b4['_$is'])['slice'](0, 16)); - -### 解决明文 _$Ww - -继续看代码 - - _$Ww = _$Tk['enc']['Utf8']['parse'](_0x4e96b4['_$pr']['toString']()); - -实例代码 - - let secret = CryptoJS.enc.Utf8.parse(secret_value); - -处理明文 _$Ww - - _$Ww = _$Tk['enc']['Utf8']['parse'](_0x4e96b4['_$pr']['toString']()); - -搜索 _0x4e96b4['_$pr'] 打上断点 - -![debugger](../img/80.png) - -找到 _$Wa 生成方法 - - _$Wa = _0x12eaf3(); - _0x3d0f3f[_$Fe] = 'm=' + _0x474032(_$Wa) + ';\x20path=/'; - _0x4e96b4['_$pr']['push'](_0x474032(_$Wa)); - -开始扣代码 - - const CryptoJS = require("crypto-js"); - _$Tk = CryptoJS; - window = global; - _0x4e96b4 = window; - - _0x4e96b4['_$pr'] = []; - - _$Wa = 1653016793000; - // _0x3d0f3f[_$Fe] = 'm=' + _0x474032(_$Wa) + ';\x20path=/'; - _0x4e96b4['_$pr']['push'](_0x474032(_$Wa)); - - _$Ww = _$Tk['enc']['Utf8']['parse'](_0x4e96b4['_$pr']['toString']()); - _0x29dd83 = _$Tk['AES']['encrypt'](_$Ww, _0x4e96b4['_$qF'], { - 'mode': _$Tk['mode']['ECB'], - 'padding': _$Tk['pad']['Pkcs7'] - }); - - ss = _0x29dd83['toString'](); - console.log(ss); - -### 报错 ReferenceError: history is not defined - -window.history属性指向History对象,它表示当前窗口的浏览历史。 - - https://www.jianshu.com/p/bbc2f9552c06 - -history 是在浏览器里才有的函数 - - try { - op = _0x4e96b4['$_zw'][_$UH[0x6c]]; - } catch (_0x58af26) { - var _0x3b7935 = 0x0; - for (var _0x1badc3 = 0x0; _0x1badc3 < 0xf4240; _0x1badc3++) { - _0x3b7935 = _0x3b7935 + _0x1badc3[_$UH[0x1f]](); - history['pushState'](0x0, 0x0, _0x3b7935); - } - } - -这里的 try catch 语法,对 op = _0x4e96b4['$_zw'][_$UH[0x6c]]; 进行断点 - - op = 26; - -这里写死,直接过! - - diff --git a/猿人学第5题-hook-cookie, AES加密/案例.js b/猿人学第5题-hook-cookie, AES加密/案例.js deleted file mode 100644 index e69de29..0000000 diff --git a/猿人学第5题-js 混淆-乱码增强/RM4hZBv0dDon443M.js b/猿人学第5题-js 混淆-乱码增强/RM4hZBv0dDon443M.js new file mode 100644 index 0000000..5e989cc --- /dev/null +++ b/猿人学第5题-js 混淆-乱码增强/RM4hZBv0dDon443M.js @@ -0,0 +1,40 @@ +const CryptoJS = require("crypto-js"); +window = global; +_0x4e96b4 = window; + +global.Buffer = global.Buffer || require('buffer').Buffer; + +if (typeof btoa === 'undefined') { + global.btoa = function (str) { + return new Buffer.from(str).toString('base64'); + }; +} + +if (typeof atob === 'undefined') { + global.atob = function (b64Encoded) { + return new Buffer.from(b64Encoded, 'base64').toString(); + }; +} + + +function RM4hZBv0dDon443M(pr, dada_time){ + _$Ww = CryptoJS['enc']['Utf8']['parse'](pr['toString']()); + _0x4e96b4['_$qF'] = CryptoJS['enc']['Utf8']['parse'](_0x4e96b4['btoa'](dada_time)['slice'](0, 16)); + _0x29dd83 = CryptoJS['AES']['encrypt'](_$Ww, _0x4e96b4['_$qF'], { + 'mode': CryptoJS['mode']['ECB'], + 'padding': CryptoJS['pad']['Pkcs7'] + }); + return _0x29dd83['toString']() +} + +pr = [ + "b2148c31fb09c98f90ce78424d6cdd58", + "3be88c860ec6fc7e4e33fe7a167d02dd", + "0be14faf5221bbdefdede418b077ca60", + "9c2b5781ba44e92f5e4b3f4d7951b899", + "08aca52cf82f1e26cc1f4dd35db9795e" +]; + +dada_time = "1678253268764"; + +console.log(RM4hZBv0dDon443M(pr, dada_time)); \ No newline at end of file diff --git a/猿人学第5题-js 混淆-乱码增强/readme.md b/猿人学第5题-js 混淆-乱码增强/readme.md new file mode 100644 index 0000000..dc3d2fe --- /dev/null +++ b/猿人学第5题-js 混淆-乱码增强/readme.md @@ -0,0 +1,4 @@ +## 知识点 + + + diff --git a/猿人学第5题-js 混淆-乱码增强/案例.js b/猿人学第5题-js 混淆-乱码增强/案例.js new file mode 100644 index 0000000..07d0fa7 --- /dev/null +++ b/猿人学第5题-js 混淆-乱码增强/案例.js @@ -0,0 +1,971 @@ +const CryptoJS = require("crypto-js"); + +window = global; +document = {}; +var _$Wa = 1678247136000; +_0x4e96b4 = window; +_0x4e96b4['_$pr'] = []; +_0x1171c8 = 1732584193; +_0x4dae05 = -271733879; +_0x183a1d = -1732584194; +_0xcfa373 = 271733878; +b64pad = 1; +_0x30bc70 = String; +_0x3912f2 = Error; +_0x4d2d2c = Array; +_0x109910 = Math; +_0xff7e93 = parseInt; +_0x35bb1d = Date; +_0x3d0f3f = document; + _0x5cd506 = Object; +_0x3bdc68 = unescape; +_0x1ec3c0 = encodeURIComponent; +_0x3b2c8e = Function; +var _0xceb4b2 = [ + "name", + "setAttribute", + "type", + "href", + "getAttribute", + "action", + "call", + "string", + "prototype", + "slice", + "$_fpn1", + "splice", + "apply", + "ActiveXObject", + "result", + "charCodeAt", + "button", + "send", + "form", + "body", + "mousemove", + "hasOwnProperty", + "hostname", + "location", + "open", + "split", + "setInterval", + "https:", + "click", + "concat", + "method", + "toString", + "nodeType", + "origin", + "floor", + "port", + "$_nd", + "HTMLGenericElement", + "tagName", + "cookie", + "$_JQnh", + "showModalDialog", + "removeChild", + "keyCode", + "parentNode", + "getTime", + "readyState", + "exec", + "pathname", + "search", + "test", + "iframe", + "setTimeout", + "HTMLFormElement", + "visibility", + "appendChild", + "addEventListener", + "indexedDB", + "script", + "onreadystatechange", + "eval", + "innerHTML", + "value", + "EkcP", + "localStorage", + "onsubmit", + "object", + "protocol", + "content", + "cloneNode", + "indexOf", + "assign", + "write", + "document", + "removeEventListener", + "round", + "style", + "$_vvCI", + "replace", + "function", + "MicroMessenger", + "userAgent", + "while", + "onclick", + "input", + "ceil", + "Math", + "hidden", + "target", + "load", + "mbsj{yshcf", + "number", + "createElement", + "getElementsByTagName", + "getElementById", + "attachEvent", + "$_fh0", + "clientData", + "submit", + "timeStamp", + "fonts", + "Only one variable declaration allowed in for..in loop", + "transient", + "arity", + "disabled", + "typeof", + "charset", + "super", + "length", + "#f82", + "Msxml2.XMLHTTP.3.0", + "toDataURL", + "ocr_rdytwuRcrraa{exu|v", + "applicationCache", + "multipart/form-data", + "var getAttribute=function(name){return cur_ele.getAttribute(name);};", + "attributes", + "[object Array]", + "pushNotification", + "void", + "TK_STRING", + "0000", + "attrVertex", + "public", + "stopPropagation", + "z_:jqjsnzr_0+,_9jhtwijwG_xjqjsnzrGhfqq:jqjsnzr", + "$_f0", + "hash", + "cellular", + "FSSBB", + "acceleration", + "transferChannel", + "nEvr}C}rlve", + "true", + "createObjectStore", + "Msxml2.XMLHTTP.5.0", + "removeAttribute", + "plugins", + "}__ftkxgt_gxcnwcvgD__ygdftkxgt_gxcnwcvgD__ugngpkwo_gxcnwcvgD__hzftkxgt_gxcnwcvgD__ftkxgt_wpytcrrgfD__ygdftkxgt_wpytcrrgfD__ugngpkwo_wpytcrrgfD__hzftkxgt_wpytcrrgfD__ygdftkxgt_uetkrv_hwpeD__ygdftkxgt_uetkrv_hp", + "try{return (window instanceof Window);}catch(e){}", + "Msxml2.ServerXMLHTTP", + "colorDepth", + "t13=spwcpatnl(Atmpaly :lnstyp Byt(0zzwulgg(Cp}olyl(5pwcpatnl ;pbp 9A =}z TV Asty(alszxl(94 @xl}a_5 ap~a ?prbwl}(16;=}zNwtrsa(5pwcpatnl 9A UT 9trsa 2eapyopo(5pwcp:_6yotl(@20?zmzaz9trsa /zwo(t5ptNVQ@ 9trsa(9tyo~pf qz} @lx~byr(.? 0}f~alwspt 1/(@lx~byr @ly~ :potbx(~lx~byrN~ly~NybxUV(sly~N~ly~Nmzwo(9bxtyzb~_@n}t{a(@@A 0zyopy~po(@lx~byr1pclylrl}t?prbwl}(.yulw :lwlflwlx :;(@lx~byrAsltIap~aJ(3G9lyAtyr5ptN:N4/RYQTQ(5pm}pd t5ptNXV@ /zwo(;zaz@ly~:flyxl}Gldrft /zwo(fbyz~{}zNmwlnv(spwcpNypbpNyz}xlw(9bxtyzb~_@p}tq(A: :zslyaft5ptNUQ@ 9trsae(wrN~ly~N~p}tq(1lyntyr @n}t{a /zwo(opqlbwa(~pnN}zmzazNwtrsa(0zwz}<@B6N?prbwl}(ap~a ?prbwl}(Alxtw @lyrlx :; /zwo(3GFtyr/tEtyr@sbN@RW(?zmzaz;bxT9 9trsa(xzyz~{lnpoNdtasN~p}tq~(~lx~byrN~ly~NybxTV(0zzw ulgg(@lx~byr;pz;bxNT9(@AEtyrvlt(@n}ppy@ly~:zyz(13=DlDlDVN4/(@lx~byr@ly~;bxNT9 9trsa(/lyrwl @lyrlx :;(4b}xbvst @lyrlx :;(@20?zmzaz9trsa(sfqzye}lty(:Ftyr5pt4/RYQTQ0N/zwo(~lx~byrN~ly~Nwtrsa(5pwcpatnl 9A WV :potbx(1}zto @ly~ 3lwwmlnv(?zmzaz Ap~aR /zwo(;zaz @ly~ :flyxl} /zwo(~ly~N~p}tqNnzyopy~poNnb~azx(@lx~byr;pz;bxNTA(@lx~byr @ly~ ;bxTV(xzyz~{lnp(A9 :zslyaf :potbx(spwcpNypbpNxpotbx(9A5F@G8(?zmzaz 0zyopy~po nb~azxp /zwo(:flyxl}T(1}zto @ly~ 1pclylrl}t(@slz;c_{}pc(~lx~byrNypzNybxT9(3G9lyAtyr5ptN29N4/8(fbyz~(~lx~byrNypzNybxTA(Atxp~ ;pd ?zxly(spwcpNypbpNmzwo(yzazN~ly~NnuvN}prbwl}(;zaz @ly~ 4b}xbvst B6 /zwo(16;=}zNmwlnv(3G9lyAtyr5ptN29N4/RYQTQ(@@A Ctpaylxp~p :potbx(?zmzaz 0zyopy~po 9trsa(@@A Ctpaylxp~p /zwo(.? 17N88(1}zto @ly~ @2:0(;zaz @ly~ :flyxl} B6(0zxtyr @zzy(:Fb{{f =?0 :potbx(?z~pxl}f(9zsta 4bul}lat(?zmzaz 0zyopy~po nb~azx /zwo(3G9lyAtyr5pt@N?N4/(5pwcpatnl ;pbp FJ:_", + "bgsound", + "iEgr9hh{wjwfy{", + "position", + "case", + "pDzjatS5tetrex~}", + "touchend", + "refresh", + "$bmF0aXZlRmlVyUHJ", + "prop", + "lastIndexOf", + "callback", + "null", + "Unenclosed string.", + "dNrf~hQfjb+Nrf~hQfjb", + "bRnfnt", + "getAttribLocation", + "JSON", + "nodeValue", + "Gamepad", + "beta", + "__anchor__", + "offsetLeft", + "kq\\iT\\Qduj}ly wexy\\]\\iTs", + "parse", + "data", + "$_fr", + "package", + "rows", + "Object.InjectedScript.evaluate", + "opener", + "mouseup", + "shenjian", + "debugger", + "ethernet", + "$_cDro", + "TEMPORARY", + "{{ifhvmziv", + "replaceChild", + "POST", + "numItems", + "capture", + "document-fragment", + "font", + "firstChild", + "fromCharCode", + "webkitIndexedDB", + "PointerEvent", + "webkitRequestFileSystem", + "charAt", + "description", + "~tqj_ipplfeCnp{Xojnbujpo6ubsu7jnfCnp{,oefyfe[YCnp{5frvftuXojnbujpo)sbnf", + "getBattery", + "kIM9jbXIM9jb", + "absolute", + "responseText", + "cookieEnabled", + "{rixwtevoivF__rwF__rw[ttirh:i|xFis=if(vs{wiv", + "final", + "preload", + "Keyboard", + "bluetooth", + "cancelBubble", + "execScript", + "try{return __filename;}catch(e){}", + "var cur_ele = this;", + "with", + "h__p|y{kbo|k_|oxenxm|", + "status", + "toFixed", + "display", + "substr", + "[null] is not an object", + "x*jyv9-/K9-/", + "Z8XHJJY.bmF0aXZlRmlVyUHJ()", + "setItem", + "bD{]ed_", + "post", + "HTMLElement", + "text/html", + "", + "mouseDown", + "overrideMimeType", + "outerHTML", + "FSSBA", + "host", + "itemSize", + "useProgram", + "g|lcp}l[}pyfoyn}", + "escape", + "ucolus~bs}slsvs~emrkxqo", + "VERTEX_SHADER", + "MediaStreamTrack", + "Open", + "touches", + "r#!#c #rrrErfcic9cbc%c&o;o|ExE3EQx?x{tqtktitAtVtvtNhPh9W[Jmi^i{HIHjH/A~prpopxpg1E1BsgVDVEV8V4YqY K9K%R{FBF.F|M3MQMPMNMaM^M*M>M{M]QOQ2Q)Q.Q|wswYwMw%w*8l8D8U8I8f8O828_8Z8@8*8=I5I^Ibkb%b)b?vovhvPv9v7vSv6LRL(L NmN{N]N jmjojxjsjKjbjj->-}-]7G7Z7dXcX7X;X|BkBDBUBRB8BjB)aYaGa+a/S/S]n~n&u5u^000C0y0Z0@0&0)0~.Y.v.z?W?N/a/{:9:b:S:}{2[n]F#r]#rq9rqvrq7rqBrq}rq|rrkrrDrrJrrYrrurrCrcprcsrcRrcIrcfrcOrcNrczrcarcurcgrcerc)rc?rc:rc{rkqrl4rldrDkrDWrD1rDKrDOrDbrDLrDnrDTrDgrD5rD@r2nrborbxrb6rbyrb(rb+rb]rvqrLhrLvrLrj{rS6rS4rS*rn$rn+rnEs:Es{EYvEYxmgq~ 5T 1{zb~{x", + "i GHJ[", + "Microsoft.XMLHTTP", + "break", + "reset", + "isFinite", + "}7jqemycxg*ncujF7jqemycxg*ncuj", + "ownerElement", + "msIndexedDB", + "getAllResponseHeaders", + "abort", + "AddEventListener", + "keydown", + "touchmove", + "complete", + "getParameter", + "select-", + "clear", + "accelerationIncludingGravity", + "createBuffer", + "Infinity", + "link", + "OBJECT", + "mozRTCPeerConnection", + "$_f1", + "$b_onBridgeReady", + "onload", + "b;naidbs hc<\"aa71ji\" bk~rrhc<\"bkrhc92/4/e708,87a4,00be,aa71,//~~//acbd/a\" vhcsg<\"/ow\" gdhfgs<\"/ow\"=;.naidbs=", + "history", + "enctype", + "private", + "FLOAT", + ", expected ", + "createShader", + "dblclick", + "stack", + "touchstart", + "getClientDataInCookie", + "sessionStorage", + "jxvx}z_", + "bufferData", + "readwrite", + "decodeURIComponent", + "$b_onNativeResponse", + "http:", + "bindBuffer", + "toUpperCase", + "vertexPosArray", + "responseBody", + "head", + "constructor", + " height=6 width=1 type=application/x-shockwave-flash src=", + "contextmenu", + "getServerDataInCookie", + "enum", + "else", + "windows-1252", + "__#classType", + "localDescription", + "short", + "none", + "pixelDepth", + "vlaue", + "FRAGMENT_SHADER", + "FileReader", + "_DIV", + "mmmmmmmmmmmlliii", + "except", + "HTMLEmbedElement", + "$_YWTU", + "setClientData", + "getExtension" +] + + +global.Buffer = global.Buffer || require('buffer').Buffer; + +if (typeof btoa === 'undefined') { + global.btoa = function (str) { + return new Buffer.from(str).toString('base64'); + }; +} + +if (typeof atob === 'undefined') { + global.atob = function (b64Encoded) { + return new Buffer.from(b64Encoded, 'base64').toString(); + }; +} + +function _0x499969(_0x82fe7e) { + var _0x5bdda4, _0x322a73, _0xd0b5cd = '0123456789abcdef', _0x21f411 = ''; + for (_0x322a73 = 0x0; _0x322a73 < _0x82fe7e[_$UH[0x6c]]; _0x322a73 += 0x1) + _0x5bdda4 = _0x82fe7e[_$UH[0xf]](_0x322a73), + _0x21f411 += _0xd0b5cd['charAt'](_0x5bdda4 >>> 0x4 & 0xf) + _0xd0b5cd['charAt'](0xf & _0x5bdda4); + return _0x21f411; +} + +function _0x37614a(_0x32e7c1) { + return _0x499969(_0x41873d(_0x32e7c1)); +} + +function _0x474032(_0x233f82) { + return _0x37614a(_0x233f82); +} + +function _0x41873d(_0x5a6962) { + return _0x1ee7ec(_0x2b8a17(_0x5a6962)); +} + +function _0x1ee7ec(_0x206333) { + return _0x12b47d(_0x11a7a2(_0x35f5f2(_0x206333), 0x8 * _0x206333[_$UH[0x6c]])); +} + +function _0x2b8a17(_0x36f847) { + return unescape(encodeURIComponent(_0x36f847)); +} + +function _0x12b47d(_0x149183) { + var _0xabbcb3, _0x1145c3 = '', _0x4fce58 = 0x20 * _0x149183[_$UH[0x6c]]; + for (_0xabbcb3 = 0x0; _0xabbcb3 < _0x4fce58; _0xabbcb3 += 0x8) + _0x1145c3 += _0x30bc70[_$UH[0x114]](_0x149183[_0xabbcb3 >> 0x5] >>> _0xabbcb3 % 0x20 & 0xff); + return _0x1145c3; +} +function _0xaaef84(_0xaf3112, _0x2a165a, _0x532fb4, _0x10aa40, _0x41c4e7, _0x1cb4da) { + return _0x12e4a8(_0x3634fc(_0x12e4a8(_0x12e4a8(_0x2a165a, _0xaf3112), _0x12e4a8(_0x10aa40, _0x1cb4da)), _0x41c4e7), _0x532fb4); +} +function _0x12e4a8(_0x7542c8, _0x5eada0) { + var _0x41f81f = (0xffff & _0x7542c8) + (0xffff & _0x5eada0); + return (_0x7542c8 >> 0x10) + (_0x5eada0 >> 0x10) + (_0x41f81f >> 0x10) << 0x10 | 0xffff & _0x41f81f; +} +function _0x3634fc(_0x5803ba, _0x1ce5b2) { + return _0x5803ba << _0x1ce5b2 | _0x5803ba >>> 0x20 - _0x1ce5b2; +} +function _0x3180ec(_0x401705, _0x240e6a, _0x56b131, _0x5a5c20, _0x1f2a72, _0x2bfc1, _0x19741a) { + return _0xaaef84(_0x240e6a & _0x5a5c20 | _0x56b131 & ~_0x5a5c20, _0x401705, _0x240e6a, _0x1f2a72, _0x2bfc1, _0x19741a); +} +var _0x3a316b = 'T'; +var _0x390c66; +function _0x32032f(_0x520fdf, _0x13921d, _0x1af9d5, _0x4a2311, _0xb6d40a, _0x1d58da, _0x361df0) { + return _0xaaef84(_0x13921d ^ _0x1af9d5 ^ _0x4a2311, _0x520fdf, _0x13921d, _0xb6d40a, _0x1d58da, _0x361df0); +} +function _0x48d200(_0x4b706e, _0x3c3a85, _0x111154, _0x311f9f, _0x5439cf, _0x38cac7, _0x26bd2e) { + return _0xaaef84(_0x3c3a85 & _0x111154 | ~_0x3c3a85 & _0x311f9f, _0x4b706e, _0x3c3a85, _0x5439cf, _0x38cac7, _0x26bd2e); +} +var _0x53308f = 0x1; +var _0x31ef9c = 0x0; +var _0x312cd6; +function _0x4b459d(_0x8d8f2a, _0x406d34, _0x53e7d7, _0x26c827, _0xec41ea, _0x52dead, _0x3f66e7) { + return _0xaaef84(_0x53e7d7 ^ (_0x406d34 | ~_0x26c827), _0x8d8f2a, _0x406d34, _0xec41ea, _0x52dead, _0x3f66e7); +} +function _0x11a7a2(_0x193f00, _0x1cfe89) { + _0x193f00[_0x1cfe89 >> 0x5] |= 0x80 << _0x1cfe89 % 0x20, + _0x193f00[0xe + (_0x1cfe89 + 0x40 >>> 0x9 << 0x4)] = _0x1cfe89; + try { + var _0x42fb36 = _0x4e96b4[_$UH[0x260]][_$UH[0x8]]['DONE'] * 0x4; + } catch (_0x1b1b35) { + var _0x42fb36 = 0x1; + } + // try { + // _0x4e96b4['$_z2'][0x0] = 'Q'; + // } catch (_0x4c574d) { + // try { + // op = _0x4e96b4['$_zw'][_$UH[0x6c]]; + // } catch (_0x58af26) { + // var _0x3b7935 = 0x0; + // for (var _0x1badc3 = 0x0; _0x1badc3 < 0xf4240; _0x1badc3++) { + // _0x3b7935 = _0x3b7935 + _0x1badc3[_$UH[0x1f]](); + // history['pushState'](0x0, 0x0, _0x3b7935); + // } + // } + // if (op > 0x14) { + // eval('b64pad = _0x4e96b4[\'$_zw\'][9][\'length\'];'); + // } else if (op < 0xa) { + // _0x4e96b4['$_zw'] = [0x1, 0x8, 0x2, 0x4, 0x17, 0x2d, 0x8, 0xf, 0x51, 0x44, 0xd, 0x48, 0x46]; + // } + // } + var _0x1badc3, _0x38ca59, _0x431764, _0x43f1b4, _0x5722c0, _0x3e0c38 = _0x1171c8, _0xdb4d2c = _0x4dae05, + _0x1724c5 = _0x183a1d, _0x257ec6 = _0xcfa373; + try { + if (_0x4e96b4['_$6_']) { + } else { + _0x4e96b4['_$6_'] = 0x20dc5d57f; + } + } catch (_0x15bf3f) { + _0x4e96b4['_$6_'] = 0x2421603; + } + for (_0x1badc3 = 0x0; _0x1badc3 < _0x193f00[_$UH[0x6c]]; _0x1badc3 += _0x42fb36) + _0x38ca59 = _0x3e0c38, + _0x431764 = _0xdb4d2c, + _0x43f1b4 = _0x1724c5, + _0x5722c0 = _0x257ec6, + _0x3e0c38 = _0x48d200(_0x3e0c38, _0xdb4d2c, _0x1724c5, _0x257ec6, _0x193f00[_0x1badc3], 0x7, 0x7d60c), + _0x257ec6 = _0x48d200(_0x257ec6, _0x3e0c38, _0xdb4d2c, _0x1724c5, _0x193f00[_0x1badc3 + 0x1], 0xc, _0x4e96b4['_$6_']), + _0x1724c5 = _0x48d200(_0x1724c5, _0x257ec6, _0x3e0c38, _0xdb4d2c, _0x193f00[_0x1badc3 + 0x2], 0x11, 0x242070db), + _0xdb4d2c = _0x48d200(_0xdb4d2c, _0x1724c5, _0x257ec6, _0x3e0c38, _0x193f00[_0x1badc3 + 0x3], 0x16, -0x3e423112), + _0x3e0c38 = _0x48d200(_0x3e0c38, _0xdb4d2c, _0x1724c5, _0x257ec6, _0x193f00[_0x1badc3 + 0x4], 0x7, -0xa83f051), + _0x257ec6 = _0x48d200(_0x257ec6, _0x3e0c38, _0xdb4d2c, _0x1724c5, _0x193f00[_0x1badc3 + 0x5], 0xc, 0x4787c62a), + _0x1724c5 = _0x48d200(_0x1724c5, _0x257ec6, _0x3e0c38, _0xdb4d2c, _0x193f00[_0x1badc3 + 0x6], 0x11, -0x57cfb9ed), + _0xdb4d2c = _0x48d200(_0xdb4d2c, _0x1724c5, _0x257ec6, _0x3e0c38, _0x193f00[_0x1badc3 + 0x7], 0x16, -0x2b96aff), + _0x3e0c38 = _0x48d200(_0x3e0c38, _0xdb4d2c, _0x1724c5, _0x257ec6, _0x193f00[_0x1badc3 + 0x8], 0x7, 0x698098d8), + _0x257ec6 = _0x48d200(_0x257ec6, _0x3e0c38, _0xdb4d2c, _0x1724c5, _0x193f00[_0x1badc3 + 0x9], 0xc, -0x74bb0851), + _0x1724c5 = _0x48d200(_0x1724c5, _0x257ec6, _0x3e0c38, _0xdb4d2c, _0x193f00[_0x1badc3 + 0xa], 0x11, -0xa44f), + _0xdb4d2c = _0x48d200(_0xdb4d2c, _0x1724c5, _0x257ec6, _0x3e0c38, _0x193f00[_0x1badc3 + 0xb], 0x16, -0x76a32842), + _0x3e0c38 = _0x48d200(_0x3e0c38, _0xdb4d2c, _0x1724c5, _0x257ec6, _0x193f00[_0x1badc3 + 0xc], 0x7, 0x6b901122), + _0x257ec6 = _0x48d200(_0x257ec6, _0x3e0c38, _0xdb4d2c, _0x1724c5, _0x193f00[_0x1badc3 + 0xd], 0xc, -0x2678e6d), + _0x1724c5 = _0x48d200(_0x1724c5, _0x257ec6, _0x3e0c38, _0xdb4d2c, _0x193f00[_0x1badc3 + 0xe], 0x11, -0x5986bc72), + _0xdb4d2c = _0x48d200(_0xdb4d2c, _0x1724c5, _0x257ec6, _0x3e0c38, _0x193f00[_0x1badc3 + 0xf], 0x16, 0x49b40821), + _0x3e0c38 = _0x3180ec(_0x3e0c38, _0xdb4d2c, _0x1724c5, _0x257ec6, _0x193f00[_0x1badc3 + 0x1], 0x5, -0x9e1da9e), + _0x257ec6 = _0x3180ec(_0x257ec6, _0x3e0c38, _0xdb4d2c, _0x1724c5, _0x193f00[_0x1badc3 + 0x6], 0x9, -0x3fbf4cc0), + _0x1724c5 = _0x3180ec(_0x1724c5, _0x257ec6, _0x3e0c38, _0xdb4d2c, _0x193f00[_0x1badc3 + 0xb], 0xe, 0x265e5a51), + _0xdb4d2c = _0x3180ec(_0xdb4d2c, _0x1724c5, _0x257ec6, _0x3e0c38, _0x193f00[_0x1badc3], 0x14, -0x16493856), + _0x3e0c38 = _0x3180ec(_0x3e0c38, _0xdb4d2c, _0x1724c5, _0x257ec6, _0x193f00[_0x1badc3 + 0x5], 0x5, -0x29d0efa3), + _0x257ec6 = _0x3180ec(_0x257ec6, _0x3e0c38, _0xdb4d2c, _0x1724c5, _0x193f00[_0x1badc3 + 0xa], 0x9, 0x2441453), + _0x1724c5 = _0x3180ec(_0x1724c5, _0x257ec6, _0x3e0c38, _0xdb4d2c, _0x193f00[_0x1badc3 + 0xf], 0xe, _0x4e96b4['_$tT']), + _0xdb4d2c = _0x3180ec(_0xdb4d2c, _0x1724c5, _0x257ec6, _0x3e0c38, _0x193f00[_0x1badc3 + 0x4], 0x14, _0x4e96b4['_$Jy']), + _0x3e0c38 = _0x3180ec(_0x3e0c38, _0xdb4d2c, _0x1724c5, _0x257ec6, _0x193f00[_0x1badc3 + 0x9], 0x5, 0x21e1cde6), + _0x257ec6 = _0x3180ec(_0x257ec6, _0x3e0c38, _0xdb4d2c, _0x1724c5, _0x193f00[_0x1badc3 + 0xe], 0x9, -0x3cc8aa0a), + _0x1724c5 = _0x3180ec(_0x1724c5, _0x257ec6, _0x3e0c38, _0xdb4d2c, _0x193f00[_0x1badc3 + 0x3], 0xe, -0xb2af279), + _0xdb4d2c = _0x3180ec(_0xdb4d2c, _0x1724c5, _0x257ec6, _0x3e0c38, _0x193f00[_0x1badc3 + 0x8], 0x14, 0x455a14ed), + _0x3e0c38 = _0x3180ec(_0x3e0c38, _0xdb4d2c, _0x1724c5, _0x257ec6, _0x193f00[_0x1badc3 + 0xd], 0x5, -0x5caa8e7b), + _0x257ec6 = _0x3180ec(_0x257ec6, _0x3e0c38, _0xdb4d2c, _0x1724c5, _0x193f00[_0x1badc3 + 0x2], 0x9, -0x3105c08), + _0x1724c5 = _0x3180ec(_0x1724c5, _0x257ec6, _0x3e0c38, _0xdb4d2c, _0x193f00[_0x1badc3 + 0x7], 0xe, 0x676f02d9), + _0xdb4d2c = _0x3180ec(_0xdb4d2c, _0x1724c5, _0x257ec6, _0x3e0c38, _0x193f00[_0x1badc3 + 0xc], 0x14, -0x72d5b376), + _0x3e0c38 = _0x32032f(_0x3e0c38, _0xdb4d2c, _0x1724c5, _0x257ec6, _0x193f00[_0x1badc3 + 0x5], 0x4, -0x241282e), + _0x257ec6 = _0x32032f(_0x257ec6, _0x3e0c38, _0xdb4d2c, _0x1724c5, _0x193f00[_0x1badc3 + 0x8], 0xb, -0x788e097f), + _0x1724c5 = _0x32032f(_0x1724c5, _0x257ec6, _0x3e0c38, _0xdb4d2c, _0x193f00[_0x1badc3 + 0xb], 0x10, 0x6d9d6122), + _0xdb4d2c = _0x32032f(_0xdb4d2c, _0x1724c5, _0x257ec6, _0x3e0c38, _0x193f00[_0x1badc3 + 0xe], 0x17, -0x21ac7f4), + _0x3e0c38 = _0x32032f(_0x3e0c38, _0xdb4d2c, _0x1724c5, _0x257ec6, _0x193f00[_0x1badc3 + 0x1], 0x4, -0x5b4115bc * b64pad), + _0x257ec6 = _0x32032f(_0x257ec6, _0x3e0c38, _0xdb4d2c, _0x1724c5, _0x193f00[_0x1badc3 + 0x4], 0xb, 0x4bdecfa9), + _0x1724c5 = _0x32032f(_0x1724c5, _0x257ec6, _0x3e0c38, _0xdb4d2c, _0x193f00[_0x1badc3 + 0x7], 0x10, -0x944b4a0), + _0xdb4d2c = _0x32032f(_0xdb4d2c, _0x1724c5, _0x257ec6, _0x3e0c38, _0x193f00[_0x1badc3 + 0xa], 0x17, -0x41404390), + _0x3e0c38 = _0x32032f(_0x3e0c38, _0xdb4d2c, _0x1724c5, _0x257ec6, _0x193f00[_0x1badc3 + 0xd], 0x4, 0x289b7ec6), + _0x257ec6 = _0x32032f(_0x257ec6, _0x3e0c38, _0xdb4d2c, _0x1724c5, _0x193f00[_0x1badc3], 0xb, -0x155ed806), + _0x1724c5 = _0x32032f(_0x1724c5, _0x257ec6, _0x3e0c38, _0xdb4d2c, _0x193f00[_0x1badc3 + 0x3], 0x10, -0x2b10cf7b), + _0xdb4d2c = _0x32032f(_0xdb4d2c, _0x1724c5, _0x257ec6, _0x3e0c38, _0x193f00[_0x1badc3 + 0x6], 0x17, 0x2d511fd9), + _0x3e0c38 = _0x32032f(_0x3e0c38, _0xdb4d2c, _0x1724c5, _0x257ec6, _0x193f00[_0x1badc3 + 0x9], 0x4, -0x3d12017), + _0x257ec6 = _0x32032f(_0x257ec6, _0x3e0c38, _0xdb4d2c, _0x1724c5, _0x193f00[_0x1badc3 + 0xc], 0xb, -0x1924661b), + _0x1724c5 = _0x32032f(_0x1724c5, _0x257ec6, _0x3e0c38, _0xdb4d2c, _0x193f00[_0x1badc3 + 0xf], 0x10, 0x1fa27cf8), + _0xdb4d2c = _0x32032f(_0xdb4d2c, _0x1724c5, _0x257ec6, _0x3e0c38, _0x193f00[_0x1badc3 + 0x2], 0x17, -0x3b53a99b), + _0x3e0c38 = _0x4b459d(_0x3e0c38, _0xdb4d2c, _0x1724c5, _0x257ec6, _0x193f00[_0x1badc3], 0x6, -0xbd6ddbc), + _0x257ec6 = _0x4b459d(_0x257ec6, _0x3e0c38, _0xdb4d2c, _0x1724c5, _0x193f00[_0x1badc3 + 0x7], 0xa, 0x432aff97), + _0x1724c5 = _0x4b459d(_0x1724c5, _0x257ec6, _0x3e0c38, _0xdb4d2c, _0x193f00[_0x1badc3 + 0xe], 0xf, -0x546bdc59), + _0xdb4d2c = _0x4b459d(_0xdb4d2c, _0x1724c5, _0x257ec6, _0x3e0c38, _0x193f00[_0x1badc3 + 0x5], 0x15, -0x36c5fc7), + _0x3e0c38 = _0x4b459d(_0x3e0c38, _0xdb4d2c, _0x1724c5, _0x257ec6, _0x193f00[_0x1badc3 + 0xc], 0x6, 0x655b59c3), + _0x257ec6 = _0x4b459d(_0x257ec6, _0x3e0c38, _0xdb4d2c, _0x1724c5, _0x193f00[_0x1badc3 + 0x3], 0xa, -0x70ef89ee), + _0x1724c5 = _0x4b459d(_0x1724c5, _0x257ec6, _0x3e0c38, _0xdb4d2c, _0x193f00[_0x1badc3 + 0xa], 0xf, -0x644f153), + _0xdb4d2c = _0x4b459d(_0xdb4d2c, _0x1724c5, _0x257ec6, _0x3e0c38, _0x193f00[_0x1badc3 + 0x1], 0x15, -0x7a7ba22f), + _0x3e0c38 = _0x4b459d(_0x3e0c38, _0xdb4d2c, _0x1724c5, _0x257ec6, _0x193f00[_0x1badc3 + 0x8], 0x6, 0x6fa87e4f), + _0x257ec6 = _0x4b459d(_0x257ec6, _0x3e0c38, _0xdb4d2c, _0x1724c5, _0x193f00[_0x1badc3 + 0xf], 0xa, -0x1d31920), + _0x1724c5 = _0x4b459d(_0x1724c5, _0x257ec6, _0x3e0c38, _0xdb4d2c, _0x193f00[_0x1badc3 + 0x6], 0xf, -0x5cfebcec), + _0xdb4d2c = _0x4b459d(_0xdb4d2c, _0x1724c5, _0x257ec6, _0x3e0c38, _0x193f00[_0x1badc3 + 0xd], 0x15, 0x4e0811a1), + _0x3e0c38 = _0x4b459d(_0x3e0c38, _0xdb4d2c, _0x1724c5, _0x257ec6, _0x193f00[_0x1badc3 + 0x4], 0x6, -0x8ac817e), + _0x257ec6 = _0x4b459d(_0x257ec6, _0x3e0c38, _0xdb4d2c, _0x1724c5, _0x193f00[_0x1badc3 + 0xb], 0xa, -1120211379), + _0x1724c5 = _0x4b459d(_0x1724c5, _0x257ec6, _0x3e0c38, _0xdb4d2c, _0x193f00[_0x1badc3 + 0x2], 0xf, 0x2ad7d2bb), + _0xdb4d2c = _0x4b459d(_0xdb4d2c, _0x1724c5, _0x257ec6, _0x3e0c38, _0x193f00[_0x1badc3 + 0x9], 0x15, -0x14792c01), + _0x3e0c38 = _0x12e4a8(_0x3e0c38, _0x38ca59), + _0xdb4d2c = _0x12e4a8(_0xdb4d2c, _0x431764), + _0x1724c5 = _0x12e4a8(_0x1724c5, _0x43f1b4), + _0x257ec6 = _0x12e4a8(_0x257ec6, _0x5722c0); + return [_0x3e0c38, _0xdb4d2c, _0x1724c5, _0x257ec6]; +} + +function _0x35f5f2(_0x243853) { + var _0x139b8b, _0xa791a1 = []; + for (_0xa791a1[(_0x243853[_$UH[0x6c]] >> 0x2) - 0x1] = void 0x0, + _0x139b8b = 0x0; _0x139b8b < _0xa791a1[_$UH[0x6c]]; _0x139b8b += 0x1) + _0xa791a1[_0x139b8b] = 0x0; + var _0x41a533 = 0x8 * _0x243853[_$UH[0x6c]]; + for (_0x139b8b = 0x0; _0x139b8b < _0x41a533; _0x139b8b += 0x8) + _0xa791a1[_0x139b8b >> 0x5] |= (0xff & _0x243853[_$UH[0xf]](_0x139b8b / 0x8)) << _0x139b8b % 0x20; + return _0xa791a1; +} + +_$UH = _0xceb4b2; + +_0x4e96b4['_$pr']['push'](_0x474032(_$Wa)); + + +_$Ww = CryptoJS['enc']['Utf8']['parse'](_0x4e96b4['_$pr']['toString']()); +_0x4e96b4['_$qF'] = CryptoJS['enc']['Utf8']['parse'](_0x4e96b4['btoa']('1678243662154')['slice'](0, 16)); +console.log(0x4e96b4['_$qF']); + +_0x29dd83 = CryptoJS['AES']['encrypt'](_$Ww, _0x4e96b4['_$qF'], { + 'mode': CryptoJS['mode']['ECB'], + 'padding': CryptoJS['pad']['Pkcs7'] +}); + +// _0x29dd83['toString'](); + +// console.log(_0x29dd83['toString']()); + +_$Wa = 1678247136000; +w =_0x37614a(_$Wa); +console.log(w);