您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Bypass ouo.io
// ==UserScript== // @name ouo.io bypass // @namespace http://tampermonkey.net/ // @version 1.0 // @description Bypass ouo.io // @author nth-zik // @match https://ouo.io/* // @match https://ouo.press/* // @match https://*.ouo.io/* // @match https://*.ouo.press/* // @run-at document-end // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; let running = true; let currentUrl = window.location.href; let submitCount = 0; let pageChangeDetected = false; console.log('🚀 ouo.io Stop On Page Change v9.0'); console.log('📍 Starting URL:', currentUrl); // Tạo UI function createUI() { const ui = document.createElement('div'); ui.id = 'ouo-status-ui'; ui.innerHTML = ` <div style=" position: fixed !important; top: 20px !important; right: 20px !important; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important; color: white !important; padding: 15px 20px !important; border-radius: 10px !important; font-family: Arial, sans-serif !important; font-size: 14px !important; box-shadow: 0 4px 20px rgba(0,0,0,0.3) !important; z-index: 999999 !important; min-width: 280px !important; border: 2px solid rgba(255,255,255,0.3) !important; "> <div style="font-weight: bold; font-size: 16px; margin-bottom: 10px;"> 🎯 ouo.io Bypass v9.0 </div> <div id="status-text" style=" background: rgba(255,255,255,0.1); padding: 8px 12px; border-radius: 5px; margin-bottom: 8px; ">Đang khởi động...</div> <div id="url-monitor" style="font-size: 11px; opacity: 0.8; margin-bottom: 8px;"> URL: ${currentUrl.substring(0, 50)}... </div> <div id="submit-counter" style="text-align: center; font-weight: bold;"> Lần thử: 0 </div> </div> `; document.body.appendChild(ui); return ui; } // Cập nhật UI function updateUI(status, counter = null) { const statusEl = document.getElementById('status-text'); const counterEl = document.getElementById('submit-counter'); const urlEl = document.getElementById('url-monitor'); if (statusEl) statusEl.textContent = status; if (counter !== null && counterEl) counterEl.textContent = `Lần thử: ${counter}`; if (urlEl) urlEl.textContent = `URL: ${window.location.href.substring(0, 50)}...`; console.log('📊', status); } // Phát hiện chuyển trang function detectPageChange() { // Phương pháp 1: Theo dõi URL change const urlWatcher = setInterval(() => { if (!running) { clearInterval(urlWatcher); return; } if (window.location.href !== currentUrl) { console.log('🎉 PAGE CHANGE DETECTED!'); console.log('📍 Old URL:', currentUrl); console.log('📍 New URL:', window.location.href); pageChangeDetected = true; running = false; updateUI('🎉 Thành công! Đã chuyển trang'); // Đổi màu UI thành công const ui = document.getElementById('ouo-status-ui'); if (ui) { ui.querySelector('div').style.background = 'linear-gradient(135deg, #4CAF50 0%, #45a049 100%)'; } clearInterval(urlWatcher); } }, 500); // Check mỗi 0.5 giây // Phương pháp 2: Theo dõi beforeunload window.addEventListener('beforeunload', function() { if (running) { console.log('🚪 beforeunload event - trang sắp chuyển'); pageChangeDetected = true; running = false; updateUI('🚪 Đang chuyển trang...'); } }); // Phương pháp 3: Theo dõi popstate window.addEventListener('popstate', function() { if (running) { console.log('🔙 popstate event - navigation change'); pageChangeDetected = true; running = false; updateUI('🔙 Navigation changed'); } }); // Phương pháp 4: Theo dõi document title change let lastTitle = document.title; const titleWatcher = setInterval(() => { if (!running) { clearInterval(titleWatcher); return; } if (document.title !== lastTitle) { console.log('📄 Title changed:', lastTitle, '->', document.title); lastTitle = document.title; // Nếu title thay đổi đáng kể, có thể là chuyển trang if (!document.title.toLowerCase().includes('ouo')) { console.log('🎯 Có thể đã bypass thành công (title change)'); pageChangeDetected = true; running = false; updateUI('🎯 Bypass thành công! (title change)'); } } }, 1000); } // Click I'm a human function clickHuman() { const buttons = document.querySelectorAll('button, input[type="button"], input[type="submit"], div[role="button"]'); for (const btn of buttons) { const text = (btn.textContent || btn.value || '').toLowerCase().trim(); if ((text.includes('human') || text.includes('verify') || text.includes('not a robot')) && btn.offsetParent !== null && !btn.disabled) { console.log('👤 Click I\'m a human:', text); updateUI('👤 Đang click "I\'m a human"...'); btn.click(); return true; } } return false; } // Submit form-go function submitFormGo() { if (!running || pageChangeDetected) { console.log('⏹️ Stopped - không submit nữa'); return false; } submitCount++; updateUI(`🔄 Đang tìm form-go... (lần ${submitCount})`, submitCount); const formGo = document.getElementById('form-go'); if (formGo) { console.log('✅ Tìm thấy form-go, đang submit...'); updateUI(`📤 Submit form-go (lần ${submitCount})`, submitCount); try { // Submit form formGo.submit(); console.log('📤 Form submitted'); // Backup: Click button trong form setTimeout(() => { if (running && !pageChangeDetected) { const btn = formGo.querySelector('#btn-main, button[type="submit"], button'); if (btn && !btn.disabled) { console.log('🖱️ Backup click button'); btn.click(); } } }, 200); return true; } catch (error) { console.error('❌ Submit error:', error); // Fallback click button const btn = formGo.querySelector('#btn-main, button[type="submit"], button'); if (btn && !btn.disabled) { console.log('🔄 Fallback click button'); btn.click(); return true; } } } else { console.log('❌ Không tìm thấy form-go'); updateUI(`❌ Chưa có form-go (lần ${submitCount})`, submitCount); } return false; } // Main loop function startBypassLoop() { console.log('🔄 Bắt đầu bypass loop...'); updateUI('🔄 Bắt đầu bypass loop...'); // Click human trước setTimeout(() => { if (running && !pageChangeDetected) { clickHuman(); } }, 2000); // Loop submit form-go const submitInterval = setInterval(() => { if (!running || pageChangeDetected) { console.log('⏹️ Dừng loop - page changed hoặc stopped'); clearInterval(submitInterval); return; } submitFormGo(); // Dừng sau 30 lần thử if (submitCount >= 30) { console.log('⚠️ Dừng sau 30 lần thử'); running = false; updateUI('⚠️ Dừng sau 30 lần thử'); clearInterval(submitInterval); } }, 2000); // Mỗi 2 giây } // Init function init() { console.log('🔥 Init bypass script...'); // Tạo UI createUI(); updateUI('🔥 Script đã khởi động'); // Setup page change detection detectPageChange(); // Bắt đầu bypass sau 3 giây setTimeout(() => { if (running) { startBypassLoop(); } }, 3000); } // Chạy script if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();