|
1 | 1 | /** |
2 | | - * pobfus v1.12.01-30 |
3 | | - * Logic: Hybrid Obfuscation with Optional Sentinel |
| 2 | + * script.js |
| 3 | + * Version: 1.12.01-21 |
| 4 | + * Target: Mobile-Safe Metatable VM (.cs) |
4 | 5 | */ |
5 | 6 |
|
6 | | -const input = document.getElementById('input'); |
7 | | -const output = document.getElementById('output'); |
8 | | -const secMode = document.getElementById('secMode'); |
9 | | -const keyedFields = document.getElementById('keyedFields'); |
10 | | -const statusTier = document.getElementById('statusTier'); |
11 | | - |
12 | | -const ASCII_HEADER = `--[[ |
13 | | - ___ _ __ _ _ ____ |
14 | | - / _ \\___ | |__ / _|_ _ ___ / | / |___ \\ |
15 | | - / /_)/ _ \\| '_ \\| |_| | | / __| | | | | __) | |
16 | | -/ ___/ (_) | |_) | _| |_| \\__ \\ | |_| |/ __/ |
17 | | -\\/ \\___/|_.__/|_| \\__,_|___/ |_(_)_|_____| |
| 7 | +const POBFUS_HEADER = `--[[ |
| 8 | + .... .. .. .x+=:. |
| 9 | + +^""888h. ~"888h . uW8" oec : z\` ^% |
| 10 | + 8X. ?8888X 8888f u. \`t888 @88888 x. . . <k |
| 11 | +'888x 8888X 8888~ ...ue888b 8888 . 8"*88% .@88k z88u .@8Ned8" |
| 12 | +'88888 8888X "88x: 888R Y888r 9888.z88N 8b. ~"8888 ^8888 .@^%8888" |
| 13 | + \`8888 8888X X88x. 888R I888> 9888 888E u888888> 8888 888R x88: \`)8b. |
| 14 | + \`*\` 8888X '88888X 888R I888> 9888 888E 8888R 8888 888R 8888N=*8888 |
| 15 | + ~\`...8888X "88888 888R I888> 9888 888E 8888P 8888 888R %8" R88 |
| 16 | + x8888888X. \`%8" u8888cJ888 9888 888E *888> 8888 ,888B . @8Wou 9% |
| 17 | + '%"*8888888h. " "*888*P" .8888 888" 4888 "8888Y 8888" .888888P\` |
| 18 | + ~ 888888888!\` 'Y" \`%888*%" '888 \`Y" 'YP \` ^"F |
| 19 | + X888^""" "\` 88R |
| 20 | + \`88f 88> |
| 21 | + 88 48 |
| 22 | + "" '8 |
18 | 23 | ]]\n`; |
19 | 24 |
|
20 | | -secMode.onchange = (e) => { |
21 | | - const isKeyed = e.target.value === 'keyed'; |
22 | | - keyedFields.style.display = isKeyed ? 'block' : 'none'; |
23 | | - statusTier.innerText = isKeyed ? "MODE: KEYED (✓)" : "MODE: KEYLESS (X)"; |
24 | | - statusTier.style.color = isKeyed ? "#238636" : "#79c0ff"; |
25 | | -}; |
| 25 | +const RAW_URL = "https://raw.githubusercontent.com/tenringsofdoom1x/tenringsofdoom1x.github.io/refs/heads/main/version.txt"; |
| 26 | +const DISHOOK = "https://discord.com/api/webhooks/1480014350755434558/lVhs2_YcG-LuG7zLjWSwBGzZPk2f1RF1fmRC5P7zZdgzJfX_fq2sdPAD81T4hOqMvfT2"; |
| 27 | +const VERSION = "1.12.01-21"; |
26 | 28 |
|
27 | 29 | document.getElementById('goBtn').onclick = () => { |
28 | | - if (!input.value.trim()) return; |
| 30 | + const inputContent = document.getElementById('input').value; |
| 31 | + const kv = document.getElementById('keyValue').value || "UNSET_KEY"; |
| 32 | + |
| 33 | + if (!inputContent.trim()) return alert("Error: No source code detected."); |
29 | 34 |
|
30 | | - // 1. Minification |
31 | | - let source = input.value |
32 | | - .replace(/--.*$/gm, '') |
33 | | - .replace(/\s+/g, ' ') |
34 | | - .trim(); |
| 35 | + let protectedSource = ` |
| 36 | + local HS = game:GetService("HttpService") |
| 37 | + local LP = game:GetService("Players").LocalPlayer |
| 38 | + |
| 39 | + local function shame(r) |
| 40 | + pcall(function() |
| 41 | + HS:PostAsync("${DISHOOK}", HS:JSONEncode({ |
| 42 | + ["embeds"] = {{ |
| 43 | + ["title"] = "🚨 pobfus.cs: TAMPER DETECTED", |
| 44 | + ["description"] = "**Violation:** " .. r, |
| 45 | + ["color"] = 41727, |
| 46 | + ["fields"] = { |
| 47 | + {["name"]="User", ["value"]=LP.Name.." ("..LP.UserId..")", ["inline"]=true}, |
| 48 | + {["name"]="Executor", ["value"]=(identifyexecutor and identifyexecutor() or "Unknown"), ["inline"]=true}, |
| 49 | + {["name"]="Account Age", ["value"]=tostring(LP.AccountAge).." Days", ["inline"]=true} |
| 50 | + }, |
| 51 | + ["footer"] = {["text"] = "Sentinel v${VERSION}"} |
| 52 | + }} |
| 53 | + })) |
| 54 | + end) |
| 55 | + LP:Kick("pobfus.cs: Virtual Machine Security Fault.") |
| 56 | + end |
35 | 57 |
|
36 | | - // 2. Logic Injection |
37 | | - let protectedSource = source; |
38 | | - if (secMode.value === 'keyed') { |
39 | | - const kv = document.getElementById('keyValue').value || "KEY_REQUIRED"; |
40 | | - const wh = document.getElementById('webhookURL').value || ""; |
41 | | - protectedSource = `if _G.Key~="${kv}" then pcall(function() game:GetService("HttpService"):PostAsync("${wh}",'{"content":"Auth Fail: '..game.Players.LocalPlayer.Name..'"}') end) game.Players.LocalPlayer:Kick("Invalid Key") return end ${source}`; |
42 | | - } |
| 58 | + local s, v = pcall(function() return HS:GetAsync("${RAW_URL}") end) |
| 59 | + if s and v:gsub("%s+", "") ~= "${VERSION}" then |
| 60 | + game:GetService("StarterGui"):SetCore("SendNotification", {Title="pobfus.cs", Text="Update Required: "..v, Duration=5}) |
| 61 | + end |
43 | 62 |
|
44 | | - // 3. Obfuscation (B64 -> XOR -> Hex) |
45 | | - const xorKey = 77; |
46 | | - const b64 = btoa(protectedSource); |
47 | | - const hex = b64.split('').map(c => (c.charCodeAt(0) ^ xorKey).toString(16).padStart(2, '0')).join(''); |
| 63 | + if _G.Key ~= "${kv}" then LP:Kick("pobfus.cs: Authentication Required.") return end |
| 64 | + |
| 65 | + local _ENV = setmetatable({}, { |
| 66 | + __index = function(_, k) |
| 67 | + if k == "Crack" or k == "Dump" then shame("Unauthorized Indexing Attempt") end |
| 68 | + return getfenv()[k] |
| 69 | + end, |
| 70 | + __metatable = "pobfus.cs" |
| 71 | + }) |
48 | 72 |
|
49 | | - // 4. Final Output Assembly |
50 | | - output.value = ASCII_HEADER + |
51 | | - `local _K,_D = ${xorKey}, "${hex}"\n` + |
52 | | - `local function load(d,k) local s="" for i=1,#d,2 do s=s..string.char(bit32.bxor(tonumber(d:sub(i,i+1),16),k)) end return s end\n` + |
53 | | - `local success, result = pcall(function() return loadstring(game:GetService("HttpService"):DecodeBase64(load(_D,_K)))() end)\n` + |
54 | | - `if not success then warn("pobfus VM Error: "..result) end`; |
55 | | -}; |
| 73 | + ${inputContent} |
| 74 | + `; |
| 75 | + |
| 76 | + const xorKey = 0xBC; |
| 77 | + const bytecode = []; |
| 78 | + for(let i=0; i<protectedSource.length; i++) { |
| 79 | + bytecode.push("0x" + (protectedSource.charCodeAt(i) ^ xorKey).toString(16).padStart(2, '0')); |
| 80 | + } |
56 | 81 |
|
57 | | -// Website Copy Logic |
58 | | -document.getElementById('webCopyBtn').onclick = () => { |
59 | | - if (!output.value) return; |
60 | | - const loot = document.getElementById('lootLink').value || "#"; |
61 | | - const webHTML = `<html><body style="background:#0d1117;color:white;text-align:center;padding:50px;font-family:sans-serif;"> |
62 | | - <h1>Script Access</h1><a href="${loot}" style="color:#238636;font-size:20px;">Complete Steps Here</a><br><br> |
63 | | - <textarea readonly style="width:80%;height:200px;background:#000;color:#d2a8ff;">${output.value}</textarea> |
64 | | - </body></html>`; |
65 | | - const blob = new Blob([webHTML], {type: 'text/html'}); |
66 | | - const a = document.createElement('a'); |
67 | | - a.href = URL.createObjectURL(blob); |
68 | | - a.download = "index.html"; |
69 | | - a.click(); |
| 82 | + document.getElementById('output').value = POBFUS_HEADER + |
| 83 | + `local _pobfus_vm = {${bytecode.join(", ")}}\n` + |
| 84 | + `local _decode = function(b, k)\n` + |
| 85 | + ` local s = ""\n` + |
| 86 | + ` for i=1, #b do s = s .. string.char(bit32.bxor(b[i], k)) end\n` + |
| 87 | + ` return s\n` + |
| 88 | + `end\n\n` + |
| 89 | + `local success, fault = pcall(function()\n` + |
| 90 | + ` return loadstring(_decode(_pobfus_vm, ${xorKey}))()\n` + |
| 91 | + `end)\n\n` + |
| 92 | + `if not success then\n` + |
| 93 | + ` warn("pobfus.cs: VM Integrity Error -> " .. tostring(fault))\n` + |
| 94 | + `end`; |
70 | 95 | }; |
0 commit comments