92 lines
3.5 KiB
JavaScript
92 lines
3.5 KiB
JavaScript
document.addEventListener('DOMContentLoaded', () => {
|
|
const inputArea = document.getElementById('input-code');
|
|
const outputArea = document.getElementById('output-code');
|
|
const protectBtn = document.getElementById('protect-btn');
|
|
const terminal = document.getElementById('terminal');
|
|
const copyBtn = document.getElementById('copy-btn');
|
|
|
|
function log(message, type = 'info') {
|
|
const entry = document.createElement('div');
|
|
entry.className = `log-entry log-${type}`;
|
|
const time = new Date().toLocaleTimeString([], { hour12: false });
|
|
entry.textContent = `[${time}] ${message}`;
|
|
terminal.appendChild(entry);
|
|
terminal.scrollTop = terminal.scrollHeight;
|
|
}
|
|
|
|
async function sleep(ms) {
|
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
}
|
|
|
|
protectBtn.addEventListener('click', async () => {
|
|
const code = inputArea.value.trim();
|
|
if (!code) {
|
|
log('FAILED: No source input detected.', 'warn');
|
|
return;
|
|
}
|
|
|
|
protectBtn.disabled = true;
|
|
protectBtn.style.opacity = '0.5';
|
|
|
|
terminal.innerHTML = '';
|
|
log(`INITIALIZING LUARTEX EXTREME KERNEL v3.5-DELTA`, 'info');
|
|
await sleep(300);
|
|
log(`TARGET: ROBLOX / LUAU ENVIRONMENT`, 'info');
|
|
await sleep(400);
|
|
|
|
log(`MAPPING: Randomized Opcode IDs (100-255)...`, 'info');
|
|
await sleep(400);
|
|
log(`ENCRYPTION: 4-Key XOR Rotation on Constants...`, 'info');
|
|
await sleep(400);
|
|
|
|
log(`VIRTUALIZATION: Register-based Dispatcher...`, 'info');
|
|
await sleep(300);
|
|
log(`VIRTUALIZATION: Dot-Syntax Global Resolver...`, 'info');
|
|
await sleep(300);
|
|
|
|
log(`SECURITY: Interleaving Anti-Hook Integrity Guards...`, 'info');
|
|
await sleep(400);
|
|
log(`SECURITY: Real-time tick() Timing Verification...`, 'info');
|
|
await sleep(300);
|
|
log(`SECURITY: debug.info Native Source Checks...`, 'info');
|
|
await sleep(200);
|
|
log(`SECURITY: Anti-Tamper State Synchronization...`, 'info');
|
|
await sleep(200);
|
|
|
|
log(`STRENGTHENING: Injecting Junk Opcodes...`, 'info');
|
|
await sleep(100);
|
|
|
|
try {
|
|
const response = await fetch('process.php', {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify({ code })
|
|
});
|
|
|
|
const data = await response.json();
|
|
|
|
if (data.success) {
|
|
await sleep(500);
|
|
outputArea.value = data.protected_code;
|
|
log(`SUCCESS: VM Locked. Final Size: ${data.stats.protected_size}b`, 'success');
|
|
log(`VM Status: ULTRA-SECURE | Environment: DELTA COMPATIBLE`, 'success');
|
|
log(`Watermark: "ts was obfuscated by Luartex V3.2" injected.`, 'info');
|
|
} else {
|
|
log(`CRITICAL ERROR: ${data.error}`, 'warn');
|
|
}
|
|
} catch (err) {
|
|
log(`ENGINE FAILURE: ${err.message}`, 'warn');
|
|
} finally {
|
|
protectBtn.disabled = false;
|
|
protectBtn.style.opacity = '1';
|
|
}
|
|
});
|
|
|
|
copyBtn.addEventListener('click', () => {
|
|
if (!outputArea.value) return;
|
|
navigator.clipboard.writeText(outputArea.value);
|
|
const originalText = copyBtn.textContent;
|
|
copyBtn.textContent = 'LOCKED & COPIED';
|
|
setTimeout(() => copyBtn.textContent = originalText, 2000);
|
|
});
|
|
}); |