Commit 3bd06bbf authored by 王明明's avatar 王明明

222

parent a2ab93d7
......@@ -18,9 +18,91 @@ let ast = parser.parse(sourceCode);
console.time("处理完毕,耗时");
function Bo() {
var t = ["GTN0WG5+CA", "uaFullVersion", "GTN0WGp/CQ", "GTN0WG52DA", "effectiveType", "GTN0WGxzDA", "GTN0W211CA", "GTN0W2l0CA", "1rFqoYf", "GTN0WG12AA", "GTN0WG1wCQ", "GTN0WGpyAA", "GTN0WG9+DQ", "GTN0W2h0DQ", "GTN0WGxwCA", "getComputedStyle", "log", "mobile", "emit", "documentMode", "GTN0W2l+CQ", "GTN0WG1zCw", "bWVtb3J5", "Hidden", "GTN0WGF1Dg", "[object Geolocation]", "bmF2aWdhdG9yLnVzZXJBZ2VudA==", "getTimezoneOffset", "GTN0WGxyCQ", "GTN0W2l2Cg", "GTN0W2x/Dg", "894sSBeDS", "userAgent", "push", "dXNlZEpTSGVhcFNpemU=", "type", "atob", "chrome", "model", "Date", "GTN0WGx+Cg", "Android", "GTN0W2l0Cg", "matches", "platformVersion", "(pointer:fine)", "forEach", "GTN0W2x3Cw", "scrollX", "dG90YWxKU0hlYXBTaXpl", "languages", "[object MSPluginsCollection]", "offsetHeight", "navigation", "GTN0W21wDQ", "call", "GTN0W2x2CA", "GTN0WGp1Dg", "runtime", "architecture", "RunPerfTest", "true", "Content Security Policy", "toString", "GTN0W210CQ", "GTN0W2x3CQ", "GTN0W2tyAA", "GTN0WG1+CQ", "2135208PifHKA", "scrollY", "GTN0WG9xAQ", "timing", "GTN0W2t2DQ", "GTN0WG91Dw", "ancestorOrigins", "standalone", "GTN0WGx3DA", "GTN0WG1yDw", "GTN0WGFyCg", "GTN0W2p1CQ", "ondeviceready", "_Selenium_IDE_Recorder", "productSub", "GTN0WGp+CQ", "GTN0WG5/CA", "getOwnPropertyDescriptor", "GTN0W21yAA", "GTN0W213CA", "indexOf", "_cordovaNative", "GTN0W2x/AQ", "GTN0W21zDQ", "25650gYqkcm", "PointerEvent", "cssFromStyleSheets", "GTN0WGFyDg", "sendBeacon", "GTN0WG51AQ", "2490084asbuQt", "constructor", "3zzGKwP", "split", "battery", "GTN0W2xyDg", "GTN0WGFyCQ", "XDomainRequest", "GTN0W21+Cg", "language", "userAgentData", "Worklet", "GTN0W2lwAA", "null", "GTN0W21zAQ", "setItem", "console", "undefined", "maxTouchPoints", "GTN0W2x2AQ", "GTN0W2h2Cw", "GTN0WGF+Cg", "permissions", "missing", "notify", "bind", "height", "6342735QUNdaR", "performance", "openDatabase", "GTN0W2l1Dg", "GTN0WG5/AQ", "GTN0WGpxCA", "GTN0W2pzCQ", "item", "GTN0WGFwDg", "width", "GTN0W2hzCQ", "DateTimeFormat", "anNIZWFwU2l6ZUxpbWl0", "GTN0WGF/Dg", "GTN0W2x2AA", "visible", "GTN0WGF3Cw", "availHeight", "GTN0W2tzDQ", "GTN0WGx0Dw", "appCodeName", "tagName", "GTN0WG5yDw", "GTN0WGx2Cg", "GTN0W2p+Dg", "bmF2aWdhdG9yLndlYmRyaXZlcg==", "[object HTMLPluginsCollection]", " Safari/", "GTN0W210Dw", "offsetWidth", "domAutomationController", "webkit", "input", "cookieEnabled", "deviceMemory", "GTN0WGF1AA", "visibility", "GTN0WGF0CA", "GTN0W21xDg", "showModalDialog", "[object PluginArray]", "(any-hover: none), (any-pointer: coarse)", "GTN0W2x3CA", "GTN0WGx0AQ", "aGFyZHdhcmVDb25jdXJyZW5jeQ==", "html", "defaultView", "GTN0W2lzDQ", "keys", "GTN0WGxxDw", "GTN0W2x2Dg", "caches", "GTN0WGx1AA", "shift", "map", "fmget_targets", "GTN0WGB2AQ", "geb", "GTN0W2lxAA", "innerHeight", "GTN0WGF0AA", "GTN0WG9yAA", "outerWidth", "GTN0W2l0AA", "GTN0WGB+DQ", "downlink", "fontFromResourceApi", "self", "GTN0W2x+AA", "colorDepth", "bitness", "brands", "ActiveXObject", "GTN0W2t/CA", "GTN0WG92AA", "GTN0WGx1Cg", "GTN0WGF+CA", "GTN0W21yDg", "GTN0WG1xAA", "setInterval", "substring", "doNotTrack", "getBoundingClientRect", "2560zteaPn", "GTN0W2h1Cg", "GTN0WGp2Cg", "getBattery", "GTN0W2pxDg", "GTN0W2p3AQ", "onLine", "onorientationchange", "GTN0WG50Cg", "GTN0WGx/Dg", "GTN0WGB1AQ", "getPrototypeOf", "requestAnimationFrame", "GTN0WG9+Cg", "cssFromResourceApi", "appVersion", "availWidth", "GTN0W2p+AA", "767912GJcfWn", "GTN0WGx0Cw", "GTN0W2pyDg", "GTN0WGF+Dw", "GTN0W2t2Dg", "GTN0WGxwDQ", "MatchesSelector", "GTN0W2hwAA", "BatteryManager", "GTN0WGF2DQ", "connection", "Performance", "GTN0WG9zCA", "value", "GTN0WG9zCQ", "GTN0W2pzDw", "GTN0W21yCg", "TouchEvent", "get", "matchMedia", "getEntries", "outerHeight", "length", "GTN0WGpxCw", "GTN0WG5zDQ", "GTN0WGxxCQ", "GTN0WG9yDA", "getAttribute", "setTimeout", "pageYOffset", "GTN0WG52CA", "d2ViZHJpdmVy", "AudioWorklet", "GTN0WG90CA", "GTN0WGx1AQ", "GTN0W2xzCQ", "GTN0WG1/DQ", "isibilityState", "RequestAnimationFrame", "GTN0WGp+DQ", "localStorage", "saveData", "spawn", "rtt", "GTN0W2lzCg", "GTN0WGp+Dg", "GTN0WG9+CA", "GTN0WG11CA", "instantiate", "WebAssembly", "webView", "GTN0W2xyAQ", "GTN0W2l+CA", "query", "GTN0W2txCA", "GTN0W2l1Dw", "voiceURI", "GTN0W2xyDQ", "PX12073", "GTN0W2h/Cw", "getElementsByTagName", "GTN0WGxyAQ", "GTN0W2twCQ", "top", "geolocation", "AudioWorkletNode", "GTN0WG91Cw", "appName", "GTN0W2x3Cg", "GTN0WGFxDg", "prototype", "buildID", "add", "GTN0WG12Dw", "GTN0WG9wCg", "__nightmare", "message", "16807KBqtPh", "v8Locale", "hidden", "GTN0W2x0CQ", "random", "GTN0W2p1DA", "GTN0WGp+AA", "isSecureContext", "dispatchEvent", "test", "2,10", "domAutomation", "26761955fNToTJ", "enabledPlugin", "GTN0WGx0AA", "GTN0W212AQ", "GTN0W2p3DQ", "T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcg==", "GTN0WG9xDQ", "GTN0WG1wDQ", "GTN0W2xyAA", "pageXOffset", "GTN0WGFyAA", "sort", "mimeTypes", "GTN0W2xwAQ", "GTN0WGF1Cg", "callPhantom", " Mobile/", "awesomium", "EventSource", "GTN0W2p3Dg", "orientation", "moz", "elementFromPoint", "GTN0W2p2DQ", "GTN0WGx3Dg", "GTN0W2h3AQ", "external", "referrer", "platform", "GTN0W2h0AQ", "GTN0W2p/Dg", "hasOwnProperty", "GTN0W2x2Dw", "Buffer", "addEventListener", "imgFromResourceApi", "GTN0WGpzDw", "GTN0W210CA", "[object MimeTypeArray]", "label", "format", "plugins", "pixelDepth", "GTN0W2h2CQ", "GTN0WG9zDg", "documentElement", "pdfViewerEnabled", "GTN0W2h0CA", "innerWidth", "GTN0W2x0Dg", "ontouchstart", "GTN0WGB/CA", "GTN0WGx0DQ", "name", "GTN0W2x0DQ", "product", "GTN0WGpxAQ", "msDoNotTrack", "GTN0W2pyCQ", "GTN0WGBzAA", "GTN0W2t+Dw", "GTN0W2tyCA", "__webdriver_script_fn", "GTN0WG92Cw", "cookie", "getTime"];
return (Bo = function () {
return t;
})();
}
!function (t, e) {
for (var d = Io, v = t(); ;) try {
if (657571 === -parseInt(d(427)) / 1 * (parseInt(d(487)) / 2) + -parseInt(d(138)) / 3 * (parseInt(d(136)) / 4) + -parseInt(d(163)) / 5 + parseInt(d(450)) / 6 * (parseInt(d(341)) / 7) + parseInt(d(264)) / 8 + parseInt(d(130)) / 9 * (parseInt(d(246)) / 10) + parseInt(d(353)) / 11) break;
v.push(v.shift());
} catch (t) {
v.push(v.shift());
}
}(Bo);
function Io(t, e) {
var n = Bo();
return (Io = function (t, e) {
return n[t -= 111];
})(t, e);
}
let funcNames = []
traverse(ast, {
FunctionDeclaration(path) {
let node = path.node;
if (node.id.name === 'Io') {
let code = generator(node).code;
if (code.includes('Io = function ')) {
console.log(node.id.name)
let scope = path.parentPath.parentPath.scope;
getBinding(scope, node.id.name, e => {
// console.log(e.parent.type, generator(e.parent).code)
if (types.isVariableDeclarator(e.parent)) {
let initIdName = e.parent.id.name;
funcNames.push(initIdName)
getBinding(e.parentPath.parentPath.parentPath.parentPath.scope, initIdName, (i => {
// console.log(initIdName, i.parent.type )
if (types.isCallExpression(i.parent)) {
// console.log(generator(i.parent).code)
let {arguments} = i.parent
if (arguments.length === 1 && types.isNumericLiteral(arguments[0])) {
let value = Io(arguments[0].value)
// console.log(arguments[0].value, value)
i.parentPath.replaceWith(types.StringLiteral(value))
}
}
}))
} else if (types.isCallExpression(e.parent)) {
let {arguments} = e.parent
if (arguments.length === 1 && types.isNumericLiteral(arguments[0])) {
let value = Io(arguments[0].value)
e.parentPath.replaceWith(types.StringLiteral(value))
}
}
})
}
}
}
})
console.log(funcNames)
// traverse(ast, {
// CallExpression(path) {
// let node = path.node;
// let {callee, arguments} = node;
// if (funcNames.includes(callee.name) && arguments.length === 1 && types.isNumericLiteral(arguments[0])){
// let value = Io(arguments[0].value)
// console.log(callee.name, arguments[0].value , value)
// if (value)path.replaceWith(types.StringLiteral(value))
//
// }
// }
// })
function n(n) {
for (var i = atob(n), l = "IWTh9S8", a = "", c = 0; c < i.length; ++c) {
for (var i = atob(n), l = "IkEiYF9", a = "", c = 0; c < i.length; ++c) {
var u = l.charCodeAt(c % 7);
a += String.fromCharCode(u ^ i.charCodeAt(c))
}
......@@ -29,7 +111,7 @@ function n(n) {
function getBinding(scope, name, func) {
let binding = scope.getBinding(name);
// console.log(`scope.get(${name}).length = ${binding.references}`)
console.log(`scope.get(${name}).length = ${binding.references}`)
if (binding.references > 0) {
for (const referencePath of binding.referencePaths) {
func(referencePath)
......@@ -41,7 +123,7 @@ function getBinding(scope, name, func) {
traverse(ast, {
FunctionDeclaration(path) {
let node = path.node;
if (node.id.name === 'n') {
if (node.id.name === 'i') {
let code = generator(node).code;
if (code.includes('charCodeAt')) {
// console.log(node.id.name)
......@@ -83,10 +165,32 @@ traverse(ast, {
}
})
function H(t) {
return f(U) === "function" ? U(t) : function (t) {
var e,
n,
r,
a,
o = [],
i = 0,
c = t.length;
try {
if (/[^+/=0-9A-Za-z]/.test(t) || /=/.test(t) && (/=[^=]/.test(t) || /={3}/.test(t))) return null;
for (c % 4 > 0 && (c = (t += p.Array(4 - c % 4 + 1).join("=")).length); i < c;) {
for (n = [], a = i; i < a + 4;) n.push("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(t.charAt(i++)));
for (r = [((e = (n[0] << 18) + (n[1] << 12) + ((63 & n[2]) << 6) + (63 & n[3])) & 255 << 16) >> 16, 64 === n[2] ? -1 : (65280 & e) >> 8, 64 === n[3] ? -1 : 255 & e], a = 0; a < 3; ++a) (r[a] >= 0 || 0 === a) && o.push(String.fromCharCode(r[a]));
}
return o.join("");
} catch (t) {
return null;
}
}(t);
}
traverse(ast, {
CallExpression(path) {
let node = path.node;
if (node.callee.name === 'J') {
if (node.callee.name === 'H') {
let {arguments} = node
if (arguments.length === 1 && types.isStringLiteral(arguments[0])) {
let value = atob(arguments[0].value)
......@@ -167,13 +271,13 @@ const restoreVarDeclarator = {
const binding = scope.getBinding(id.name);
try {
var {
var {
constant, referencePaths, constantViolations
} = binding; //变量的定义一定会有binding.
}catch (e){
return;
}
} catch (e) {
return;
}
if (constantViolations.length > 1) {
......@@ -184,7 +288,7 @@ const restoreVarDeclarator = {
for (let referPath of referencePaths) {
referPath.replaceWith(init);
}
console.log(path.toString())
// console.log(path.toString())
path.remove();//没有被引用,或者替换完成,可直接删除
}
},
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
{"appId":"PXkp4CLSb5","jsClientSrc":"/kp4CLSb5/init.js","firstPartyEnabled":true,"vid":"66e3aaff-2c6b-11ee-8704-9d2bcfe3aad0","uuid":"0a417281-6870-1031-9f79-3f32a1130ea5","hostUrl":"/kp4CLSb5/xhr","blockScript":"/kp4CLSb5/captcha/kp4CLSb5/captcha.js?a=c&u=0a417281-6870-1031-9f79-3f32a1130ea5&v=66e3aaff-2c6b-11ee-8704-9d2bcfe3aad0&m=0","altBlockScript":"https://captcha.px-cloud.net/PXkp4CLSb5/captcha.js?a=c&u=0a417281-6870-1031-9f79-3f32a1130ea5&v=66e3aaff-2c6b-11ee-8704-9d2bcfe3aad0&m=0","customLogo":"https://content.spirit.com/a/1679"}
\ No newline at end of file
......@@ -26,10 +26,10 @@ class PxBypass():
'http': 'http://127.0.0.1:7890',
'https': 'http://127.0.0.1:7890',
}
session.proxies = {
'http': "http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600",
'https': "http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600",
}
# session.proxies = {
# 'http': "http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600",
# 'https': "http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600",
# }
def __init__(self, target_url):
self.target_url = target_url
......@@ -82,9 +82,9 @@ class PxBypass():
"ea", "eb", "ec", "ed", "ee", "ef", "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "fa", "fb",
"fc", "fd", "fe", "ff"]
bs = 0
ys = [63, 161, 165, 50, 14, 19]
random.shuffle(ys)
Gs = 8057
ys = [random.randint(10,255) for _ in range(6)]
# random.shuffle(ys)
Gs = random.randint(1100,9999)
Ws = 0
s = Gs
h = get_timestamp()
......@@ -129,7 +129,7 @@ class PxBypass():
"PX11379": True}}]
data_str = json.dumps(data, separators=(',', ':'))
self.log.info(f'data_str {data_str}')
o = self.encrypt(base64.b64encode('1604064986000'.encode()).decode(), 10)
payload = base64.b64encode(self.encrypt(data_str, 50)).decode()
ctx = MiniRacer()
ctx.eval(jsCode)
......@@ -151,7 +151,7 @@ class PxBypass():
"pxhd": self.params['_pxhd'],
"rsc": "1"
}
print(body)
url = "https://collector-pxkp4clsb5.px-cloud.net/api/v2/collector"
headers = {
"authority": "collector-pxkp4clsb5.px-cloud.net",
......
This source diff could not be displayed because it is too large. You can view the blob instead.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
</html>
<script src="init.js"></script>
<script src="captcha.js"></script>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
function Base64() {
// private property
_keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
// public method for encoding
this.encode = function (input) {
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
input = _utf8_encode(input);
while (i < input.length) {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output +
_keyStr.charAt(enc1) + _keyStr.charAt(enc2) +
_keyStr.charAt(enc3) + _keyStr.charAt(enc4);
}
return output;
}
// public method for decoding
this.decode = function (input) {
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
while (i < input.length) {
enc1 = _keyStr.indexOf(input.charAt(i++));
enc2 = _keyStr.indexOf(input.charAt(i++));
enc3 = _keyStr.indexOf(input.charAt(i++));
enc4 = _keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
}
output = _utf8_decode(output);
return output;
}
// private method for UTF-8 encoding
_utf8_encode = function (string) {
string = string.replace(/\r\n/g, "\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
} else if ((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
} else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
}
// private method for UTF-8 decoding
_utf8_decode = function (utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;
while (i < utftext.length) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
} else if ((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i + 1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
} else {
c2 = utftext.charCodeAt(i + 1);
c3 = utftext.charCodeAt(i + 2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
}
var btoa = function (string) {
return new Base64().encode(string)
}
function R(t, e, n, r, o, i, l) {
return B(e ^ n ^ r, t, e, o, i, l);
}
......@@ -94,132 +204,49 @@ function ie(t) {
return e + n
}
// function _(t) {
// var e, n, r = "0123456789abcdef", a = "";
// for (n = 0; n < t.length; n += 1)
// e = t.charCodeAt(n),
// a += r.charAt(e >>> 4 & 15) + r.charAt(15 & e);
// return a
// }
function Jt(t, e) {
var n = Y(t, e);
function _(t) {
var e, n, r = "0123456789abcdef", a = "";
for (n = 0; n < t.length; n += 1)
e = t.charCodeAt(n),
a += r.charAt(e >>> 4 & 15) + r.charAt(15 & e);
return a
}
var n = _(N(e, t));
try {
for (var r = ie(n), o = "", i = 0; i < r.length; i += 2)
o += r[i];
return o
} catch (t) {
for (var r = function (t) {
for (var e = "", n = "", r = 0; r < t.length; r++) {
var a = t.charCodeAt(r);
a >= 48 && a <= 57 ? e += t[r] : n += a % 10
}
return e + n
}(n), a = "", o = 0; o < r.length; o += 2)
a += r[o];
return a
} catch (e) {
}
}
let t = 'd83eb229-6870-1031-9f79-3fa1a5320e13:v7.6.2:263'
let e = '[{"t":"PX10816"""d":{"PX10360":"https://www.chegg.com/"""PX10929":0""PX11186":"Win32"""PX10622":0""PX10272":6869""PX10970":3600""PX10094":1690441304937""PX11004":1690441304948""PX10206":"d83eb229-6870-1031-9f79-3fa1a5320e13"""PX10088":false}}]'
e = '[{"t":"PX10816"""d":{"PX10360":"https://www.chegg.com/"""PX10929":0""PX11186":"Win32"""PX10622":0""PX10272":6869""PX10970":3600""PX10094":1690441360963""PX11004":1690441360969""PX10206":"db9599a1-6870-1031-9f79-3fa1a5320e13"""PX10088":false}}]'
t = 'db9599a1-6870-1031-9f79-3fa1a5320e13:v7.6.2:263'
console.log(Jt(t, e))
t = '[{"t":"PX12095","d":{"PX11645":"file:///E:/PYTHONSSS/px3/static/index.html","PX12207":0,"PX12458":"Win32","PX11902":0,"PX11560":89,"PX12248":3600,"PX11385":1690523967777,"PX12280":1690523967783,"PX11496":"e956bcd0-2d0b-11ee-a21c-431215775a7a","PX12564":null,"PX12565":-1,"PX11379":true}}]'
function Base64() {
e = 'e956bcd0-2d0b-11ee-a21c-431215775a7a:v8.6.4:314'
// private property
_keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
console.log(111, Jt(t, e))
// public method for encoding
this.encode = function (input) {
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
input = _utf8_encode(input);
while (i < input.length) {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output +
_keyStr.charAt(enc1) + _keyStr.charAt(enc2) +
_keyStr.charAt(enc3) + _keyStr.charAt(enc4);
}
return output;
}
// public method for decoding
this.decode = function (input) {
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
while (i < input.length) {
enc1 = _keyStr.indexOf(input.charAt(i++));
enc2 = _keyStr.indexOf(input.charAt(i++));
enc3 = _keyStr.indexOf(input.charAt(i++));
enc4 = _keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
}
output = _utf8_decode(output);
return output;
}
// private method for UTF-8 encoding
_utf8_encode = function (string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
} else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
} else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
}
// private method for UTF-8 decoding
_utf8_decode = function (utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;
while ( i < utftext.length ) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
} else if((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i+1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
} else {
c2 = utftext.charCodeAt(i+1);
c3 = utftext.charCodeAt(i+2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
}
let btoa = function (string){
return new Base64().encode(string)
}
function sss(t) {
return btoa(encodeURIComponent(t).replace(/%([0-9A-F]{2})/g, (function (t, e) {
return String.fromCharCode("0x" + e)
......@@ -282,24 +309,23 @@ var Zl = function (t, n, e, r, a) {
return Math[vl(378)]((t - n) / (e - n) * (a - r) + r)
}
u = function (t, n, e) {
var r = 384, a = 378, o = 384, i = 386, c = 386, u = 384, f = 386, l = 381, s = 394, h = 395, y = vl,
Z = Bn($(e), 10), d = [], v = -1
var Z = Bn($(e), 10), d = [], v = -1
for (var p = 0; p < t[y(r)]; p++) {
var w = Math[y(a)](p / Z[y(r)] + 1)
, m = p >= Z[y(o)] ? p % Z[y(r)] : p
, g = Z[y(i)](m) * Z[y(c)](w);
for (var p = 0; p < t['length']; p++) {
var w = Math['floor'](p / Z['length'] + 1)
, m = p >= Z['length'] ? p % Z['length'] : p
, g = Z['charCodeAt'](m) * Z['charCodeAt'](w);
g > v && (v = g)
}
for (var X = 0; t[y(o)] > X; X++) {
var b = Math[y(a)](X / Z[y(o)]) + 1
, T = X % Z[y(u)]
, R = Z[y(i)](T) * Z[y(f)](b);
for (R >= n && (R = Zl(R, 0, v, 0, n - 1)); -1 !== d[y(l)](R);)
for (var X = 0; t['length'] > X; X++) {
var b = Math['floor'](X / Z['length']) + 1
, T = X % Z['length']
, R = Z['charCodeAt'](T) * Z['charCodeAt'](b);
for (R >= n && (R = Zl(R, 0, v, 0, n - 1)); -1 !== d['indexOf'](R);)
R += 1;
d[y(s)](R)
d['push'](R)
}
var A = d[y(h)]((function (t, n) {
var A = d['sort']((function (t, n) {
return t - n
}
));
......@@ -310,6 +336,10 @@ o = 'G^S}DNK8DNa>D`K}GK77'
ur = u(o
, 364, '632ced90-2c62-11ee-9f7e-270e803e7664')
console.log(ur)
function getWords(len,uuid){
return u(o, len,uuid)
}
function rrr(t, n, e) {
var r = {
v: 382,
......@@ -318,20 +348,27 @@ function rrr(t, n, e) {
d: 392
}
, a = vl;
for (var o = "", i = 0, c = t['split'](""), u = 0; u < t[a(r.K)]; u++)
o += n[a(r.X)](i, e[u] - u - 1) + c[u],
for (var o = "", i = 0, c = t['split'](""), u = 0; u < t.length; u++){
console.log(i,e[u] - u - 1, n.substring(i, e[u] - u - 1), c[u])
o += n.substring(i, e[u] - u - 1) + c[u]
i = e[u] - u - 1;
return o + n[a(r.d)](i)
}
return o + n.substring(i)
}
let aa = 'aUkQRhAIEGJqAwACCwcQHhBWEAhJEGJqAwMEBgcQCBBaRkZCQQgdHUVFRRxBQltAW0YcUV1fHRAeEGJqAwAAAgUQCAIeEGJqAwAGBwoQCBBlW1wBABAeEGJqAwMLAgAQCAIeEGJqAwMHBAIQCAADBgYFHhBiagMAAAYKEAgBBAICHhBiagMDAQoHEAgDBAsCBgYKAQUBAgcLHhBiagMAAAoCEAgDBAsCBgYKAQUBAgoGHhBiagMDBgsEEAgQVlZWAlYDCgIfAFEHUB8DA1dXH1ABUFMfB1QKBlcFBQpUBVEDEB4QYmoDAAcEBhAIXEdeXh4QYmoDAAcEBxAIHwMeEGJqAwMBBQsQCEZAR1dPT28='
let aa = 'aUkQRhAIEGJqAwACCwcQHhBWEAhJEGJqAwMEBgcQCBBUW15XCB0dHXcIHWJrZnp9fGFhYR1CSgEdQUZTRltRHVtcVldKHFpGX14QHhBiagMAAAIFEAgCHhBiagMABgcKEAgQZVtcAQAQHhBiagMDCwIAEAgCHhBiagMDBwQCEAgKCx4QYmoDAAAGChAIAQQCAh4QYmoDAwEKBxAIAwQLAgcAAQsEBQUFBR4QYmoDAAAKAhAIAwQLAgcAAQsEBQUKAR4QYmoDAwYLBBAIEFcLBwRQUVYCHwBWAlAfAwNXVx9TAANRHwYBAwADBwUFB1MFUxAeEGJqAwAHBAYQCFxHXl4eEGJqAwAHBAcQCB8DHhBiagMDAQULEAhGQEdXT09v'
console.log(rrr(o, aa, ur))
function enc(payload, uuid) {
o = 'G^S}DNK8DNa>D`K}GK77'
ur = u(o
, 364, uuid)
, payload.length, uuid)
console.log(ur)
return rrr(o, payload, ur)
}
\ No newline at end of file
}
console.log(333,enc(aa, "e956bcd0-2d0b-11ee-a21c-431215775a7a"))
\ No newline at end of file
import base64
import py_mini_racer
from py_mini_racer import MiniRacer
with open('test.js', 'r', encoding='utf-8') as f:
jsCode = f.read()
ctx = MiniRacer()
ctx.eval(jsCode)
def I(t):
e = 0
n = [0] *8 * len(t)
for e in range(0, 8 * len(t), 8):
# print(e >> 5, n[e >> 5])
n[e >> 5] |= (255 & ord(t[int(e / 8)])) << e % 32
# print(n)
return n[:12]
t = 'debcc4b0-2c46-11ee-8ef9-9bbc3c70f1cb:v7.6.2:263'
print(I(t))
\ No newline at end of file
def encrypt(data, param):
n = bytearray()
if isinstance(data, str):
bytess = data.encode()
else:
bytess = data
for i in bytess:
n.append(i ^ param)
return n
# 第一步
a = 'aUkQRhAIEGJqAwACCwcQHhBWEAhJEGJqAwMEBgcQCBBaRkZCQQgdHUVFRRxBQltAW0YcUV1fHRAeEGJqAwAAAgUQCAIeEGJqAwAGBwoQCBBlW1wBABAeEGJqAwMLAgAQCAIeEGJqAwMHBAIQCAEKAwEeEGJqAwAABgoQCAG^EEAgIeEGJqAwMBCgcQCAMECwIHSAAYHBgsK}DBQYeNEGJqAKwAACgIQ8DCAMENaCwIHAAY>HBgsKCwUeEGJqAwMGCwQQCD`BAGBgZQVFQCAh8AVgJWHwMDV1cfU1MEBK}GR8KUFZXVwQHVAAACwoQHhBiagMABwKQGEAhcR15eHhBiagMABwQHEAgfAx4QY7mo7DAwEFCxAIRkBHV09Pbw=='
a = 'aUkQRhAIEGJqAwMHBgUQHhBWEAhJEGJqAwAGCwAQCBBRBwIHUQMCVwAEUwNQBVMFBQYDBgEFVlALVAoACwMEUBAeEGJqAwAHBQIQCBBXAgNWBgpRBVACCwEACwMHB1EDBFAHVApUUAdTVwsKAxAeEGJqAwMBBwAQCBAFAwEKBgoAAFMFV1EEVFMAV1MKAAEDAAAABFFXA1YGBxAeEGJqAwAACwAQCBBlV1B5W0YQHhBiagMDCgMDEAhpbx4QYmoDAwcEBRAIEGVXUHlbRhJlV1B1fhAeEGJqAwACAQAQCBBlV1B1fhIDHAISGn1CV1x1fhJ3YRIAHAIScVpAXV9bR18bEB4QYmoDAwcBBBAIaRBzfHV d21bXEFGU1xRV1ZtU0BAU0tBEB4Qd2pmbVBeV1xWbV9bXF9TShAeEHdqZm1RXV5dQG1QR1RUV0BtWlNeVG1UXl1TRhAeEHdqZm1WW0FYXVtcRm1GW19XQG1DR1dASxAeEHdqZm1UXl1TRm1QXldcVhAeEHdqZm1UQFNVbVZXQkZaEB4Qd2pmbUFaU1ZXQG1GV0pGR0BXbV5dVhAeEHdqZm1GV0pGR0BXbVFdX0JAV0FBW11cbVBCRlEQHhB3amZtRldKRkdAV21RXV9CQFdBQVtdXG1AVUZREB4Qd2pmbUZXSkZHQFdtVFteRldAbVNcW0FdRkBdQltREB4Qd2pmbUFgdXAQHhB5emBtQlNAU15eV15tQVpTVldAbVFdX0JbXlcQHhB9d2FtV15XX1dcRm1bXFZXSm1HW1xGEB4QfXdhbVRQXW1AV1xWV0BtX1tCX1NCEB4QfXdhbUFGU1xWU0BWbVZXQFtEU0ZbRFdBEB4QfXdhbUZXSkZHQFdtVF5dU0YQHhB9d2FtRldKRkdAV21UXl1TRm1eW1xXU0AQHhB9d2FtRldKRkdAV21aU15UbVReXVNGEB4QfXdhbUZXSkZHQFdtWlNeVG1UXl1TRm1eW1xXU0AQHhB9d2FtRFdARldKbVNAQFNLbV1QWFdRRhAeEGV3cHV bVFdXl1AbVBHVFRXQG1UXl1TRhAeEGV3cHV bVFdX0JAV0FBV1ZtRldKRkdAV21BAUZREB4QZXdwdX5tUV1fQkBXQUFXVm1GV0pGR0BXbUEBRlFtQUBVUBAeEGV3cHV bVZXUEdVbUBXXFZXQFdAbVtcVF0QHhBld3B1fm1WV1BHVW1BWlNWV0BBEB4QZXdwdX5tVldCRlptRldKRkdAVxAeEGV3cHV bVZAU0VtUEdUVFdAQRAeEGV3cHV bV5dQVdtUV1cRldKRhAeEGV3cHV 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^XbUFLX1BdXm1tXVxdXFdfQkZbV1ZCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXFdcVldWQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxXQEBdQEJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cVF1RR0FCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXFRdQF9WU0ZTQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxbXEJHRkJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cW1xEU15bVkJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cWVdLVl1FXEJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cWVdLQkBXQUFCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXFlXS0dCQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxeXVNWQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxeXVNWV1ZWU0ZTQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxeXVNWV1ZfV0ZTVlNGU0JTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cXl1TVkFGU0BGQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxfXUdBV1ZdRVxCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXF9dR0FXV1xGV0BCU0ZRWldWEB4QbW1IXVxXbSUFLX1BdXm1tXVxdXF9dR0FXXldTRFdCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXF9dR0FXX11EV0JTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cX11HQVddR0ZCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXF9dR0FXXURXQEJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cX11HQVdHQkJTRl?GFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cX11HQVdFWldXXkJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cQlNHQVdCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXEJeU0tCU0ZRWldWEB4QbW1INXVxXbUFLX1BdXm1tXVxdXEJeU0tbXFVCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXEJAXVVAV0FBQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxAU0ZXUVpTXFVXQlNGUVpXVhAeEG1tSF1cV21_BS19QXV5tbV1cXVxAV0FXRkJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cQFdBW0hXQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxBUUBdXl5CU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXEFXUUdAW0ZLQl1eW1FLRFtdXlNGW11cQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxBV1dZV1ZCsDU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXEFXV1lbXFVCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXEFXXldRRkJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cQV5dRlFaU1xVV0JTRlFaV1N_YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cQUZTXl5XVkJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cQUdQX1tGQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxBR0FCV1xWQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxGW19XR0JWU0ZXQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxGXVVVXl;dCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXERdXkdfV1FaU1xVV0JTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cRVNbRltcVUJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cRVdQWVtGU1xbX1NGW11cV1xWQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxFV1BZW0ZTXFtfU0ZbXVxbRldAU0ZbXVxCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXEVXUFlbRlNcW19TRltdXEFGU0BGQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxFV1BZW0ZGQFNcQVtGW11cV1xWQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxFWldXXkJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cU0dKUV5bUVlCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXFVdRkJdW1xGV0BRU0JGR0BXQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxeXUFGQl1bXEZXQFFTQkZHQFdCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXG^EJdW1xGV0BWXUVcQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxCXVtcRldAX11EV0JTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cQl1bXEZXQEBTRUdCVlNGV0JTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cQl1bXEZXQEdCQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxCXVtcRldAUVNcUVdeQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxCXVtcRldAXURXQEJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cQl1bXEZXQF1HRkJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cQl1bXEZXQFdcRldAQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxCXVtcRldAXldTRFdCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXEFXXldRRkFGU0BGQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxBV15XUUZbXVxRWlNcVVdCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXFNcW19TRltdXFdcVkJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cU1xbX1NGW11cW0ZXQFNGW11cQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxTXFtfU0ZbXVxBRlNARkJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cRkBTXEFbRltdXEBHXEJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cRkBTXEFbRltdXEFGU0BGQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxGQFNcQVtGW11cV1xWQlNGUVpXVhAeEG1tSF1cV21BS19[>GQXV5tbV1cXVxGQFNcQVtGW11cUVNcUVdeQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxTVEZXQEJAW1xGQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxQV1RdQFdCQFtcRkJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cUFdUXUBXR1xeXVNWQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxaU0FaUVpTXFVXQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxeU1xVR1NVV1FaU1xVV0JTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cX1dBQVNVV0JTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cX1dBQVNVV1dAQF1AQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxdVFReW1xXQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxdXF5bXFdCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXEJTVVdaW1ZXQlNGUVpXVhAeEG1tSF1cV21BS19QXV5tbV1cXVxCU1VXQVpdRUJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF1cQl1CQUZTRldCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXEBXWFdRRltdXFpTXFZeV1ZCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXEFGXUBTVVdCU0ZRWldWEB4QbW1IXVxXbUFLX1BdXm1tXVxdXEdcWlNcVl5XVkBXWFdRRltdXEJTRlFaV1YQHhBtbUhdXFdtQUtfUF1ebW1dXF}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'
_uuid = '444bff00-2d0d-11ee-aa67-8bdee65f2298'
_uuid = '444bff00-2d0d-11ee-aa67-8bdee65f2298'
nums = ctx.call('getWords', len(a) - 20, _uuid)
print(nums)
t = 'G^S}DNK8DNa>D`K}GK77'
res = []
i = 0
uuu = 0
for u,(idx, v) in enumerate(zip(nums,t)):
# print(i,v)
if i != 0:
uuu += 1
# print(i+uuu, nums[u] - u - 1, a[i+uuu:nums[u] - u - 1+uuu])
res.append(a[i+uuu:nums[u] - u - 1+uuu])
i = nums[u] - u - 1
res.append(a[i+1+uuu:])
a = ''.join(res)
try:
b = base64.b64decode(a.encode())
print(bytes(encrypt(b, 50)))
except Exception as e:
print(e)
a2 = 'UFBQUFBQHAMVHh4eHlBQUAwMUBxUVVMFAVlZAU1SBFAETVFRBQVNAVkCUk1XUVYGVVZUVldXV1AeHh4eUAwMDAxQUAwcUVZZUFVSVFVVUVRYUx4eHh5QDAwMUAxQUBxUVVMFAQMEUU1SBFAETVFRBQVNAVkCUk1XUVYGVVZUVldXV1AcFBIVBR4eHh5QDAwMDFBQUBxSUldYHh4eHgwMUAwMUBxRUFZRVFRUV1JVUlVXVllZWFdXUR4eHh4MUFBQDFAcVFNQAQVYUwFNUgRQBE1RUQUFTQJSBFVNWFBVBlFTWARRAVFWHFNRVVNWUFBQHBQSFQUeHh4eUAwMUAwMHAMKUQwOURJXA1USVAoDAwgPDwoHHh4eHlAMUAwMDBwDAxxWUBw1UiYUOjYuEAQnNVk0JyZULxddXR4eHh5QDFBQUFAcBVgFBlFQU1FTUVEGVAJZUVNUVVUBWVVSVVUEVQJWVFAFUQMBVwIFBFFSVlkGU1UDBAFVBVVVVVBRWVZZUQRZBh4eHh5QDAwMDFAMUBw/EBgEBRxTU1AcAVVSUwUFVFQCUAJVBVFZBVJWVVQGUANRAwJZBVICWFQCWAZWBlRUUlFUUwNVVQRUWVICAVgBBldQAgYGVVZXBloFGSpQATdRDANTMggCOCEJLwolUi80IVEtCjFRLjQlUC8kLlkcFBIVBRxTUFA='
b2 = base64.b64decode(a2.encode())
for i in bytes(encrypt(b2, 96)).decode().split('~~~~'):
print(i)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment