|
1 | | -(function() { |
2 | | - const iel = document.getElementById('in'); |
3 | | - const oel = document.getElementById('out'); |
4 | | - const log = document.getElementById('log'); |
5 | | - const upInput = document.getElementById('up'); |
6 | | - const mob = document.getElementById('mob'); |
| 1 | +/** |
| 2 | + * pobfus // v1.11.06 STABLE |
| 3 | + * repository logic: ghost-edition (root-level) |
| 4 | + * domain: tenringsofdoom1x.github.io |
| 5 | + */ |
7 | 6 |
|
8 | | - const push = (t) => { |
9 | | - log.innerText = `> ${t}`; |
10 | | - setTimeout(() => { if(log.innerText === `> ${t}`) log.innerText = ''; }, 4000); |
11 | | - }; |
| 7 | +const iel = document.getElementById('in'); // Input Textarea |
| 8 | +const oel = document.getElementById('out'); // Output Textarea |
| 9 | +const overlay = document.getElementById('overlay'); |
| 10 | +const lbar = document.getElementById('lbar'); |
| 11 | +const stxt = document.getElementById('stxt'); |
12 | 12 |
|
13 | | - // --- the auto-minify engine --- |
14 | | - const minifyLogic = (src) => { |
15 | | - return src |
16 | | - .replace(/--\[\[[\s\S]*?\]\]/g, '') // remove multi-line comments |
17 | | - .replace(/--.*$/gm, '') // remove single-line comments |
18 | | - .replace(/\s+/g, ' ') // collapse whitespace |
19 | | - .trim(); |
20 | | - }; |
| 13 | +// helper: generates randomized IlIlI variable names for Lua |
| 14 | +const gs = (l) => { |
| 15 | + let s = 'I'; |
| 16 | + for(let i=0; i<l; i++) s += (Math.random() > 0.5 ? 'l' : 'I'); |
| 17 | + return s; |
| 18 | +}; |
21 | 19 |
|
22 | | - const todec = (s) => s.split('').map(c => "\\" + c.charCodeAt(0)).join(''); |
23 | | - |
24 | | - const handleFile = (file) => { |
25 | | - if (!file) return; |
26 | | - const ext = file.name.split('.').pop().toLowerCase(); |
27 | | - if (['lua', 'js', 'txt'].indexOf(ext) === -1) return push("err_type_refused"); |
28 | | - const reader = new FileReader(); |
29 | | - reader.onload = (f) => { iel.value = f.target.result; push("stream_imported"); }; |
30 | | - reader.readAsText(file); |
31 | | - }; |
32 | | - |
33 | | - upInput.onchange = (e) => { handleFile(e.target.files[0]); upInput.value = ''; }; |
| 20 | +// helper: generates randomized ID for filenames |
| 21 | +const genID = () => { |
| 22 | + const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; |
| 23 | + let res = ''; |
| 24 | + for(let i=0; i<11; i++) res += chars.charAt(Math.floor(Math.random() * chars.length)); |
| 25 | + return res; |
| 26 | +}; |
34 | 27 |
|
35 | | - iel.addEventListener('dragover', (e) => { e.preventDefault(); iel.style.background = "#111"; }); |
36 | | - iel.addEventListener('dragleave', () => { iel.style.background = ""; }); |
37 | | - iel.addEventListener('drop', (e) => { |
38 | | - e.preventDefault(); |
39 | | - iel.style.background = ""; |
40 | | - handleFile(e.dataTransfer.files[0]); |
41 | | - }); |
| 28 | +// Human-like phrases (no underscores) |
| 29 | +const phrases = [ |
| 30 | + "mapping virtual instructions", |
| 31 | + "scanning for logical vulnerabilities", |
| 32 | + "shadowing global environment", |
| 33 | + "applying ghost layer encryption", |
| 34 | + "injecting randomized junk layers", |
| 35 | + "wrapping execution scream", |
| 36 | + "finalizing distribution blob", |
| 37 | + "hiding internal warnings" |
| 38 | +]; |
42 | 39 |
|
43 | | - // --- core processing --- |
44 | | - document.getElementById('go').onclick = () => { |
45 | | - let src = iel.value.trim(); |
46 | | - if(!src) return push("err_buffer_null"); |
| 40 | +const executeProcess = () => { |
| 41 | + const src = iel.value.trim(); |
| 42 | + if(!src) return; |
47 | 43 |
|
48 | | - push("minifying_stream..."); |
49 | | - |
50 | | - setTimeout(() => { |
51 | | - try { |
52 | | - // step 1: auto-minify |
53 | | - src = minifyLogic(src); |
54 | | - push("building_void..."); |
| 44 | + // UI Reset |
| 45 | + overlay.style.display = 'flex'; |
| 46 | + lbar.style.transition = 'none'; |
| 47 | + lbar.style.width = '0%'; |
| 48 | + |
| 49 | + // Trigger 15s linear animation |
| 50 | + setTimeout(() => { |
| 51 | + lbar.style.transition = 'width 15s linear'; |
| 52 | + lbar.style.width = '100%'; |
| 53 | + }, 50); |
55 | 54 |
|
56 | | - // step 2: godly virtualization |
57 | | - const k = Math.floor(Math.random() * 45) + 32; |
58 | | - const d = Array.from(src).map(x => x.charCodeAt(0) ^ k).join(','); |
59 | | - const h = todec("pobfus: logic active"); |
| 55 | + // Shuffle and display phrases |
| 56 | + let shuffled = phrases.sort(() => 0.5 - Math.random()); |
| 57 | + shuffled.forEach((m, i) => { |
| 58 | + setTimeout(() => { |
| 59 | + stxt.innerText = m + "..."; |
| 60 | + }, i * 1800); |
| 61 | + }); |
60 | 62 |
|
61 | | - let res = `--[[\n pobfus // v1.11.05\n auto-minified godly build\n]]\n\n`; |
62 | | - res += `task.spawn(function() while task.wait(120) do print("${h}") end end);\n\n`; |
63 | | - res += `local _0x_mem = {${d}}; \n`; |
64 | | - res += `local _success, _error = pcall(function() \n`; |
65 | | - |
66 | | - if (mob && mob.checked) { |
67 | | - res += ` local _0x_buf = {}; for _, v in pairs(_0x_mem) do table.insert(_0x_buf, string.char(bit32.bxor(v, ${k}))) end; local _0x_str = table.concat(_0x_buf); \n`; |
68 | | - } else { |
69 | | - res += ` local _0x_str = ""; for _, v in pairs(_0x_mem) do _0x_str = _0x_str .. string.char(bit32.bxor(v, ${k})) end; \n`; |
70 | | - } |
71 | | - |
72 | | - res += ` local _0x_env = setmetatable({}, { \n`; |
73 | | - res += ` __index = function(_, k) \n`; |
74 | | - res += ` if k == "debug" or k == "getfenv" then return function() end end; \n`; |
75 | | - res += ` return (getgenv and getgenv()[k] or _G[k]) \n`; |
76 | | - res += ` end, \n`; |
77 | | - res += ` __metatable = "locked" \n`; |
78 | | - res += ` }); \n`; |
79 | | - |
80 | | - res += ` local _0x_vm = loadstring(_0x_str); \n`; |
81 | | - res += ` setfenv(_0x_vm, _0x_env); \n`; |
82 | | - res += ` task.spawn(_0x_vm); \n`; |
83 | | - res += `end); \n`; |
84 | | - |
85 | | - oel.value = res; |
86 | | - push("build_complete"); |
87 | | - } catch (e) { |
88 | | - push("build_fault"); |
| 63 | + // Main Encryption Logic (After 15s) |
| 64 | + setTimeout(() => { |
| 65 | + try { |
| 66 | + const k = Math.floor(Math.random() * 80) + 20; |
| 67 | + const watermark = "obfuscated by pobfus // tenringsofdoom1x.github.io"; |
| 68 | + |
| 69 | + // SNEAKY: Warning is buried in the encrypted payload |
| 70 | + const protection = `local _w = "${watermark}"; if not _G.pobfus_verified then warn(_w) end; `; |
| 71 | + |
| 72 | + // Convert to XOR-encrypted string |
| 73 | + const d = (protection + src).split('').map(c => "\\" + (c.charCodeAt(0) ^ k)).join(''); |
| 74 | + |
| 75 | + const f = gs(12); // Shadowed function name |
| 76 | + let b = `--[[ ${watermark} ]]\n`; |
| 77 | + |
| 78 | + // DYNAMIC JUNK: Random lines to confuse de-obfuscators |
| 79 | + const junkLines = Math.floor(Math.random() * 50) + 35; |
| 80 | + for(let i=0; i<junkLines; i++) { |
| 81 | + b += `local ${gs(10)} = ${Math.floor(Math.random()*1000)} + ${Math.floor(Math.random()*1000)};\n`; |
89 | 82 | } |
90 | | - }, 1200); |
91 | | - }; |
92 | 83 |
|
93 | | - document.getElementById('cp').onclick = () => { |
94 | | - if(!oel.value) return push("err_empty"); |
95 | | - navigator.clipboard.writeText(oel.value); |
96 | | - push("buffer_copied"); |
97 | | - }; |
| 84 | + // The Scream (Core Decryption Function) |
| 85 | + b += `local ${f} = function() `; |
| 86 | + b += `local _k,_d = ${k},"${d}"; `; |
| 87 | + b += `local _r = ""; for i=1,#_d do _r=_r..string.char(bit32.bxor(string.byte(string.sub(_d,i,i)),_k)) end; `; |
| 88 | + b += `local _x=loadstring(_r); if _x then setfenv(_x,getfenv()); _x(); end end; ${f}();\n`; |
| 89 | + |
| 90 | + // Post-junk footer |
| 91 | + for(let i=0; i<10; i++) b += `local ${gs(8)} = ${Math.random()};\n`; |
| 92 | + |
| 93 | + oel.value = b; |
| 94 | + overlay.style.display = 'none'; |
| 95 | + stxt.innerText = "preparing environment..."; |
| 96 | + |
| 97 | + } catch(e) { |
| 98 | + console.error("pobfus_err:", e); |
| 99 | + overlay.style.display = 'none'; |
| 100 | + } |
| 101 | + }, 15000); |
| 102 | +}; |
| 103 | + |
| 104 | +// Event Listeners |
| 105 | +document.getElementById('go').onclick = executeProcess; |
98 | 106 |
|
99 | | - document.getElementById('dl').onclick = () => { |
100 | | - if(!oel.value) return push("err_empty"); |
101 | | - const blob = new Blob([oel.value], {type: "text/plain"}); |
102 | | - const a = document.createElement('a'); |
103 | | - a.href = URL.createObjectURL(blob); |
104 | | - a.download = "pobfus_build.lua"; |
105 | | - a.click(); |
106 | | - push("file_dispatched"); |
107 | | - }; |
| 107 | +document.getElementById('dl').onclick = () => { |
| 108 | + if(!oel.value) return; |
| 109 | + const blob = new Blob([oel.value], {type: "text/plain"}); |
| 110 | + const a = document.createElement('a'); |
| 111 | + // Filename: pobfus-[RANDOM]-110.lua.txt |
| 112 | + a.href = URL.createObjectURL(blob); |
| 113 | + a.download = `pobfus-${genID()}-110.lua.txt`; |
| 114 | + a.click(); |
| 115 | + URL.revokeObjectURL(a.href); |
| 116 | +}; |
108 | 117 |
|
109 | | - document.getElementById('cl').onclick = () => { |
110 | | - iel.value = ""; oel.value = ""; push("buffer_purged"); |
111 | | - }; |
112 | | -})(); |
| 118 | +document.getElementById('cl').onclick = () => { |
| 119 | + iel.value = ""; |
| 120 | + oel.value = ""; |
| 121 | +}; |
0 commit comments