Files
MemShellParty/web/vendor/cfr/cfr.wasm-runtime.js
T
2026-08-30 21:19:42 +08:00

1041 lines
24 KiB
JavaScript

var n = new Map();
var s = /.+:wasm-function\[[0-9]+]:0x([0-9a-f]+).*/;
function D(e) {
let t = n.get(e);
if (typeof t === "undefined") {
t = new Function("return " + e + ";");
n.set(e, t);
}
return t();
}
function O(e, t) {
new Function("value", e + " = value;")(t);
}
function x(e, t, n) {
const r = { exports: null, userExports: t, stackDeobfuscator: null };
if (!n) {
o(e);
}
a(e);
l(e);
i(e, r);
u(e);
f(e, r, n);
e.teavmMath = Math;
return {
supplyExports(e) {
r.exports = e;
},
supplyStackDeobfuscator(e) {
r.stackDeobfuscator = e;
},
};
}
var _ = Symbol("javaException");
var E = class extends Error {
#context;
[_];
constructor(e, t) {
super();
this.#context = e;
this[_] = t;
e.exports["teavm.setJsException"](t, this);
}
get message() {
const e = this.#context.exports["teavm.exceptionMessage"];
const t = this.#context.exports["teavm.stringToJs"];
if (typeof e === "function" && typeof t === "function") {
const n = e(this[_]);
if (n != null) {
return t(n);
}
}
return "(could not fetch message)";
}
};
function o(e) {
e["wasm:js-string"] = {
fromCharCode: (e) => String.fromCharCode(e),
fromCharCodeArray: () => {
throw new Error("Not supported");
},
intoCharCodeArray: () => {
throw new Error("Not supported");
},
concat: (e, t) => e + t,
charCodeAt: (e, t) => e.charCodeAt(t),
length: (e) => e.length,
substring: (e, t, n) => e.substring(t, n),
};
}
function a(e) {
e.teavmDate = {
currentTimeMillis: () => new Date().getTime(),
dateToString: (e) => new Date(e).toString(),
getYear: (e) => new Date(e).getFullYear(),
setYear(e, t) {
const n = new Date(e);
n.setFullYear(t);
return n.getTime();
},
getMonth: (e) => new Date(e).getMonth(),
setMonth(e, t) {
const n = new Date(e);
n.setMonth(t);
return n.getTime();
},
getDate: (e) => new Date(e).getDate(),
setDate(e, t) {
const n = new Date(e);
n.setDate(t);
return n.getTime();
},
create: (e, t, n, r, o, a) => new Date(e, t, n, r, o, a).getTime(),
createFromUTC: (e, t, n, r, o, a) => Date.UTC(e, t, n, r, o, a),
};
}
function l(e) {
let t = "";
let n = "";
e.teavmConsole = {
putcharStderr(e) {
if (e === 10) {
console.error(t);
t = "";
} else {
t += String.fromCharCode(e);
}
},
putcharStdout(e) {
if (e === 10) {
console.log(n);
n = "";
} else {
n += String.fromCharCode(e);
}
},
};
}
function k(e, t) {
return (((e - 1) >> t) + 1) << t;
}
async function A(u, e, t, n) {
const r = e.memory ?? {};
const o = t ? M(t) : {};
let f = r.external;
const a = e.stack ?? 2 * (1 << 20);
let s = o.dataSize ?? 0;
let l = 0;
for (const h of n) {
const d = C(h.wasmModule);
const g = d.memorySize ?? 0;
const v = d.memoryAlignment ?? 1;
const x = d.tableSize ?? 0;
const A = d.tableAlignment ?? 1;
if (g > 0) {
s = k(s, v);
h.memoryOffset = s;
s += g;
}
if (x > 0) {
l = k(l, A);
h.tableOffset = l;
l += x;
}
}
let p = -1;
let m = -1;
let y = -1;
if (n.length > 0) {
s = k(s, 4);
p = s;
m = s;
s += a;
s = k(s, 4);
y = s;
}
let c = r.maxSize;
s = k(s, 8);
const i = s;
if (!f) {
const j = o.min ?? 0;
s += j;
s = Math.max(s, r.minSize ?? 0);
const J = r.shared ?? o.shared ?? false;
c ??= ((1 << 31) - 1) | 0;
const S = Math.max(j, n.length === 0 ? 1 : 256);
const W = J ? S : ((c - 1) >> 16) + 1;
f = new WebAssembly.Memory({ shared: J, initial: S, maximum: W });
}
const b = l > 0 ? new WebAssembly.Table({ initial: l, element: "anyfunc" }) : null;
u.env = { memory: f };
u.teavmMemory = {
linearMemory() {
return f.buffer;
},
notifyHeapResized: r.onResize ?? function () {},
heapOffset: new WebAssembly.Global({ value: "i32", mutable: false }, i),
maxSize: new WebAssembly.Global({ value: "i32", mutable: false }, c),
};
const w = { malloc: null, free: null, realloc: null };
await Promise.all(
n.map(async ({ name: e, wasmModule: n, jsLoader: t, tableOffset: r, memoryOffset: o }) => {
const a = await t({
wasmMemory: f,
instantiateWasm(e, t) {
e.env = {
memory: f,
malloc: (e) => w.malloc(e),
free: (e) => w.free(e),
realloc: (e, t) => w.realloc(e, t),
__indirect_function_table: b,
__memory_base: new WebAssembly.Global({ value: "i32", mutable: false }, o ?? 0),
__table_base: new WebAssembly.Global({ value: "i32", mutable: false }, r ?? 0),
__stack_pointer: new WebAssembly.Global({ value: "i32", mutable: true }, p),
};
e["GOT.mem"] = {
__stack_low: new WebAssembly.Global({ value: "i32", mutable: true }, m),
__stack_high: new WebAssembly.Global({ value: "i32", mutable: true }, y),
};
WebAssembly.instantiate(n, e).then(t);
},
});
const s = {};
for (const { name: l, kind: c } of WebAssembly.Module.exports(n)) {
if (c === "function") {
const i = a["_" + l];
if (typeof i === "function") {
s[l] = i;
}
}
}
u[e] = s;
}),
);
return w;
}
var c = class {
ptr = 0;
array;
constructor(e) {
this.array = e;
}
readVarInt() {
let e = 0;
let t = 0;
while (true) {
const n = this.array[this.ptr++];
e |= (n & 127) << t;
if ((n & 128) === 0) {
return e;
}
t += 7;
}
}
};
function C(e) {
const t = WebAssembly.Module.customSections(e, "dylink.0");
if (t.length !== 1) {
return {};
}
const n = new c(new Int8Array(t[0]));
const r = {};
while (n.ptr < n.array.length) {
const o = n.array[n.ptr++];
const a = n.ptr + n.readVarInt();
switch (o) {
case 1:
r.memorySize = n.readVarInt();
r.memoryAlignment = n.readVarInt();
r.tableSize = n.readVarInt();
r.tableAlignment = n.readVarInt();
break;
}
n.ptr = a;
}
return r;
}
function i(e, a) {
const r = new FinalizationRegistry((e) => {
const t = a.exports["teavm.reportGarbageCollectedValue"];
if (typeof t !== "undefined") {
t(e.queue, e.ref);
}
});
const n = new FinalizationRegistry((e) => {
const t = a.exports?.["teavm.reportGarbageCollectedString"];
if (typeof t === "function") {
t(e);
}
});
e.teavm = {
createWeakRef(e, t, n) {
if (n !== null) {
r.register(e, { ref: t, queue: n });
}
return new WeakRef(e);
},
deref: (e) => {
const t = e.deref();
return t !== void 0 ? t : null;
},
createStringWeakRef(e, t) {
n.register(e, t);
return new WeakRef(e);
},
stringDeref: (e) => e.deref(),
takeStackTrace(r) {
const e = new Error().stack ?? "";
const t = [];
for (const n of e.split("\n")) {
const o = s.exec(n);
if (o !== null && o.length >= 2) {
t.push(parseInt(o[1], 16));
}
}
return {
getStack() {
let n;
if (a.stackDeobfuscator) {
try {
n = a.stackDeobfuscator(t);
} catch (e) {
console.warn("Could not deobfuscate stack", e);
}
}
if (!n) {
n = t.map((e) => ({
className: "java.lang.Throwable$FakeClass",
method: "fakeMethod",
file: "Throwable.java",
line: e,
}));
} else if (r !== null) {
if (
n.length > 0 &&
n[0].className === "java.lang.Throwable" &&
n[0].method === "fillInStackTrace"
) {
n.shift();
}
let t = -1;
for (let e = 0; e < n.length; ++e) {
if (n[e].method !== "<init>") {
break;
}
if (n[e].className === r) {
t = e + 1;
break;
}
}
if (t >= 0) {
n.splice(0, t);
}
}
return n;
},
};
},
decorateException(e) {
new E(a, e);
},
};
}
function u(e) {
e.teavmAsync = {
offer(e, t, n) {
const r = Math.max(0, n - Date.now());
return setTimeout(() => {
t(e);
}, r);
},
kill(e) {
clearTimeout(e);
},
};
}
function M(e) {
const t = WebAssembly.Module.customSections(e, "teavm.memoryRequirements");
if (t.length !== 1) {
return {};
}
return JSON.parse(new TextDecoder().decode(t[0]));
}
function f(t, s, e) {
const l = Symbol("javaObject");
const c = Symbol("functions");
const o = Symbol("functionOrigin");
const i = Symbol("wrapperCallMarker");
const a = new WeakMap();
const r = new WeakMap();
const u = new Map();
const f = new FinalizationRegistry((e) => u.delete(e));
const n = new WeakMap();
let p = 2463534242;
const m = () => {
let e = p;
e ^= e << 13;
e ^= e >>> 17;
e ^= e << 5;
p = e;
return e;
};
function y(e) {
return e;
}
function b(t) {
let n = "";
const e = t.charAt(0);
n += w(e) ? e : "_";
for (let e = 1; e < t.length; ++e) {
const r = t.charAt(e);
n += h(r) ? r : "_";
}
return n;
}
function w(e) {
return (e >= "A" && e <= "Z") || (e >= "a" && e <= "z") || e === "_" || e === "$";
}
function h(e) {
return w(e) || (e >= "0" && e <= "9");
}
function d(e, t, n) {
if (e === null) {
O(t, n);
} else {
e[t] = n;
}
}
function g(t) {
if (t instanceof WebAssembly.Exception) {
const n = s.exports["teavm.javaException"];
const r = s.exports["teavm.getJsException"];
if (t.is(n)) {
const o = t.getArg(n, 0);
const a = A(o);
if (a !== null) {
return a;
}
let e = r(o);
if (typeof e === "undefined") {
e = new E(s, o);
}
return e;
}
}
return t;
}
function v(e) {
if (_ in e) {
return e[_];
} else {
return s.exports["teavm.js.wrapException"](e);
}
}
function x(e) {
s.exports["teavm.js.throwException"](v(e));
throw e;
}
function A(e) {
return s.exports["teavm.js.extractException"](e);
}
function j(e) {
throw g(e);
}
function J(e, t) {
try {
return e !== null ? e[t] : D(t);
} catch (e) {
x(e);
}
}
function S(t, e) {
const n = [];
const r = [];
for (let e = 0; e < t.length; ++e) {
const a = "p" + e;
n.push(a);
r.push(a);
}
if (e) {
const s = r.length - 1;
r[s] = "..." + r[s];
}
const o = r.join(", ");
return new Function(
"rethrowJavaAsJs",
"fn",
`return function(${o}) {
try {
return fn(${n.join(", ")});
} catch (e) {
rethrowJavaAsJs(e);
}
};`,
)(j, t);
}
function W(e, t) {
return new Function(
"constructor",
`return function ${e}(marker, javaObject) {
return constructor.call(this, marker, javaObject);
}
`,
)(t);
}
t.teavmJso = {
stringBuiltinsSupported: () => e,
isUndefined: (e) => typeof e === "undefined",
emptyArray: () => [],
appendToArray: (e, t) => e.push(t),
unwrapBoolean: (e) => (e ? 1 : 0),
wrapBoolean: (e) => !!e,
getProperty: J,
setProperty: d,
setPropertyPure: d,
global(e) {
try {
return D(e);
} catch (e) {
x(e);
}
},
createClass(e, t, r) {
e = b(e ?? "JavaObject");
let o;
const n = W(e, function e(t, n) {
if (t === i) {
o.call(this, n);
} else if (r === null) {
throw new Error("This class can't be instantiated directly");
} else {
try {
return r.apply(null, arguments);
} catch (e) {
j(e);
}
}
});
if (t === null) {
o = function (e) {
this[l] = e;
this[c] = null;
};
} else {
o = function (e) {
t.call(this, e);
};
}
n.prototype = Object.create(t ? t.prototype : Object.prototype);
n.prototype.constructor = n;
const a = W(e, function (e) {
return n.call(this, i, e);
});
a[i] = n;
a.prototype = n.prototype;
return a;
},
exportClass(e) {
return e[i];
},
defineMethod(e, t, n, r) {
const o = [];
const a = [];
for (let e = 1; e < n.length; ++e) {
const l = "p" + e;
o.push(l);
a.push(l);
}
if (r) {
const c = a.length - 1;
a[c] = "..." + a[c];
}
const s = a.join(", ");
e.prototype[t] = new Function(
"rethrowJavaAsJs",
"fn",
`return function(${s}) {
try {
return fn(${["this", ...o].join(", ")});
} catch (e) {
rethrowJavaAsJs(e);
}
};`,
)(j, n);
},
defineStaticMethod(e, t, n, r) {
e[t] = S(n, r);
},
defineFunction: S,
defineProperty(e, t, n, r) {
const o = {
get() {
try {
return n(this);
} catch (e) {
j(e);
}
},
};
if (r !== null) {
o.set = function (e) {
try {
r(this, e);
} catch (e) {
j(e);
}
};
}
Object.defineProperty(e.prototype, t, o);
},
defineStaticProperty(e, t, n, r) {
const o = {
get() {
try {
return n();
} catch (e) {
j(e);
}
},
};
if (r !== null) {
o.set = function (e) {
try {
r(e);
} catch (e) {
j(e);
}
};
}
Object.defineProperty(e, t, o);
},
javaObjectToJS(e, t) {
if (e === null) {
return null;
}
const n = a.get(e);
if (typeof n != "undefined") {
const o = n.deref();
if (typeof o !== "undefined") {
return o;
}
}
const r = new t(e);
a.set(e, new WeakRef(r));
return r;
},
unwrapJavaObject(e) {
return e[l];
},
asFunction(e, t) {
if (e === null || e === void 0) {
return null;
}
let n = e[c];
if (n === null) {
n = Object.create(null);
e[c] = n;
}
let r = n[t];
if (typeof r !== "function") {
r = function () {
return e[t].apply(e, arguments);
};
r[o] = e;
n[t] = r;
}
return r;
},
functionAsObject(t, e) {
if (t === null || t === void 0) {
return null;
}
const n = t[o];
if (typeof n !== "undefined") {
const r = n[c];
if (r !== void 0 && r[e] === t) {
return n;
}
}
return {
[e]: function (...e) {
try {
return t(...e);
} catch (e) {
j(e);
}
},
};
},
wrapObject(t) {
if (t === null) {
return null;
}
if (typeof t === "object" || typeof t === "function" || typeof t === "symbol") {
const n = t;
let e = n[l];
if (typeof e === "object") {
return e;
}
e = r.get(t)?.deref();
if (e !== void 0) {
return e;
}
e = s.exports["teavm.jso.createWrapper"](t);
r.set(t, new WeakRef(e));
return e;
} else {
let e = u.get(t)?.deref();
if (e !== void 0) {
return e;
}
e = s.exports["teavm.jso.createWrapper"](t);
u.set(t, new WeakRef(e));
f.register(e, t);
return e;
}
},
isPrimitive: (e, t) => typeof e === t || e === null,
instanceOf: (e, t) => e instanceof t,
instanceOfOrNull: (e, t) => e === null || e instanceof t,
sameRef: (e, t) => e === t,
hashCode: (t) => {
if (typeof t === "object" || typeof t === "function" || typeof t === "symbol") {
let e = n.get(t);
if (typeof e === "number") {
return e;
}
e = m();
n.set(t, e);
return e;
} else if (typeof t === "number") {
return t | 0;
} else if (typeof t === "bigint") {
return Number(BigInt.asIntN(32, t));
} else if (typeof t === "boolean") {
return t ? 1 : 0;
} else {
return 0;
}
},
apply: (e, t, n) => {
try {
if (e === null) {
const r = D(t);
return r(...n);
} else {
return e[t](...n);
}
} catch (e) {
x(e);
}
},
concatArray: (e, t) => [...e, ...t],
getJavaException: (e) => e[_],
getJSException: (e) => {
const t = s.exports["teavm.getJsException"];
return t(e);
},
jsExports: () => s.userExports,
};
for (const M of [
"wrapByte",
"wrapShort",
"wrapChar",
"wrapInt",
"wrapLong",
"wrapFloat",
"wrapDouble",
"unwrapByte",
"unwrapShort",
"unwrapChar",
"unwrapInt",
"unwrapLong",
"unwrapFloat",
"unwrapDouble",
]) {
t.teavmJso[M] = y;
}
function k(e) {
try {
return e();
} catch (e) {
x(e);
}
}
const C = [];
for (let e = 0; e < 32; ++e) {
const F = C.length === 0 ? "" : C.join(", ");
const T = [...C, "body"].join(", ");
t.teavmJso["createFunction" + e] = new Function(
"wrapCallFromJavaToJs",
...C,
"body",
`return new Function('wrapCallFromJavaToJs', ${T}).bind(this, wrapCallFromJavaToJs);`,
).bind(null, k);
t.teavmJso["bindFunction" + e] = (e, ...t) => e.bind(null, ...t);
t.teavmJso["callFunction" + e] = new Function(
"rethrowJsAsJava",
"fn",
...C,
`try {
return fn(${F});
} catch (e) {
rethrowJsAsJava(e);
}`,
).bind(null, x);
t.teavmJso["callMethod" + e] = new Function(
"rethrowJsAsJava",
"getGlobalName",
"instance",
"method",
...C,
`try {
return instance !== null
? instance[method](${F})
: getGlobalName(method)(${F});
} catch (e) {
rethrowJsAsJava(e);
}`,
).bind(null, x, D);
t.teavmJso["construct" + e] = new Function(
"rethrowJsAsJava",
"constructor",
...C,
`try {
return new constructor(${F});
} catch (e) {
rethrowJsAsJava(e);
}`,
).bind(null, x);
t.teavmJso["arrayOf" + e] = new Function(...C, "return [" + F + "]");
C.push("p" + (e + 1));
}
}
function e(e) {
return new Proxy(e, {
get(e, t) {
const n = e[t];
return new WebAssembly.Global({ value: "externref", mutable: false }, n);
},
});
}
async function j(e, o) {
const t = [];
const n = {};
for (const { module: a, name: r } of p(e)) {
if (a in o) {
continue;
}
let e = n[a];
if (e === void 0) {
const s = [];
e = s;
n[a] = e;
t.push(
(async () => {
const e = await import(a);
const t = {};
for (const n of s) {
const r = n === "__self__" ? e : e[n];
t[n] = new WebAssembly.Global({ value: "externref", mutable: false }, r);
}
o[a] = t;
})(),
);
}
e.push(r);
}
if (t.length === 0) {
return;
}
await Promise.all(t);
}
function p(e) {
const t = WebAssembly.Module.customSections(e, "teavm.imports");
if (t.length !== 1) {
return WebAssembly.Module.imports(e).filter((e) => e.kind === "global");
}
return JSON.parse(new TextDecoder().decode(t[0]));
}
async function t(e, t) {
if (!t) {
t = {};
}
const n = t.nodejs || typeof process !== "undefined";
const r = t.emscriptenModules ?? {};
const o = t.stackDeobfuscator ?? {};
const a = o.infoLocation ?? "auto";
const s = J(e, n);
const [l, c, i, u] = await Promise.all([
o.enabled ? W(e, o, n) : Promise.resolve(null),
s,
T(e, a, o, n),
I(r, n),
]);
const f = {};
const p = {};
const m = x(f, p, await S());
const y = await A(f, t, c, u);
if (typeof t.installImports !== "undefined") {
t.installImports(f);
}
if (!t.noAutoImports) {
await j(c, f);
}
const b = await WebAssembly.instantiate(c, f);
y.malloc = b.exports["teavm.malloc"];
y.free = b.exports["teavm.free"];
y.realloc = b.exports["teavm.realloc"];
m.supplyExports(b.exports);
if (l) {
const h = a === "auto" || a === "embedded" ? c : null;
const d = F(h, i, l);
if (d !== null) {
m.supplyStackDeobfuscator(d);
}
}
const w = { exports: p, instance: b, module: c };
for (const g in b.exports) {
const v = b.exports[g];
if (v instanceof WebAssembly.Global) {
Object.defineProperty(p, g, { get: () => v.value });
}
}
return w;
}
async function J(e, t) {
if (typeof e !== "string") {
return await WebAssembly.compile(e, { builtins: ["js-string"] });
}
const [n, r] = await m(e, t);
const o = await WebAssembly.compileStreaming(n, { builtins: ["js-string"] });
r();
return o;
}
var r = null;
function S() {
if (r === null) {
r = (async () => {
const e = new Int8Array([
0, 97, 115, 109, 1, 0, 0, 0, 1, 7, 1, 96, 1, 127, 1, 100, 111, 2, 31, 1, 14, 119, 97, 115,
109, 58, 106, 115, 45, 115, 116, 114, 105, 110, 103, 12, 102, 114, 111, 109, 67, 104, 97,
114, 67, 111, 100, 101, 0, 0, 3, 1, 0, 5, 4, 1, 1, 0, 0, 7, 10, 1, 6, 109, 101, 109, 111,
114, 121, 2, 0, 10, -127, -128, -128, 0, 0,
]);
try {
const t = new Response(e, { headers: { "Content-Type": "application/wasm" } });
const n = await WebAssembly.compileStreaming(t, { builtins: ["js-string"] });
await WebAssembly.instantiate(n, {});
return true;
} catch (e) {
return false;
}
})();
}
return r;
}
async function W(e, t, n) {
if (typeof e !== "string" && !t.path) {
return null;
}
try {
const r = {};
const o = await J(t.path ?? `${e}-deobfuscator.wasm`, n);
const a = x(r, {}, await S());
await A(r, {}, o, []);
const s = await WebAssembly.instantiate(o, r);
a.supplyExports(s.exports);
return s;
} catch (e) {
console.warn("Could not load deobfuscator", e);
return null;
}
}
async function m(e, t) {
if (!t) {
const n = await fetch(e);
return [n, () => {}];
} else {
const r = await b();
const o = await r.open(e, "r");
const a = await o.readableWebStream();
const n = new Response(a, { headers: { "Content-Type": "application/wasm" } });
return [n, () => o.close()];
}
}
var y;
async function b() {
if (!y) {
y = import("node:fs/promises");
}
return await y;
}
function F(e, t, n) {
let r = null;
let o = false;
function a() {
if (!o) {
o = true;
if (t !== null) {
try {
r = n.exports["createFromExternalFile"].value(t);
} catch (e) {
console.warn("Could not load create deobfuscator", e);
}
}
if (r == null && e !== null) {
try {
r = n.exports["createForModule"].value(e);
} catch (e) {
console.warn("Could not create deobfuscator from module data", e);
}
}
}
}
return (e) => {
a();
return r !== null ? r.deobfuscate(e) : [];
};
}
async function T(e, t, n, r) {
if (!n.enabled) {
return null;
}
if (typeof e !== "string" && !n.externalInfoPath) {
return null;
}
if (t !== "auto" && t !== "external") {
return null;
}
if (typeof n.externalInfoPath === "object" && n.externalInfoPath instanceof Int8Array) {
return n.externalInfoPath;
}
const o = n.externalInfoPath ?? e + ".teadbg";
let a;
if (!r) {
const s = await fetch(o);
if (!s.ok) {
return null;
}
a = await s.arrayBuffer();
} else {
const l = await b();
a = (await l.readFile(o)).buffer;
}
return new Int8Array(a);
}
async function I(e, c) {
const t = Object.entries(e);
return Promise.all(
t.map(async ([e, { pathToJs: t, pathToWasm: n }]) => {
const [r, o] = await m(n, c);
const [a, s] = await Promise.all([import(t), WebAssembly.compileStreaming(r)]);
const l = { name: e, jsLoader: a.default, wasmModule: s };
o();
return l;
}),
);
}
export { x as defaults, t as load, e as wrapImport };