|
1 | | -(function(_0xCORE) { |
2 | | - const _0xBC = (l) => { let r = "I"; for(let i=0; i<l; i++) r += "Il".charAt(Math.floor(Math.random() * 2)); return r; }; |
3 | | - const _0xS = (h) => h.split(',').map(b => String.fromCharCode(parseInt(b, 16) ^ 0x6F)).join(''); |
| 1 | +(function() { |
| 2 | + const POBFUS_LOGO = ` _______ __ ___ |
| 3 | +|_ __ \\ [ | .' ..] |
| 4 | + | |__) | .--. | |.--. _| |_ __ _ .--. |
| 5 | + | ___// .'\`\\ \\| '/'\`\\ \\'-| |-'[ | | | ( (\`\\] |
| 6 | + _| |_ | \\__. || \\__/ | | | | \\_/ |, \`'.'. |
| 7 | +|_____| '.__.'[__;.__.' [___] '.__.'_/([__) ) |
| 8 | + |
| 9 | + [ Pobfus 1.11.01 | CamBuscate 0.2.1 ]`; |
4 | 10 |
|
5 | | - const _0xROASTS = [ |
| 11 | + const ROASTS = [ |
6 | 12 | "your decompiler likes me~ too much...", |
7 | 13 | "feed me to your poor decompiler senpai!!!~", |
8 | | - "is that a hook? how aggressive, senpai~", |
9 | | - "your decompiler is blushing at this complexity~" |
| 14 | + "staring at my bytecode again? how lewd~", |
| 15 | + "is that a hook? how aggressive, senpai~" |
10 | 16 | ]; |
11 | 17 |
|
12 | | - const _STR = { |
13 | | - logo: ` _______ __ ___ \n|_ __ \\ [ | .' ..] \n | |__) | .--. | |.--. _| |_ __ _ .--. \n | ___// .'\`\\ \\| '/'\`\\ \\'-| |-'[ | | | ( (\`\\] \n _| |_ | \\__. || \\__/ | | | | \\_/ |, \`'.'. \n|_____| '.__.'[__;.__.' [___] '.__.'_/([__) ) \n \n [ Pobfus 1.11.01 | CamBuscate 0.2.1 ]`, |
14 | | - ui_run: _0xS("3C,20,22,3F,26,23,2A,4F,33,2E,21,20"), // "COMPILE_DATA" |
15 | | - ui_copy: _0xS("2C,20,3F,36"), // "COPY" |
16 | | - ui_dl: _0xS("2D,3E,37,21,2E,20,2E,2B,2B,2B") // "DOWNLOAD..." |
| 18 | + const generateBarcode = (l) => { |
| 19 | + let r = "I"; |
| 20 | + for(let i=0; i<l; i++) r += "Il".charAt(Math.floor(Math.random() * 2)); |
| 21 | + return r; |
| 22 | + }; |
| 23 | + |
| 24 | + const generateFileName = () => { |
| 25 | + const c = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*"; |
| 26 | + let r = "pobfus-"; |
| 27 | + for(let i=0; i<25; i++) r += c.charAt(Math.floor(Math.random() * c.length)); |
| 28 | + return r + ".lua"; |
17 | 29 | }; |
18 | 30 |
|
19 | 31 | document.addEventListener('DOMContentLoaded', () => { |
20 | | - document.getElementById('logo').textContent = _STR.logo; |
21 | | - document.getElementById('go').innerText = _STR.ui_run; |
22 | | - document.getElementById('cp').innerText = _STR.ui_copy; |
23 | | - document.getElementById('dl').innerText = _STR.ui_dl; |
24 | | - }); |
| 32 | + document.getElementById('logo').textContent = POBFUS_LOGO; |
25 | 33 |
|
26 | | - window.run = async function() { |
27 | | - const _i = document.getElementById('in'); |
28 | | - const _o = document.getElementById('out'); |
29 | | - const _s = document.getElementById('status'); |
30 | | - const _b = document.getElementById('go'); |
| 34 | + const btnRun = document.getElementById('go'); |
| 35 | + const btnCopy = document.getElementById('cp'); |
| 36 | + const btnDown = document.getElementById('dl'); |
| 37 | + const input = document.getElementById('in'); |
| 38 | + const output = document.getElementById('out'); |
| 39 | + const status = document.getElementById('status'); |
31 | 40 |
|
32 | | - if (!_i.value.trim()) return; |
33 | | - _b.disabled = true; |
34 | | - _s.innerText = "CAMBUSCATE_0.2.1: STABILIZING_PRINT_STREAMS..."; |
| 41 | + btnRun.onclick = async () => { |
| 42 | + if (!input.value.trim()) return; |
| 43 | + |
| 44 | + btnRun.disabled = true; |
| 45 | + status.innerText = "CAMBUSCATE: VIRTUALIZING_STREAMS..."; |
| 46 | + |
| 47 | + await new Promise(r => setTimeout(r, 1000)); |
35 | 48 |
|
36 | | - await new Promise(r => setTimeout(r, 1000)); |
| 49 | + try { |
| 50 | + const key = Math.floor(Math.random() * 90) + 40; |
| 51 | + const bytes = input.value.split(''); |
| 52 | + let stream = []; |
37 | 53 |
|
38 | | - try { |
39 | | - const _k = Math.floor(Math.random() * 90) + 40; |
40 | | - const _raw = _i.value.split(''); |
41 | | - let _stream = []; |
| 54 | + bytes.forEach((char, i) => { |
| 55 | + stream.push("0x" + (char.charCodeAt(0) ^ key).toString(16).toUpperCase()); |
| 56 | + // The "Screaming Middle" Roast Injection |
| 57 | + if (i % 8 === 0) { |
| 58 | + const roast = ROASTS[Math.floor(Math.random() * ROASTS.length)]; |
| 59 | + stream.push(`"${roast}_${Math.random().toString(36).substring(7)}"`); |
| 60 | + } |
| 61 | + }); |
42 | 62 |
|
43 | | - // Chaos Injection Logic |
44 | | - _raw.forEach((c, idx) => { |
45 | | - _stream.push("0x" + (c.charCodeAt(0) ^ _k).toString(16).toUpperCase()); |
46 | | - if (idx % 8 === 0) { |
47 | | - const r = _0xROASTS[Math.floor(Math.random()*_0xROASTS.length)]; |
48 | | - _stream.push(`"${r}_${Math.random().toString(36).substring(4)}"`); |
49 | | - } |
50 | | - }); |
| 63 | + const v = { |
| 64 | + env: generateBarcode(12), |
| 65 | + out: generateBarcode(10), |
| 66 | + tab: generateBarcode(14), |
| 67 | + vm: generateBarcode(16) |
| 68 | + }; |
51 | 69 |
|
52 | | - const _v = { env: _0xBC(8), vm: _0xBC(10), out: _0xBC(9), tab: _0xBC(11) }; |
| 70 | + // The MoonSec-Style Minified Brick Construction |
| 71 | + let lua = `--[[${POBFUS_LOGO}\n [!] POBFUS_V1.11.01\n [!] ENGINE: CAMBUSCATE_0.2.1]]\n`; |
| 72 | + |
| 73 | + // Anti-Decompiler Performance Slop |
| 74 | + for(let i=1; i<=3; i++) { |
| 75 | + lua += `local P_${i}="";for i=1,350 do P_${i}=P_${i}.."${Math.random().toString(36).substring(7)}" end;`; |
| 76 | + } |
53 | 77 |
|
54 | | - // MINIFIED OUTPUT CONSTRUCTION |
55 | | - let _p = `--[[${_STR.logo}\n[!] POBFUS_1.11.01]] `; |
56 | | - |
57 | | - // Environment Lockdown |
58 | | - _p += `local ${_v.env}=(getfenv(0) or _G);local ${_v.out}="";local ${_v.tab}={${_stream.join(',')}};`; |
59 | | - |
60 | | - // Fixed Byte-Slide VM (Handles Print Stability) |
61 | | - _p += `local function ${_v.vm}(d,k)for _,v in pairs(d)do if type(v)=="\110\117\109\98\101\114"then `; |
62 | | - _p += `${_v.out}=${_v.out}..${_v.env}["\115\116\114\105\110\103"]["\99\104\97\114"](${_v.env}["\98\105\116\51\50"]["\98\120\111\114"](v,k))`; |
63 | | - _p += `else local _="${_0xROASTS[1]}" end end;`; |
64 | | - |
65 | | - // loadstring Gate |
66 | | - _p += `local x,e=(loadstring or load)(${_v.out});if x then local s,m=pcall(x)if not s then warn("\80\79\66\70\85\83\95\82\85\78\84\73\77\69\95\69\82\82: "..tostring(m))end else warn("\80\79\66\70\85\83\95\86\77\95\69\82\82: "..tostring(e))end end;`; |
67 | | - _p += `${_v.vm}(${_v.tab},${_k});`; |
| 78 | + // Core Logic |
| 79 | + lua += `local ${v.env}=(getfenv(0) or _G);local ${v.out}="";local ${v.tab}={${stream.join(',')}};`; |
| 80 | + lua += `local function ${v.vm}(d,k)for _,v in pairs(d)do if type(v)=="\110\117\109\98\101\114"then `; |
| 81 | + lua += `${v.out}=${v.out}..${v.env}["\115\116\114\105\110\103"]["\99\104\97\114"](${v.env}["\98\105\116\51\50"]["\98\120\111\114"](v,k))`; |
| 82 | + lua += `else local _="${ROASTS[1]}" end end;`; |
| 83 | + lua += `local x,e=(loadstring or load)(${v.out});if x then local s,m=pcall(x)if not s then warn("\82\85\78\84\73\77\69\95\69\82\82: "..tostring(m))end else warn("\86\77\95\69\82\82: "..tostring(e))end end;`; |
| 84 | + lua += `${v.vm}(${v.tab},${key});`; |
68 | 85 |
|
69 | | - _o.value = _p; |
70 | | - _s.innerText = "POBFUS_1.11.01: STABLE"; |
71 | | - document.getElementById('dl').style.display = 'inline-block'; |
| 86 | + // Table Termination Slop |
| 87 | + lua += `local ${generateBarcode(8)}={["\82\79\65\83\84"]="${ROASTS[2]}",["\74\85\78\75"]="${Math.random().toString(36).repeat(5)}"};`; |
72 | 88 |
|
73 | | - } catch (e) { _s.innerText = "CRITICAL_COMPILER_FAILURE"; } |
74 | | - finally { _b.disabled = false; } |
75 | | - }; |
| 89 | + output.value = lua; |
| 90 | + btnDown.style.visibility = "visible"; |
| 91 | + status.innerText = "POBFUS: SUCCESS"; |
| 92 | + } catch (e) { |
| 93 | + status.innerText = "ERROR: COMPILER_CRASH"; |
| 94 | + } finally { |
| 95 | + btnRun.disabled = false; |
| 96 | + } |
| 97 | + }; |
76 | 98 |
|
77 | | - // Randomized Filename |
78 | | - const _0xFILE = () => { |
79 | | - const c = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*"; |
80 | | - let r = "pobfus-"; |
81 | | - for(let i=0; i<25; i++) r += c.charAt(Math.floor(Math.random()*c.length)); |
82 | | - return r + ".lua"; |
83 | | - }; |
| 99 | + btnCopy.onclick = () => { |
| 100 | + output.select(); |
| 101 | + document.execCommand('copy'); |
| 102 | + status.innerText = "COPIED_TO_CLIPBOARD"; |
| 103 | + }; |
84 | 104 |
|
85 | | - document.getElementById('go').onclick = window.run; |
86 | | - document.getElementById('cp').onclick = () => { document.getElementById('out').select(); document.execCommand('copy'); }; |
87 | | - document.getElementById('dl').onclick = () => { |
88 | | - const a = document.createElement('a'); |
89 | | - a.href = URL.createObjectURL(new Blob([document.getElementById('out').value])); |
90 | | - a.download = _0xFILE(); |
91 | | - a.click(); |
92 | | - }; |
93 | | -})(window); |
| 105 | + btnDown.onclick = () => { |
| 106 | + const blob = new Blob([output.value], { type: 'text/plain' }); |
| 107 | + const a = document.createElement('a'); |
| 108 | + a.href = URL.createObjectURL(blob); |
| 109 | + a.download = generateFileName(); |
| 110 | + a.click(); |
| 111 | + status.innerText = "FILE_EXPORTED"; |
| 112 | + }; |
| 113 | + }); |
| 114 | +})(); |
0 commit comments