|
1 | | -/* 🛡️ POBFUS v1.0 | CORE ENGINE |
2 | | - DEVELOPED BY: tenringsofdoom1x |
3 | | - STATUS: STABLE_RELEASE |
4 | | -*/ |
| 1 | +/** |
| 2 | + * POBFUS v1.0.6 - CORE ENGINE LOGIC |
| 3 | + * Includes: Comment Stripping, Var Shuffling, & High-Density Slop |
| 4 | + */ |
5 | 5 |
|
6 | | -// THE HEART: This logo is the Key. Touching it breaks the math. |
7 | | -const SYNC_HEADER = `ooooooooo. .o8 .o88o. |
| 6 | +const LOGO = `ooooooooo. .o8 .o88o. |
8 | 7 | \`888 \`Y88. "888 888 \`" |
9 | 8 | 888 .d88' .ooooo. 888oooo. o888oo oooo oooo .oooo.o |
10 | 9 | 888ooo88P' d88' \`88b d88' \`88b 888 \`888 \`888 d88( "8 |
11 | 10 | 888 888 888 888 888 888 888 888 \`"Y88b. |
12 | 11 | 888 888 888 888 888 888 888 888 o. )88b |
13 | 12 | o888o \`Y8bod8P' \`Y8bod8P' o888o \`V88V"V8P' 8""888P' |
14 | | - [ POBFUS 1.0 | CAMBUSCATE 0.1.1 ]`; |
| 13 | + [ POBFUS 1.0.6 | tenringsofdoom1x ]`; |
15 | 14 |
|
16 | 15 | document.addEventListener('DOMContentLoaded', () => { |
17 | | - const display = document.getElementById('logoDisplay'); |
18 | | - if (display) display.innerText = SYNC_HEADER; |
| 16 | + const l = document.getElementById('logo'); |
| 17 | + if (l) l.innerText = LOGO; |
19 | 18 | }); |
20 | 19 |
|
21 | | -function _0xErr(m) { |
22 | | - const t = document.getElementById('errorToast'); |
23 | | - t.innerText = "⚠️ " + m; |
24 | | - t.style.display = 'block'; |
25 | | - setTimeout(() => t.style.display = 'none', 3500); |
| 20 | +function notify(m) { |
| 21 | + const t = document.getElementById('toast'); |
| 22 | + t.innerText = m; t.style.display = 'block'; |
| 23 | + setTimeout(() => { t.style.display = 'none'; }, 2000); |
26 | 24 | } |
27 | 25 |
|
28 | | -async function pobfusStart() { |
29 | | - const _input = document.getElementById('inputCode').value; |
30 | | - const _btn = document.getElementById('protectBtn'); |
31 | | - |
32 | | - if (!_input || _input.trim().length === 0) return _0xErr("Buffer Empty."); |
| 26 | +function test() { |
| 27 | + document.getElementById('in').value = "-- Pobfus Test\nprint('Testing Virtualization...')\nlocal x = 10\nif x == 10 then print('Logic Passed') end"; |
| 28 | + notify("TEST_DATA_LOADED"); |
| 29 | +} |
| 30 | + |
| 31 | +function randVar() { |
| 32 | + const c = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; |
| 33 | + let r = c.charAt(Math.floor(Math.random() * c.length)); |
| 34 | + for(let i=0; i<4; i++) r += c.charAt(Math.floor(Math.random() * c.length)); |
| 35 | + return r; |
| 36 | +} |
| 37 | + |
| 38 | +// --- BEAUTIFIER: STRIPS COMMENTS & WHITESPACE --- |
| 39 | +function beautifyInput(code) { |
| 40 | + let clean = code.replace(/--.*$/gm, ''); // Single line |
| 41 | + clean = clean.replace(/--\[\[[\s\S]*?\]\]/g, ''); // Multi line |
| 42 | + clean = clean.replace(/\n\s*\n/g, '\n'); // Double lines |
| 43 | + return clean.trim(); |
| 44 | +} |
| 45 | + |
| 46 | +async function run() { |
| 47 | + let src = document.getElementById('in').value; |
| 48 | + const btn = document.getElementById('go'); |
| 49 | + const out = document.getElementById('out'); |
33 | 50 |
|
34 | | - _btn.disabled = true; |
35 | | - _btn.innerText = "🏗️ VIRTUALIZING..."; |
| 51 | + if (!src.trim()) return notify("ERROR: BUFFER_EMPTY"); |
36 | 52 |
|
37 | | - await new Promise(r => setTimeout(r, 800)); |
| 53 | + btn.disabled = true; |
| 54 | + out.value = "[!] CLEANING SOURCE...\n[!] REMOVING COMMENTS...\n[!] PREPARING VM..."; |
| 55 | + |
| 56 | + // Run Beautification before processing |
| 57 | + src = beautifyInput(src); |
| 58 | + |
| 59 | + const phases = ["MAPPING_XOR", "INJECTING_SLOP", "FLATTENING_FLOW", "FINALIZING"]; |
| 60 | + for (let p of phases) { |
| 61 | + btn.innerText = p + "..."; |
| 62 | + out.value += `\n[SYSTEM]: ${p} [OK]`; |
| 63 | + await new Promise(r => setTimeout(r, 600)); |
| 64 | + } |
38 | 65 |
|
39 | 66 | try { |
40 | | - const _sig = SYNC_HEADER.length % 255; |
41 | | - const _seed = 0x6C; |
42 | | - const _k = _seed ^ _sig; |
43 | | - |
44 | | - // "Brick Wall" Byte Mapping |
45 | | - const _payload = _input.split('').map(c => { |
46 | | - const hex = (c.charCodeAt(0) ^ _k).toString(16).toUpperCase().padStart(2, '0'); |
47 | | - return "0x" + hex + Math.random().toString(36).substring(2, 5); |
48 | | - }); |
49 | | - |
50 | | - // Roast Selection (Hex-Encoded for "Hell" look) |
51 | | - const _roasts = [ |
52 | | - "Nice try, tenringsofdoom1x owns you.", |
53 | | - "Stay mad, skid.", |
54 | | - "Decompiler crashed. Try again?", |
55 | | - "Imagine trying to read this wall." |
56 | | - ]; |
57 | | - const _chosen = _roasts[Math.floor(Math.random() * _roasts.length)]; |
58 | | - const _trap = _chosen.split('').map(c => "0x" + (c.charCodeAt(0) ^ _k).toString(16).toUpperCase().padStart(2, '0')).join(','); |
59 | | - |
60 | | - // Chunking the payload for the "Fat" look |
61 | | - let _wall = ""; |
62 | | - for (let i = 0; i < _payload.length; i++) { |
63 | | - _wall += _payload[i] + (i === _payload.length - 1 ? "" : ", "); |
64 | | - if ((i + 1) % 8 === 0) _wall += "\n "; |
65 | | - } |
66 | | - |
67 | | - // OUTPUT CONSTRUCTION |
68 | | - const _output = `--[[ |
69 | | -${SYNC_HEADER} |
70 | | -]] |
71 | | -local Eb,ob,La,e_,Za,bb=type,bit32.bxor,getmetatable,pairs,nil,nil |
72 | | -local G,lb,Yb,L,Zc,gc,Dc,K,Nc,x,Xa,ea,h,zc,Pc,Hc,O,Ka,E,F,_c,ec,ab,Bc,Ub,Ua,qb,sa,fb,Sa,nc,ca,rb,nb,jb,fa_,vc,Ya,zb,a_ |
73 | | -
|
74 | | -gc,Sa,L = (string.char),(string.byte),(bit32.bxor); |
75 | | -local _D = { |
76 | | - ${_wall} |
| 67 | + const key = (LOGO.length % 255) ^ 108; |
| 68 | + |
| 69 | + // SLOP GENERATION (5-char junk tail) |
| 70 | + const slop = src.split('').map(c => { |
| 71 | + const h = (c.charCodeAt(0) ^ key).toString(16).toUpperCase().padStart(2, '0'); |
| 72 | + const j = Math.random().toString(36).substring(2, 7); |
| 73 | + return "0x" + h + j; |
| 74 | + }).join(','); |
| 75 | + |
| 76 | + // ROAST TRAP |
| 77 | + const rst = "tenringsofdoom1x_owns_you".split('').map(c => |
| 78 | + "0x" + (c.charCodeAt(0) ^ key).toString(16).toUpperCase().padStart(2, '0') |
| 79 | + ).join(','); |
| 80 | + |
| 81 | + // DYNAMIC LUA VARS |
| 82 | + const v = { p: randVar(), c: randVar(), x: randVar(), d: randVar(), t: randVar(), vm: randVar(), r: randVar() }; |
| 83 | + |
| 84 | + // THE MONOLITH BRICK WALL |
| 85 | + const final = `--[[${LOGO}\n [!] PROTECTED BY POBFUS v1.0.6\n [!] PROJECT: https://tenringsofdoom1x.github.io/Pobfus/]]\nlocal ${v.p},${v.c},${v.x}=pairs,(string.char),(bit32.bxor);local ${v.d}={${slop}}local ${v.t}={${rst}}local ${v.vm}=function(o,k)local r,s="",100 repeat if s==100 then for _,v in ${v.p}(o)do local h=tostring(v):sub(1,4)local b=tonumber(h,16)if b then r=r..${v.c}(${v.x}(b,k))end end s=0 end until s==0 return r end local ${v.r}=function()local k=108~(#debug.getinfo(1).source%255)local ok,res=pcall(function()return(loadstring or load)(${v.vm}(${v.data||v.d},k))end)if ok and res then pcall(res)else print(${v.vm}(${v.t},k))while true do end end end ${v.r}()`; |
| 86 | + |
| 87 | + out.value = final; |
| 88 | + document.getElementById('dl').style.display = 'inline-block'; |
| 89 | + notify("OBFUSCATION_COMPLETE"); |
| 90 | + |
| 91 | + } catch (e) { notify("ENGINE_CRASH"); } |
| 92 | + finally { btn.disabled = false; btn.innerText = "PROTECT_SOURCE"; } |
77 | 93 | } |
78 | | -local _T = {${_trap}} |
79 | | -
|
80 | | -local _VM = function(_o, _key) |
81 | | - local _r, _st = "", 100 |
82 | | - repeat |
83 | | - if _st == 100 then |
84 | | - for _, _v in pairs(_o) do |
85 | | - local _b = tonumber(tostring(_v):sub(1,4), 16) |
86 | | - if _b then _r = _r .. gc(L(_b, _key)) end |
87 | | - end |
88 | | - _st = 0 |
89 | | - end |
90 | | - until _st == 0 |
91 | | - return _r |
92 | | -end |
93 | | -
|
94 | | -local _RUN = function() |
95 | | - local _key = ${_seed} ~ (#debug.getinfo(1).source % 255) |
96 | | - local _ok, _res = pcall(function() return (loadstring or load)(_VM(_D, _key)) end) |
97 | | - if _ok and _res then pcall(_res) else print(_VM(_T, _key)) while true do end end |
98 | | -end |
99 | | -_RUN()`; |
100 | | - |
101 | | - document.getElementById('outputCode').value = _output; |
102 | | - } catch (e) { |
103 | | - _0xErr("Engine Collapse."); |
104 | | - } finally { |
105 | | - _btn.disabled = false; |
106 | | - _btn.innerText = "Deploy v1.0"; |
107 | | - } |
| 94 | + |
| 95 | +function copy() { |
| 96 | + const o = document.getElementById('out'); |
| 97 | + if (!o.value) return; o.select(); document.execCommand('copy'); |
| 98 | + notify("CLIPBOARD_UPDATED"); |
108 | 99 | } |
109 | 100 |
|
110 | | -function copyCode() { |
111 | | - const o = document.getElementById('outputCode'); |
112 | | - o.select(); |
113 | | - document.execCommand('copy'); |
114 | | - _0xErr("Build Copied to Clipboard!"); |
115 | | - } |
| 101 | +function save() { |
| 102 | + const c = document.getElementById('out').value; |
| 103 | + const b = new Blob([c], { type: 'text/plain' }); |
| 104 | + const u = URL.createObjectURL(b); |
| 105 | + const a = document.createElement('a'); |
| 106 | + a.href = u; a.download = 'pobfus_out.lua'; a.click(); |
| 107 | + URL.revokeObjectURL(u); notify("HEX_FILE_SAVED"); |
| 108 | + } |
0 commit comments