您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Access to Drawaria accounts! Use this script to access accounts and add hacked ones too.
// ==UserScript== // @name Drawaria Hacker Accounts // @namespace http://tampermonkey.net/ // @version 1.4 // @description Access to Drawaria accounts! Use this script to access accounts and add hacked ones too. // @author YouTubeDrawaria // @match https://drawaria.online/* // @grant GM_addStyle // @license MIT // @icon https://www.google.com/s2/favicons?sz=64&domain=drawaria.online // ==/UserScript== (function() { 'use strict'; // Predefined accounts const DEFAULT_ACCOUNTS = [ { email: "[email protected]", password: "12200ahh" }, { email: "[email protected]", password: "keykey07" }, { email: "[email protected]", password: "tr0llingwiththis" } ]; const STORAGE_KEY = 'drawaria_manager_accounts'; let currentAccounts = []; const LOADING_MESSAGES = [ "Injecting source code...", "Hacking Drawaria mainframe...", "Searching for fun bits...", "Jumping firewalls with style...", "Unlocking the password vault...", "Loading login matrix...", "Almost ready for action...", "Bingo! Connection established..." ]; let loadingInterval; let loadingMessageIndex = 0; // Data Management Functions function loadAccounts() { const storedData = localStorage.getItem(STORAGE_KEY); if (storedData) { try { return JSON.parse(storedData); } catch (e) { console.error("Error parsing accounts from localStorage:", e); return JSON.parse(JSON.stringify(DEFAULT_ACCOUNTS)); } } return JSON.parse(JSON.stringify(DEFAULT_ACCOUNTS)); } function saveAccounts(accountsToSave) { localStorage.setItem(STORAGE_KEY, JSON.stringify(accountsToSave)); } function addAccount(email, password) { currentAccounts.push({ email, password }); saveAccounts(currentAccounts); renderAccounts(); } // CSS Style Injection GM_addStyle(` @import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Roboto+Mono:wght@400;700&display=swap'); :root { --tdg-bg-color: #0b0c10; --tdg-primary-color: #1c2331; --tdg-secondary-color: #3b4252; --tdg-accent-color: #88c0d0; --tdg-highlight-color: #ebcb8b; --tdg-text-color: #eceff4; --tdg-success-color: #a3be8c; --tdg-error-color: #bf616a; } #tdg-manager-panel { position: fixed; bottom: 20px; right: 20px; width: 85%; max-width: 300px; max-height: 80vh; background-color: var(--tdg-primary-color); border-radius: 8px; padding: 10px; box-shadow: 0 3px 15px rgba(0, 0, 0, 0.7); border: 2px solid var(--tdg-secondary-color); z-index: 99999; display: flex; flex-direction: column; box-sizing: border-box; font-family: 'Roboto Mono', monospace; color: var(--tdg-text-color); cursor: grab; transition: box-shadow 0.2s ease, border-color 0.2s ease; overflow-y: auto; } #tdg-manager-panel:active { cursor: grabbing; box-shadow: 0 3px 18px rgba(0, 0, 0, 0.9); border-color: var(--tdg-accent-color); } #tdg-manager-panel h2 { font-family: 'Press Start 2P', cursive; color: var(--tdg-highlight-color); text-align: center; margin: 0 0 5px 0; font-size: 1em; text-shadow: 1px 1px var(--tdg-accent-color); user-select: none; } #tdg-manager-panel p.intro-text { font-size: 0.7em; color: var(--tdg-text-color); opacity: 0.9; margin-bottom: 10px; text-align: center; user-select: none; } #tdg-start-button { background-color: var(--tdg-accent-color); color: var(--tdg-bg-color); border: none; padding: 8px 15px; font-size: 0.9em; font-family: 'Press Start 2P', cursive; border-radius: 4px; cursor: pointer; transition: all 0.2s ease; margin-bottom: 10px; box-shadow: 2px 2px 0px var(--tdg-secondary-color); text-shadow: 1px 1px var(--tdg-primary-color); } #tdg-start-button:hover { transform: translateY(-1px) translateX(-1px); box-shadow: 3px 3px 0px var(--tdg-secondary-color); background-color: #a3be8c; } #tdg-start-button:active { transform: translateY(0) translateX(0); box-shadow: 1px 1px 0px var(--tdg-secondary-color); } #tdg-loading-screen { text-align: center; padding: 15px 5px; background-color: var(--tdg-primary-color); border-radius: 6px; margin-top: 5px; opacity: 1; transition: opacity 0.5s ease; min-height: 100px; display: flex; flex-direction: column; justify-content: center; align-items: center; color: var(--tdg-text-color); } #tdg-loading-text { font-family: 'Press Start 2P', cursive; color: var(--tdg-highlight-color); font-size: 0.8em; margin-bottom: 10px; text-shadow: 1px 1px var(--tdg-secondary-color); } .tdg-progress-bar-container { width: 70%; height: 10px; background-color: var(--tdg-secondary-color); border-radius: 3px; overflow: hidden; margin-bottom: 10px; border: 1px solid var(--tdg-accent-color); } .tdg-progress-bar { height: 100%; width: 0%; background-color: var(--tdg-accent-color); border-radius: 3px; transition: width 0.5s ease-out; } #tdg-final-message { font-family: 'Press Start 2P', cursive; color: var(--tdg-success-color); font-size: 0.9em; margin-top: 10px; text-shadow: 1px 1px var(--tdg-primary-color); animation: tdgPulse 1.5s infinite; } @keyframes tdgPulse { 0% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.05); opacity: 0.8; } 100% { transform: scale(1); opacity: 1; } } #tdg-account-list-container, #tdg-add-form-container { margin-top: 8px; opacity: 0; transition: opacity 0.5s ease; pointer-events: none; } #tdg-account-list-container.visible, #tdg-add-form-container.visible { opacity: 1; pointer-events: auto; } .tdg-section-title { color: var(--tdg-text-color); font-size: 0.8em; margin-bottom: 6px; border-bottom: 1px solid var(--tdg-secondary-color); padding-bottom: 3px; user-select: none; font-family: 'Press Start 2P', cursive; color: var(--tdg-highlight-color); text-shadow: 1px 1px var(--tdg-secondary-color); } .tdg-account-card, .tdg-add-form-content { background-color: var(--tdg-card-bg); border: 1px solid var(--tdg-secondary-color); border-radius: 6px; padding: 6px; margin-bottom: 6px; animation: tdgFadeIn 0.3s ease-out forwards; } .tdg-account-card:last-child { margin-bottom: 0; } .tdg-account-field { margin-bottom: 5px; } .tdg-account-field label { font-size: 0.6em; margin-bottom: 2px; color: var(--tdg-accent-color); display: block; } .tdg-input-group { display: flex; align-items: center; } .tdg-account-field input { flex-grow: 1; padding: 4px 6px; background-color: var(--tdg-secondary-color); border: 1px solid var(--tdg-secondary-color); border-radius: 3px; color: var(--tdg-text-color); font-family: 'Roboto Mono', monospace; font-size: 0.7em; outline: none; transition: border-color 0.2s ease; } .tdg-account-field input:focus { border-color: var(--tdg-accent-color); } .tdg-copy-btn, .tdg-toggle-password-btn, .tdg-add-btn { background: var(--tdg-accent-color); border: none; color: var(--tdg-bg-color); padding: 4px 6px; margin-left: 3px; border-radius: 3px; cursor: pointer; transition: background-color 0.2s ease, transform 0.1s ease; white-space: nowrap; font-size: 0.65em; box-shadow: 1px 1px 0px var(--tdg-secondary-color); } .tdg-copy-btn:hover, .tdg-toggle-password-btn:hover, .tdg-add-btn:hover { background: var(--tdg-highlight-color); transform: translateY(-1px) translateX(-1px); } .tdg-copy-btn:active, .tdg-toggle-password-btn:active, .tdg-add-btn:active { transform: translateY(0) translateX(0); box-shadow: 1px 1px 0px var(--tdg-secondary-color); } .tdg-add-btn { width: calc(100% - 12px); margin: 6px 6px 0 6px; padding: 6px; font-family: 'Press Start 2P', cursive; } .tdg-copy-feedback { color: var(--tdg-success-color); font-size: 0.6em; margin-left: 3px; font-weight: bold; opacity: 0; transition: opacity 0.3s ease; white-space: nowrap; } `); // Create the main panel const managerPanel = document.createElement('div'); managerPanel.id = 'tdg-manager-panel'; document.body.appendChild(managerPanel); // Initial HTML content of the panel managerPanel.innerHTML = ` <h2>Drawaria Hacker Accounts</h2> <p class="intro-text">Ready to start hacking!</p> <button id="tdg-start-button">Start Hacker!</button> <div id="tdg-loading-screen"> <div id="tdg-loading-text">Starting protocol...</div> <div class="tdg-progress-bar-container"> <div class="tdg-progress-bar" id="tdg-progress-bar"></div> </div> <div id="tdg-final-message" style="display: none;">YOUR ACCOUNT IS HERE</div> </div> <div id="tdg-account-list-container"> <div class="tdg-section-title">Free Accounts</div> <div id="tdg-account-list-content"></div> </div> <div id="tdg-add-form-container"> <div class="tdg-section-title" style="margin-top: 15px;">Add Hacked Accounts</div> <div class="tdg-add-form-content"> <div class="tdg-account-field"> <label for="tdg-new-email">Email:</label> <input type="email" id="tdg-new-email" placeholder="[email protected]"> </div> <div class="tdg-account-field"> <label for="tdg-new-password">Password:</label> <input type="password" id="tdg-new-password" placeholder="your ultra-secret password"> </div> <button class="tdg-add-btn" id="tdg-add-account-btn">Enter!</button> </div> </div> `; const startButton = document.getElementById('tdg-start-button'); const loadingScreen = document.getElementById('tdg-loading-screen'); const loadingText = document.getElementById('tdg-loading-text'); const progressBar = document.getElementById('tdg-progress-bar'); const finalMessage = document.getElementById('tdg-final-message'); const accountListContainer = document.getElementById('tdg-account-list-container'); const accountListContent = document.getElementById('tdg-account-list-content'); const addFormContainer = document.getElementById('tdg-add-form-container'); const newEmailInput = document.getElementById('tdg-new-email'); const newPasswordInput = document.getElementById('tdg-new-password'); const addAccountBtn = document.getElementById('tdg-add-account-btn'); // Initially hide the account sections and add form loadingScreen.style.opacity = 0; loadingScreen.style.pointerEvents = 'none'; accountListContainer.classList.remove('visible'); addFormContainer.classList.remove('visible'); // Rendering Functions function renderAccounts() { accountListContent.innerHTML = ''; currentAccounts.forEach((account, index) => { const card = document.createElement('div'); card.className = 'tdg-account-card'; card.style.animationDelay = `${index * 0.1}s`; card.innerHTML = ` <div class="tdg-account-field"> <label>Email:</label> <div class="tdg-input-group"> <input type="text" value="${account.email}" readonly> <button class="tdg-copy-btn">Copy</button> <span class="tdg-copy-feedback">Copied!</span> </div> </div> <div class="tdg-account-field"> <label>Password:</label> <div class="tdg-input-group"> <input type="password" value="${account.password}" readonly> <button class="tdg-copy-btn">Copy</button> <button class="tdg-toggle-password-btn">Show</button> <span class="tdg-copy-feedback">Copied!</span> </div> </div> `; accountListContent.appendChild(card); }); } // Initialization Logic currentAccounts = loadAccounts(); // Loading Simulation Logic startButton.addEventListener('click', function() { startButton.style.display = 'none'; document.querySelector('.intro-text').style.display = 'none'; loadingScreen.style.opacity = 1; loadingScreen.style.pointerEvents = 'auto'; let progress = 0; progressBar.style.width = '0%'; loadingMessageIndex = 0; finalMessage.style.display = 'none'; loadingInterval = setInterval(() => { loadingText.textContent = LOADING_MESSAGES[loadingMessageIndex]; loadingMessageIndex = (loadingMessageIndex + 1) % LOADING_MESSAGES.length; progress += Math.random() * 20; if (progress > 100) progress = 100; progressBar.style.width = progress + '%'; if (progress >= 100) { clearInterval(loadingInterval); loadingText.textContent = LOADING_MESSAGES[LOADING_MESSAGES.length - 1]; progressBar.style.width = '100%'; setTimeout(() => { loadingScreen.style.opacity = 0; loadingScreen.style.pointerEvents = 'none'; finalMessage.style.display = 'block'; setTimeout(() => { finalMessage.style.display = 'none'; accountListContainer.classList.add('visible'); addFormContainer.classList.add('visible'); renderAccounts(); }, 1000); }, 800); } }, 300); }); // Logic to Add Account addAccountBtn.addEventListener('click', function() { const email = newEmailInput.value.trim(); const password = newPasswordInput.value.trim(); if (email && password) { addAccount(email, password); newEmailInput.value = ''; newPasswordInput.value = ''; } else { alert('ERROR! Mission incomplete: You need email and password!'); } }); // Logic to Copy and Show/Hide Password managerPanel.addEventListener('click', function(e) { if (e.target && e.target.classList.contains('tdg-copy-btn')) { const button = e.target; const inputGroup = button.parentElement; const input = inputGroup.querySelector('input'); const feedback = inputGroup.querySelector('.tdg-copy-feedback'); navigator.clipboard.writeText(input.value).then(() => { feedback.style.opacity = '1'; setTimeout(() => { feedback.style.opacity = '0'; }, 2000); }).catch(err => { console.error('Error copying: ', err); alert('SYSTEM ERROR! Could not copy. Permissions denied.'); }); } if (e.target && e.target.classList.contains('tdg-toggle-password-btn')) { const button = e.target; const inputGroup = button.parentElement; const passwordInput = inputGroup.querySelector('input[type="password"], input[type="text"]'); if (passwordInput.type === 'password') { passwordInput.type = 'text'; button.textContent = 'Hide'; } else { passwordInput.type = 'password'; button.textContent = 'Show'; } } }); // Panel Drag Logic let isDragging = false; let offsetX, offsetY; managerPanel.addEventListener('mousedown', function(e) { if (e.target.tagName === 'INPUT' || e.target.tagName === 'BUTTON' || e.target.classList.contains('tdg-section-title') || e.target.classList.contains('tdg-account-field') || e.target.classList.contains('tdg-input-group') || e.target.classList.contains('tdg-account-card') || e.target.classList.contains('tdg-add-form-content')) { return; } isDragging = true; managerPanel.style.cursor = 'grabbing'; offsetX = e.clientX - managerPanel.getBoundingClientRect().left; offsetY = e.clientY - managerPanel.getBoundingClientRect().top; managerPanel.style.position = 'fixed'; e.preventDefault(); }); document.addEventListener('mousemove', function(e) { if (!isDragging) return; let newLeft = e.clientX - offsetX; let newTop = e.clientY - offsetY; newLeft = Math.max(0, Math.min(newLeft, window.innerWidth - managerPanel.offsetWidth)); newTop = Math.max(0, Math.min(newTop, window.innerHeight - managerPanel.offsetHeight)); managerPanel.style.left = newLeft + 'px'; managerPanel.style.top = newTop + 'px'; }); document.addEventListener('mouseup', function() { if (isDragging) { isDragging = false; managerPanel.style.cursor = 'grab'; } }); // Position the panel when the page loads function setInitialPanelPosition() { const lastPosition = JSON.parse(localStorage.getItem('tdg_panel_position') || '{}'); if (lastPosition.left !== undefined && lastPosition.top !== undefined) { managerPanel.style.left = lastPosition.left + 'px'; managerPanel.style.top = lastPosition.top + 'px'; } else { const initialRight = 20; const initialBottom = 20; managerPanel.style.left = (window.innerWidth - managerPanel.offsetWidth - initialRight) + 'px'; managerPanel.style.top = (window.innerHeight - managerPanel.offsetHeight - initialBottom) + 'px'; } } managerPanel.addEventListener('mouseup', function() { if (!isDragging) { const rect = managerPanel.getBoundingClientRect(); localStorage.setItem('tdg_panel_position', JSON.stringify({ left: rect.left, top: rect.top })); } }); window.addEventListener('beforeunload', function() { const rect = managerPanel.getBoundingClientRect(); localStorage.setItem('tdg_panel_position', JSON.stringify({ left: rect.left, top: rect.top })); }); document.fonts.ready.then(() => { setInitialPanelPosition(); }); window.addEventListener('resize', setInitialPanelPosition); })();