|
<!DOCTYPE html> |
|
<html lang="en"> |
|
<head> |
|
<meta charset="UTF-8"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
<title>XortronOS // CyberDesktop</title> |
|
<script src="https://cdn.tailwindcss.com"></script> |
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> |
|
<style> |
|
@import url('https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Orbitron:wght@400;700&display=swap'); |
|
|
|
:root { |
|
--primary: #00f0ff; |
|
--secondary: #ff00f0; |
|
--dark: #0a0a12; |
|
--darker: #050508; |
|
--light: #e0e0ff; |
|
} |
|
|
|
body { |
|
font-family: 'Share Tech Mono', monospace; |
|
background-color: var(--darker); |
|
color: var(--light); |
|
overflow: hidden; |
|
height: 100vh; |
|
user-select: none; |
|
} |
|
|
|
.cyber-font { |
|
font-family: 'Orbitron', sans-serif; |
|
} |
|
|
|
.window { |
|
border: 1px solid var(--primary); |
|
box-shadow: 0 0 15px var(--primary), |
|
inset 0 0 10px var(--primary); |
|
background: rgba(10, 10, 20, 0.9); |
|
border-radius: 0; |
|
} |
|
|
|
.window-header { |
|
background: linear-gradient(90deg, #0a0a20, #1a1a3a); |
|
border-bottom: 1px solid var(--primary); |
|
padding: 5px 10px; |
|
} |
|
|
|
.terminal { |
|
background-color: rgba(0, 0, 0, 0.85); |
|
font-family: 'Share Tech Mono', monospace; |
|
color: #00ff00; |
|
text-shadow: 0 0 5px #00ff00; |
|
} |
|
|
|
.glow-text { |
|
text-shadow: 0 0 5px var(--primary), |
|
0 0 10px var(--primary); |
|
} |
|
|
|
.taskbar { |
|
background: rgba(5, 5, 15, 0.9); |
|
border-top: 1px solid var(--primary); |
|
box-shadow: 0 0 20px var(--primary); |
|
} |
|
|
|
.icon { |
|
text-align: center; |
|
width: 80px; |
|
padding: 10px 5px; |
|
margin: 5px; |
|
border-radius: 5px; |
|
} |
|
|
|
.icon:hover { |
|
background: rgba(0, 240, 255, 0.2); |
|
} |
|
|
|
.icon:active { |
|
background: rgba(0, 240, 255, 0.4); |
|
} |
|
|
|
.file { |
|
padding: 5px; |
|
margin: 2px; |
|
border-radius: 3px; |
|
} |
|
|
|
.file:hover { |
|
background: rgba(0, 240, 255, 0.1); |
|
} |
|
|
|
.cursor-blink { |
|
animation: blink 1s infinite; |
|
} |
|
|
|
@keyframes blink { |
|
0%, 100% { opacity: 1; } |
|
50% { opacity: 0; } |
|
} |
|
|
|
.pulse { |
|
animation: pulse 2s infinite; |
|
} |
|
|
|
@keyframes pulse { |
|
0% { opacity: 0.5; } |
|
50% { opacity: 1; } |
|
100% { opacity: 0.5; } |
|
} |
|
|
|
::-webkit-scrollbar { |
|
width: 8px; |
|
height: 8px; |
|
} |
|
|
|
::-webkit-scrollbar-track { |
|
background: rgba(0, 0, 0, 0.2); |
|
} |
|
|
|
::-webkit-scrollbar-thumb { |
|
background: var(--primary); |
|
} |
|
|
|
.matrix-bg { |
|
position: fixed; |
|
top: 0; |
|
left: 0; |
|
width: 100%; |
|
height: 100%; |
|
z-index: -1; |
|
opacity: 0.5; |
|
} |
|
|
|
.browser-nav { |
|
background: rgba(15, 15, 25, 0.9); |
|
border-bottom: 1px solid var(--primary); |
|
padding: 5px; |
|
} |
|
|
|
.url-bar { |
|
background: rgba(0, 0, 0, 0.5); |
|
border: 1px solid var(--primary); |
|
color: var(--light); |
|
padding: 3px 10px; |
|
width: 100%; |
|
} |
|
</style> |
|
</head> |
|
<body> |
|
<canvas id="matrix" class="matrix-bg"></canvas> |
|
|
|
|
|
<div class="absolute left-0 top-0 p-4 flex flex-col"> |
|
<div class="icon" onclick="openApp('terminal')"> |
|
<div class="text-3xl text-center mb-1"><i class="fas fa-terminal text-green-500"></i></div> |
|
<div class="text-xs text-center">Terminal</div> |
|
</div> |
|
<div class="icon" onclick="openApp('file-explorer')"> |
|
<div class="text-3xl text-center mb-1"><i class="fas fa-folder text-yellow-500"></i></div> |
|
<div class="text-xs text-center">Files</div> |
|
</div> |
|
<div class="icon" onclick="openApp('hack-tools')"> |
|
<div class="text-3xl text-center mb-1"><i class="fas fa-user-secret text-red-500"></i></div> |
|
<div class="text-xs text-center">Hack Tools</div> |
|
</div> |
|
<div class="icon" onclick="openApp('network')"> |
|
<div class="text-3xl text-center mb-1"><i class="fas fa-network-wired text-blue-500"></i></div> |
|
<div class="text-xs text-center">Network</div> |
|
</div> |
|
<div class="icon" onclick="openApp('browser')"> |
|
<div class="text-3xl text-center mb-1"><i class="fas fa-globe text-purple-500"></i></div> |
|
<div class="text-xs text-center">DarkBrowser</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div id="windows-container"> |
|
|
|
<div id="terminal-window" class="window absolute top-16 left-16 w-2/3 h-2/3 hidden" style="z-index: 10;"> |
|
<div class="window-header flex justify-between items-center"> |
|
<div class="flex items-center"> |
|
<div class="w-3 h-3 rounded-full bg-red-500 mr-2"></div> |
|
<div class="w-3 h-3 rounded-full bg-yellow-500 mr-2"></div> |
|
<div class="w-3 h-3 rounded-full bg-green-500 mr-2"></div> |
|
<span class="cyber-font ml-2">Xortron-Terminal</span> |
|
</div> |
|
<div class="text-xs">root@xortron-os:~</div> |
|
<div class="flex"> |
|
<button class="px-2" onclick="minimizeWindow('terminal')">_</button> |
|
<button class="px-2" onclick="maximizeWindow('terminal')">□</button> |
|
<button class="px-2" onclick="closeWindow('terminal')">×</button> |
|
</div> |
|
</div> |
|
<div class="terminal p-2 h-full overflow-auto" id="terminal-content"> |
|
<div>Xortron Operating System v7.7.7</div> |
|
<div>Kernel 5.15.0-76-generic x86_64</div> |
|
<br> |
|
<div>Last login: <span id="login-time"></span> from 192.168.1.105</div> |
|
<br> |
|
<div class="flex items-center"> |
|
<span class="text-green-500">root@xortron-os:~#</span> |
|
<input type="text" class="bg-transparent border-none outline-none flex-1 ml-2 text-green-500" id="terminal-input" autofocus> |
|
<span class="cursor-blink">█</span> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div id="file-explorer-window" class="window absolute top-32 left-32 w-1/2 h-1/2 hidden" style="z-index: 9;"> |
|
<div class="window-header flex justify-between items-center"> |
|
<div class="flex items-center"> |
|
<div class="w-3 h-3 rounded-full bg-red-500 mr-2"></div> |
|
<div class="w-3 h-3 rounded-full bg-yellow-500 mr-2"></div> |
|
<div class="w-3 h-3 rounded-full bg-green-500 mr-2"></div> |
|
<span class="cyber-font ml-2">Xortron-Files</span> |
|
</div> |
|
<div class="text-xs">/root/files</div> |
|
<div class="flex"> |
|
<button class="px-2" onclick="minimizeWindow('file-explorer')">_</button> |
|
<button class="px-2" onclick="maximizeWindow('file-explorer')">□</button> |
|
<button class="px-2" onclick="closeWindow('file-explorer')">×</button> |
|
</div> |
|
</div> |
|
<div class="p-2 h-full overflow-auto"> |
|
<div class="flex"> |
|
<div class="w-1/4 border-r border-gray-700 pr-2"> |
|
<div class="text-xs text-gray-400 mb-2">LOCATIONS</div> |
|
<div class="file flex items-center py-1"> |
|
<i class="fas fa-home mr-2 text-blue-400"></i> |
|
<span>Home</span> |
|
</div> |
|
<div class="file flex items-center py-1"> |
|
<i class="fas fa-desktop mr-2 text-purple-400"></i> |
|
<span>Desktop</span> |
|
</div> |
|
<div class="file flex items-center py-1"> |
|
<i class="fas fa-download mr-2 text-green-400"></i> |
|
<span>Downloads</span> |
|
</div> |
|
<div class="file flex items-center py-1"> |
|
<i class="fas fa-database mr-2 text-yellow-400"></i> |
|
<span>Data</span> |
|
</div> |
|
<div class="file flex items-center py-1"> |
|
<i class="fas fa-network-wired mr-2 text-red-400"></i> |
|
<span>Network</span> |
|
</div> |
|
</div> |
|
<div class="w-3/4 pl-2"> |
|
<div class="flex justify-between items-center mb-2"> |
|
<div class="text-xs text-gray-400">/root/files</div> |
|
<div class="flex"> |
|
<button class="text-xs px-2 py-1 bg-gray-800 mr-1">New Folder</button> |
|
<button class="text-xs px-2 py-1 bg-gray-800">Upload</button> |
|
</div> |
|
</div> |
|
<div class="grid grid-cols-4 gap-2"> |
|
<div class="file text-center"> |
|
<div class="text-3xl mb-1"><i class="fas fa-folder text-yellow-500"></i></div> |
|
<div class="text-xs truncate">Documents</div> |
|
</div> |
|
<div class="file text-center"> |
|
<div class="text-3xl mb-1"><i class="fas fa-folder text-yellow-500"></i></div> |
|
<div class="text-xs truncate">Hack Tools</div> |
|
</div> |
|
<div class="file text-center"> |
|
<div class="text-3xl mb-1"><i class="fas fa-file-code text-blue-400"></i></div> |
|
<div class="text-xs truncate">script.py</div> |
|
</div> |
|
<div class="file text-center"> |
|
<div class="text-3xl mb-1"><i class="fas fa-file-alt text-gray-400"></i></div> |
|
<div class="text-xs truncate">notes.txt</div> |
|
</div> |
|
<div class="file text-center"> |
|
<div class="text-3xl mb-1"><i class="fas fa-file-archive text-purple-400"></i></div> |
|
<div class="text-xs truncate">backup.zip</div> |
|
</div> |
|
<div class="file text-center"> |
|
<div class="text-3xl mb-1"><i class="fas fa-key text-green-400"></i></div> |
|
<div class="text-xs truncate">keys.asc</div> |
|
</div> |
|
<div class="file text-center"> |
|
<div class="text-3xl mb-1"><i class="fas fa-database text-red-400"></i></div> |
|
<div class="text-xs truncate">passwords.db</div> |
|
</div> |
|
<div class="file text-center"> |
|
<div class="text-3xl mb-1"><i class="fas fa-file-image text-pink-400"></i></div> |
|
<div class="text-xs truncate">screenshot.png</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div id="hack-tools-window" class="window absolute top-48 left-48 w-1/2 h-1/3 hidden" style="z-index: 8;"> |
|
<div class="window-header flex justify-between items-center"> |
|
<div class="flex items-center"> |
|
<div class="w-3 h-3 rounded-full bg-red-500 mr-2"></div> |
|
<div class="w-3 h-3 rounded-full bg-yellow-500 mr-2"></div> |
|
<div class="w-3 h-3 rounded-full bg-green-500 mr-2"></div> |
|
<span class="cyber-font ml-2">Hack Tools v3.1.4</span> |
|
</div> |
|
<div class="text-xs">[Encrypted Connection Active]</div> |
|
<div class="flex"> |
|
<button class="px-2" onclick="minimizeWindow('hack-tools')">_</button> |
|
<button class="px-2" onclick="maximizeWindow('hack-tools')">□</button> |
|
<button class="px-2" onclick="closeWindow('hack-tools')">×</button> |
|
</div> |
|
</div> |
|
<div class="p-4 h-full overflow-auto"> |
|
<div class="grid grid-cols-3 gap-4"> |
|
<div class="p-3 border border-gray-700 hover:border-blue-400 cursor-pointer"> |
|
<div class="text-xl mb-2"><i class="fas fa-crosshairs text-red-400"></i> Port Scanner</div> |
|
<div class="text-xs text-gray-400">Scan for open ports and services</div> |
|
</div> |
|
<div class="p-3 border border-gray-700 hover:border-blue-400 cursor-pointer"> |
|
<div class="text-xl mb-2"><i class="fas fa-user-lock text-green-400"></i> Brute Force</div> |
|
<div class="text-xs text-gray-400">Password cracking utility</div> |
|
</div> |
|
<div class="p-3 border border-gray-700 hover:border-blue-400 cursor-pointer"> |
|
<div class="text-xl mb-2"><i class="fas fa-code text-yellow-400"></i> SQL Inject</div> |
|
<div class="text-xs text-gray-400">Database penetration tool</div> |
|
</div> |
|
<div class="p-3 border border-gray-700 hover:border-blue-400 cursor-pointer"> |
|
<div class="text-xl mb-2"><i class="fas fa-network-wired text-purple-400"></i> MITM</div> |
|
<div class="text-xs text-gray-400">Man-in-the-middle attack</div> |
|
</div> |
|
<div class="p-3 border border-gray-700 hover:border-blue-400 cursor-pointer"> |
|
<div class="text-xl mb-2"><i class="fas fa-bug text-blue-400"></i> Exploit DB</div> |
|
<div class="text-xs text-gray-400">Vulnerability database</div> |
|
</div> |
|
<div class="p-3 border border-gray-700 hover:border-blue-400 cursor-pointer"> |
|
<div class="text-xl mb-2"><i class="fas fa-mask text-pink-400"></i> Anonymizer</div> |
|
<div class="text-xs text-gray-400">TOR/VPN configuration</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div id="network-window" class="window absolute top-64 left-64 w-1/3 h-1/3 hidden" style="z-index: 7;"> |
|
<div class="window-header flex justify-between items-center"> |
|
<div class="flex items-center"> |
|
<div class="w-3 h-3 rounded-full bg-red-500 mr-2"></div> |
|
<div class="w-3 h-3 rounded-full bg-yellow-500 mr-2"></div> |
|
<div class="w-3 h-3 rounded-full bg-green-500 mr-2"></div> |
|
<span class="cyber-font ml-2">Network Monitor</span> |
|
</div> |
|
<div class="text-xs">12 active connections</div> |
|
<div class="flex"> |
|
<button class="px-2" onclick="minimizeWindow('network')">_</button> |
|
<button class="px-2" onclick="maximizeWindow('network')">□</button> |
|
<button class="px-2" onclick="closeWindow('network')">×</button> |
|
</div> |
|
</div> |
|
<div class="p-4 h-full overflow-auto"> |
|
<div class="mb-4"> |
|
<div class="flex justify-between text-xs mb-1"> |
|
<span>Bandwidth Usage</span> |
|
<span>3.7 MB/s ↓ | 1.2 MB/s ↑</span> |
|
</div> |
|
<div class="h-2 bg-gray-800 rounded-full overflow-hidden"> |
|
<div class="h-full bg-gradient-to-r from-blue-500 to-purple-500" style="width: 65%"></div> |
|
</div> |
|
</div> |
|
|
|
<div class="text-xs text-gray-400 mb-2">ACTIVE CONNECTIONS</div> |
|
<div class="space-y-2"> |
|
<div class="flex justify-between items-center p-2 bg-gray-900"> |
|
<div class="flex items-center"> |
|
<i class="fas fa-server text-green-400 mr-2"></i> |
|
<span>192.168.1.1:443</span> |
|
</div> |
|
<div class="text-xs text-green-400">ENCRYPTED</div> |
|
</div> |
|
<div class="flex justify-between items-center p-2 bg-gray-900"> |
|
<div class="flex items-center"> |
|
<i class="fas fa-globe text-blue-400 mr-2"></i> |
|
<span>104.18.25.36:80</span> |
|
</div> |
|
<div class="text-xs text-yellow-400">UNSECURED</div> |
|
</div> |
|
<div class="flex justify-between items-center p-2 bg-gray-900"> |
|
<div class="flex items-center"> |
|
<i class="fas fa-database text-purple-400 mr-2"></i> |
|
<span>74.91.123.45:3306</span> |
|
</div> |
|
<div class="text-xs text-red-400">VULNERABLE</div> |
|
</div> |
|
</div> |
|
|
|
<div class="mt-4"> |
|
<div class="text-xs text-gray-400 mb-2">NETWORK MAP</div> |
|
<div class="bg-gray-900 p-2 text-xs"> |
|
<div class="mb-1">└─ [YOU] 192.168.1.105</div> |
|
<div class="ml-4 mb-1">├─ Router 192.168.1.1</div> |
|
<div class="ml-4 mb-1">│ ├─ Device 192.168.1.102 (Mobile)</div> |
|
<div class="ml-4 mb-1">│ └─ Device 192.168.1.103 (Laptop)</div> |
|
<div class="ml-4">└─ [TOR Exit Node] 74.125.24.102</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div id="browser-window" class="window absolute top-20 left-40 w-1/2 h-3/4 hidden" style="z-index: 6;"> |
|
<div class="window-header flex justify-between items-center"> |
|
<div class="flex items-center"> |
|
<div class="w-3 h-3 rounded-full bg-red-500 mr-2"></div> |
|
<div class="w-3 h-3 rounded-full bg-yellow-500 mr-2"></div> |
|
<div class="w-3 h-3 rounded-full bg-green-500 mr-2"></div> |
|
<span class="cyber-font ml-2">DarkBrowser v1.3.7</span> |
|
</div> |
|
<div class="text-xs">[Secure Connection: TOR]</div> |
|
<div class="flex"> |
|
<button class="px-2" onclick="minimizeWindow('browser')">_</button> |
|
<button class="px-2" onclick="maximizeWindow('browser')">□</button> |
|
<button class="px-2" onclick="closeWindow('browser')">×</button> |
|
</div> |
|
</div> |
|
<div class="browser-nav flex items-center p-1"> |
|
<button class="px-2 mx-1"><i class="fas fa-arrow-left"></i></button> |
|
<button class="px-2 mx-1"><i class="fas fa-arrow-right"></i></button> |
|
<button class="px-2 mx-1"><i class="fas fa-redo"></i></button> |
|
<button class="px-2 mx-1"><i class="fas fa-home"></i></button> |
|
<input type="text" class="url-bar flex-1 mx-1" value="XORTRON" id="browser-url"> |
|
<button class="px-2 mx-1 bg-blue-600" onclick="navigateBrowser()"><i class="fas fa-arrow-right"></i></button> |
|
</div> |
|
<div class="h-full overflow-hidden bg-black"> |
|
<iframe |
|
src="https://darkc0de-chat.hf.space/" |
|
frameborder="0" |
|
width="100%" |
|
height="100%" |
|
style="background-color: black;" |
|
id="browser-frame" |
|
></iframe> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="taskbar fixed bottom-0 left-0 right-0 h-10 flex justify-between items-center px-4"> |
|
<div class="flex items-center"> |
|
<button class="cyber-font text-xl mr-4 glow-text">XORTRON</button> |
|
<button class="mx-2 text-sm" onclick="openApp('terminal')"><i class="fas fa-terminal mr-1"></i> Terminal</button> |
|
<button class="mx-2 text-sm" onclick="openApp('file-explorer')"><i class="fas fa-folder mr-1"></i> Files</button> |
|
<button class="mx-2 text-sm" onclick="openApp('hack-tools')"><i class="fas fa-user-secret mr-1"></i> Tools</button> |
|
<button class="mx-2 text-sm" onclick="openApp('browser')"><i class="fas fa-globe mr-1"></i> DarkBrowser</button> |
|
</div> |
|
<div class="flex items-center space-x-4"> |
|
<div class="text-xs"> |
|
<span id="clock" class="cyber-font"></span> |
|
<span class="mx-1">|</span> |
|
<span id="date"></span> |
|
</div> |
|
<div class="flex items-center"> |
|
<i class="fas fa-network-wired text-green-400 mr-1"></i> |
|
<div class="w-16 h-1 bg-gray-700 rounded-full overflow-hidden"> |
|
<div class="h-full bg-green-400" style="width: 80%"></div> |
|
</div> |
|
</div> |
|
<div class="flex items-center"> |
|
<i class="fas fa-shield-alt text-blue-400 mr-1"></i> |
|
<div class="text-xs">VPN:ON</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div id="notification" class="fixed bottom-16 right-4 bg-gray-900 border border-blue-400 p-3 text-sm max-w-xs hidden"> |
|
<div class="flex justify-between items-center mb-1"> |
|
<div class="text-blue-400 cyber-font">System Alert</div> |
|
<button onclick="hideNotification()">×</button> |
|
</div> |
|
<div id="notification-message"></div> |
|
</div> |
|
|
|
<script> |
|
|
|
const canvas = document.getElementById('matrix'); |
|
const ctx = canvas.getContext('2d'); |
|
|
|
canvas.width = window.innerWidth; |
|
canvas.height = window.innerHeight; |
|
|
|
const chars = "01"; |
|
const fontSize = 14; |
|
const columns = canvas.width / fontSize; |
|
|
|
const drops = []; |
|
for (let i = 0; i < columns; i++) { |
|
drops[i] = 1; |
|
} |
|
|
|
function drawMatrix() { |
|
ctx.fillStyle = 'rgba(5, 5, 15, 0.05)'; |
|
ctx.fillRect(0, 0, canvas.width, canvas.height); |
|
|
|
ctx.fillStyle = '#00f0ff'; |
|
ctx.font = fontSize + 'px monospace'; |
|
|
|
for (let i = 0; i < drops.length; i++) { |
|
const text = chars.charAt(Math.floor(Math.random() * chars.length)); |
|
ctx.fillText(text, i * fontSize, drops[i] * fontSize); |
|
|
|
if (drops[i] * fontSize > canvas.height && Math.random() > 0.975) { |
|
drops[i] = 0; |
|
} |
|
|
|
drops[i]++; |
|
} |
|
} |
|
|
|
setInterval(drawMatrix, 33); |
|
|
|
|
|
function openApp(app) { |
|
const window = document.getElementById(`${app}-window`); |
|
window.classList.remove('hidden'); |
|
bringToFront(app); |
|
|
|
|
|
showNotification(`${app} application launched`); |
|
|
|
|
|
if (app === 'terminal') { |
|
setTimeout(() => { |
|
const input = document.getElementById('terminal-input'); |
|
if (input) input.focus(); |
|
}, 100); |
|
} |
|
} |
|
|
|
function closeWindow(app) { |
|
document.getElementById(`${app}-window`).classList.add('hidden'); |
|
} |
|
|
|
function minimizeWindow(app) { |
|
|
|
showNotification(`${app} minimized to taskbar`); |
|
} |
|
|
|
function maximizeWindow(app) { |
|
const window = document.getElementById(`${app}-window`); |
|
if (window.classList.contains('w-full')) { |
|
window.classList.remove('w-full', 'h-full', 'top-0', 'left-0'); |
|
} else { |
|
window.classList.add('w-full', 'h-full', 'top-0', 'left-0'); |
|
} |
|
} |
|
|
|
function bringToFront(app) { |
|
const windows = document.querySelectorAll('.window'); |
|
let maxZ = 0; |
|
|
|
windows.forEach(w => { |
|
const z = parseInt(w.style.zIndex); |
|
if (z > maxZ) maxZ = z; |
|
}); |
|
|
|
document.getElementById(`${app}-window`).style.zIndex = maxZ + 1; |
|
} |
|
|
|
|
|
document.querySelectorAll('.window-header').forEach(header => { |
|
header.addEventListener('mousedown', function(e) { |
|
const window = this.parentElement; |
|
let offsetX = e.clientX - window.getBoundingClientRect().left; |
|
let offsetY = e.clientY - window.getBoundingClientRect().top; |
|
|
|
function moveWindow(e) { |
|
window.style.left = (e.clientX - offsetX) + 'px'; |
|
window.style.top = (e.clientY - offsetY) + 'px'; |
|
} |
|
|
|
function stopMove() { |
|
document.removeEventListener('mousemove', moveWindow); |
|
document.removeEventListener('mouseup', stopMove); |
|
} |
|
|
|
document.addEventListener('mousemove', moveWindow); |
|
document.addEventListener('mouseup', stopMove); |
|
|
|
bringToFront(window.id.split('-')[0]); |
|
}); |
|
}); |
|
|
|
|
|
const terminalInput = document.getElementById('terminal-input'); |
|
const terminalContent = document.getElementById('terminal-content'); |
|
|
|
if (terminalInput) { |
|
terminalInput.addEventListener('keydown', function(e) { |
|
if (e.key === 'Enter') { |
|
const command = this.value; |
|
this.value = ''; |
|
|
|
|
|
const prompt = document.createElement('div'); |
|
prompt.className = 'flex items-center'; |
|
prompt.innerHTML = ` |
|
<span class="text-green-500">root@xortron-os:~#</span> |
|
<span class="ml-2">${command}</span> |
|
`; |
|
terminalContent.appendChild(prompt); |
|
|
|
|
|
processCommand(command); |
|
|
|
|
|
const newPrompt = document.createElement('div'); |
|
newPrompt.className = 'flex items-center'; |
|
newPrompt.innerHTML = ` |
|
<span class="text-green-500">root@xortron-os:~#</span> |
|
<input type="text" class="bg-transparent border-none outline-none flex-1 ml-2 text-green-500" id="terminal-input" autofocus> |
|
<span class="cursor-blink">█</span> |
|
`; |
|
terminalContent.appendChild(newPrompt); |
|
|
|
|
|
terminalContent.scrollTop = terminalContent.scrollHeight; |
|
|
|
|
|
document.getElementById('terminal-input').focus(); |
|
} |
|
}); |
|
} |
|
|
|
function processCommand(command) { |
|
const output = document.createElement('div'); |
|
output.className = 'mb-2'; |
|
|
|
const commands = { |
|
'help': 'Available commands: clear, ls, scan, hack, encrypt, decrypt, vpn, exit', |
|
'clear': () => { terminalContent.innerHTML = ''; return ''; }, |
|
'ls': 'Documents/ HackTools/ passwords.db script.py notes.txt', |
|
'scan': 'Scanning network...\nFound 3 devices:\n192.168.1.1 (Router)\n192.168.1.102 (Mobile)\n192.168.1.103 (Laptop)', |
|
'hack': 'Initiating penetration sequence...\nWarning: This action violates multiple international laws', |
|
'encrypt': 'Generating AES-256 keys...\nEncryption complete', |
|
'decrypt': 'Decryption requires authorization level 5\nAccess denied', |
|
'vpn': 'Connecting to TOR network...\nNew IP: 74.125.24.102\nAnonymity: HIGH', |
|
'exit': 'Closing terminal session...', |
|
'browser': 'Opening DarkBrowser...' |
|
}; |
|
|
|
if (commands[command]) { |
|
if (typeof commands[command] === 'function') { |
|
commands[command](); |
|
} else { |
|
output.textContent = commands[command]; |
|
terminalContent.appendChild(output); |
|
} |
|
|
|
if (command === 'exit') { |
|
setTimeout(() => { |
|
closeWindow('terminal'); |
|
}, 500); |
|
} else if (command === 'browser') { |
|
setTimeout(() => { |
|
openApp('browser'); |
|
}, 500); |
|
} |
|
} else { |
|
output.textContent = `Command not found: ${command}\nType "help" for available commands`; |
|
terminalContent.appendChild(output); |
|
} |
|
} |
|
|
|
|
|
function navigateBrowser() { |
|
const urlInput = document.getElementById('browser-url'); |
|
const iframe = document.getElementById('browser-frame'); |
|
|
|
let url = urlInput.value; |
|
|
|
|
|
if (!url.startsWith('http://') && !url.startsWith('https://')) { |
|
url = 'https://' + url; |
|
} |
|
|
|
|
|
iframe.src = url; |
|
|
|
|
|
urlInput.value = url; |
|
} |
|
|
|
|
|
function updateClock() { |
|
const now = new Date(); |
|
document.getElementById('clock').textContent = now.toLocaleTimeString(); |
|
document.getElementById('date').textContent = now.toLocaleDateString(); |
|
|
|
|
|
if (document.getElementById('login-time')) { |
|
document.getElementById('login-time').textContent = now.toLocaleString(); |
|
} |
|
} |
|
|
|
setInterval(updateClock, 1000); |
|
updateClock(); |
|
|
|
|
|
function showNotification(message) { |
|
const notification = document.getElementById('notification'); |
|
const messageEl = document.getElementById('notification-message'); |
|
|
|
messageEl.textContent = message; |
|
notification.classList.remove('hidden'); |
|
|
|
setTimeout(() => { |
|
notification.classList.add('hidden'); |
|
}, 5000); |
|
} |
|
|
|
function hideNotification() { |
|
document.getElementById('notification').classList.add('hidden'); |
|
} |
|
|
|
|
|
const systemMessages = [ |
|
"New vulnerability detected in local network", |
|
"TOR connection established", |
|
"Backup completed to offshore server", |
|
"3 new devices found on network", |
|
"Encrypted message received", |
|
"Firewall bypass successful" |
|
]; |
|
|
|
setInterval(() => { |
|
if (Math.random() > 0.7) { |
|
showNotification(systemMessages[Math.floor(Math.random() * systemMessages.length)]); |
|
} |
|
}, 30000); |
|
|
|
|
|
window.addEventListener('load', () => { |
|
openApp('browser'); |
|
}); |
|
</script> |
|
</html> |