false, 'error' => 'No code provided']); exit; } $code = $input['code']; $preset = $input['preset'] ?? 'standard'; $junkLevel = $input['junk'] ?? 'none'; $encryptStrings = $input['encrypt'] ?? 'true'; /** * Advanced Luartex Obfuscation Engine v2 * Focus: Strength, Anti-Tamper, Anti-Hook, Valid Luau */ class LuartexObfuscator { private $key; private $code; private $preset; public function __construct($code, $preset) { $this->code = $code; $this->preset = $preset; $this->key = [rand(50, 200), rand(50, 200), rand(50, 200)]; } private function generateRandomName($length = 8) { $chars = 'iIlL10'; $res = '_'; for ($i = 0; $i < $length; $i++) { $res .= $chars[rand(0, strlen($chars) - 1)]; } return $res; } private function multiXorEncrypt($data) { $output = []; $keyLen = count($this->key); for ($i = 0; $i < strlen($data); $i++) { $output[] = ord($data[$i]) ^ $this->key[$i % $keyLen]; } return $output; } public function obfuscate() { $encryptedData = $this->multiXorEncrypt($this->code); $byteString = implode(',', $encryptedData); $keyString = implode(',', $this->key); // Advanced Protection Snippets $antiHook = " local _L_G = getfenv(0) local _L_CORE = { ['loadstring'] = loadstring, ['setfenv'] = setfenv, ['getfenv'] = getfenv, ['pcall'] = pcall, ['bit32'] = bit32, ['string'] = string, ['table'] = table } -- Check for hooked functions local function _L_V_H() if debug and debug.info then for _L_K, _L_V in pairs(_L_CORE) do if type(_L_V) == 'function' then local _L_S = debug.info(_L_V, 's') if _L_S ~= '[C]' and _L_S ~= '=[C]' then return false -- Function is hooked by Lua end end end end return true end"; $antiTamper = " local _L_ST = os.clock() local function _L_C_T() if os.clock() - _L_ST > 1.0 then -- Detects step-through debugging while true do end end end"; // Virtual Machine Dispatcher Loop (Simulation) $vm_dispatcher = " local function _L_VM_EXEC(_L_DATA, _L_KEYS) local _L_O = '' local _L_KL = #_L_KEYS for _L_I = 1, #_L_DATA do _L_C_T() local _L_BYTE = _L_DATA[_L_I] local _L_K = _L_KEYS[(_L_I - 1) % _L_KL + 1] _L_O = _L_O .. _L_CORE.string.char(_L_CORE.bit32.bxor(_L_BYTE, _L_K)) end local _L_F, _L_E = _L_CORE.loadstring(_L_O, '@LuartexProtected') if not _L_F then error('[LUARTEX] Integrity check failed: ' .. tostring(_L_E)) end -- Isolate environment _L_CORE.setfenv(_L_F, getfenv(2)) return _L_F() end"; $loader = "--[[ LUARTEX VM PROTECTION v1.1.0-STABLE [PROTECTION LEVEL: " . strtoupper($this->preset) . "] [ANTI-TAMPER: ENABLED] [ANTI-HOOK: ENABLED] ]] "; $loader .= "return (function(...) $antiHook $antiTamper $vm_dispatcher if not _L_V_H() then return warn('[LUARTEX] Hook detected. Execution aborted.') end local _L_D = {" . $byteString . "} local _L_K = {" . $keyString . "} local _L_S, _L_R = _L_CORE.pcall(_L_VM_EXEC, _L_D, _L_K) if not _L_S then warn('[LUARTEX] Runtime Protection: ' .. tostring(_L_R)) end return _L_R end)(...) "; return $loader; } } $obfuscator = new LuartexObfuscator($code, $preset); $protectedCode = $obfuscator->obfuscate(); // Log to DB try { $pdo = db(); $stmt = $pdo->prepare("INSERT INTO scripts (original_size, protected_size, settings) VALUES (?, ?, ?)"); $stmt->execute([ strlen($code), strlen($protectedCode), json_encode(['preset' => $preset, 'junk' => $junkLevel, 'encrypt' => $encryptStrings]) ]); } catch (Exception $e) { // Silently fail DB log } echo json_encode([ 'success' => true, 'protected_code' => $protectedCode, 'stats' => [ 'original_size' => strlen($code), 'protected_size' => strlen($protectedCode), 'entropy' => 0.994 ] ]);