您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
SWIFTLNX.com Byoass Android / iOS / Desktop by @Fer3on_Mod
// ==UserScript== // @name SWIFTLNX Auto-Bypass // @namespace http://tampermonkey.net/ // @version 6.0 // @description SWIFTLNX.com Byoass Android / iOS / Desktop by @Fer3on_Mod // @author Fer3on_Mod // @license MIT // @match *://swiftlnx.com/* // @match *://yourdoctor.site/* // @icon https://i.postimg.cc/bNWy1CvS/cybercrime.png // @iconURL https://i.postimg.cc/bNWy1CvS/cybercrime.png // @run-at document-start // @grant GM_addStyle // ==/UserScript== (function () { "use strict"; // === Core behavior variables (unchanged) === const SCRIPT_VERSION = "5.6"; let elapsedSeconds = 0; let timeCounter = null; let bypassedCount = 0; // === Platform detection & CSS variable injection === const ua = navigator.userAgent || ""; let platform = "desktop"; if (/android/i.test(ua)) platform = "android"; else if (/iphone|ipad|ipod/i.test(ua)) platform = "ios"; // set CSS variables based on platform (sizes chosen to be professional & compact) const cssVars = { desktop: { "--fm-spinner-size": "36px", "--fm-padding": "8px 10px", "--fm-min-width": "150px", "--fm-font-family": "Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif", "--fm-title-size": "13px", "--fm-status-size": "11px", "--fm-blur": "6px" }, android: { "--fm-spinner-size": "34px", "--fm-padding": "7px 9px", "--fm-min-width": "140px", "--fm-font-family": "Roboto, system-ui, -apple-system, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif", "--fm-title-size": "13px", "--fm-status-size": "11px", "--fm-blur": "4px" }, ios: { "--fm-spinner-size": "32px", "--fm-padding": "6px 8px", "--fm-min-width": "140px", "--fm-font-family": "-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, Arial, sans-serif", "--fm-title-size": "12px", "--fm-status-size": "10px", "--fm-blur": "6px" } }; // create a small style element to hold the platform vars early const varStyle = document.createElement("style"); varStyle.id = "fm-platform-vars"; let varText = ":root {"; const chosen = cssVars[platform] || cssVars.desktop; for (const k in chosen) varText += `${k}: ${chosen[k]};`; varText += ` --fm-platform: ${platform}; }`; varStyle.textContent = varText; document.documentElement.appendChild(varStyle); // === Overlay UI (top-right) === function createOverlayUI() { if (document.getElementById("fm-overlay-pro")) return; const overlay = document.createElement("div"); overlay.id = "fm-overlay-pro"; overlay.setAttribute("data-platform", platform); overlay.innerHTML = ` <div class="fm-card" role="status" aria-live="polite" aria-atomic="true"> <svg class="fm-spinner" viewBox="0 0 50 50" aria-hidden="true" focusable="false"> <defs> <linearGradient id="fm-grad" x1="0%" y1="0%" x2="100%" y2="0%"> <stop offset="0%" stop-color="#00e676"/><stop offset="100%" stop-color="#5b6cff"/> </linearGradient> </defs> <circle class="fm-track" cx="25" cy="25" r="20" fill="none" stroke="rgba(255,255,255,0.06)" stroke-width="4"></circle> <path class="fm-arc" d="M25 5 A20 20 0 0 1 45 25" stroke="url(#fm-grad)" stroke-width="4" stroke-linecap="round" fill="none"></path> </svg> <div class="fm-text"> <div class="fm-title">Bypassing now</div> <div class="fm-status" id="fm-status-pro">Initializing</div> </div> </div> `; document.documentElement.appendChild(overlay); // timer for visual feedback (no functional change) elapsedSeconds = 0; timeCounter = setInterval(() => { elapsedSeconds++; const s = document.getElementById("fm-status-pro"); if (s && elapsedSeconds % 5 === 0) s.textContent = `Working — ${elapsedSeconds}s`; }, 1000); } function removeOverlayUI(delayMs = 1400) { if (timeCounter) { clearInterval(timeCounter); timeCounter = null; } setTimeout(() => { const el = document.getElementById("fm-overlay-pro"); if (el) el.remove(); elapsedSeconds = 0; }, delayMs); } // === Styles (use CSS variables above) === GM_addStyle(` /* base + platform-adaptive variables */ #fm-overlay-pro { position: fixed; right: 12px; top: 12px; z-index: 2147483646 !important; pointer-events: none; } #fm-overlay-pro .fm-card { display:flex; gap:10px; align-items:center; background: rgba(12,12,12,0.56); color:#e9f7ef; padding: var(--fm-padding); border-radius:10px; box-shadow: 0 10px 30px rgba(0,0,0,0.5); min-width: var(--fm-min-width); backdrop-filter: blur(var(--fm-blur)); border:1px solid rgba(255,255,255,0.03); transform: translateZ(0); font-family: var(--fm-font-family); font-synthesis: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; pointer-events: auto; /* allow occasional selection inside if needed */ } #fm-overlay-pro .fm-card * { pointer-events: auto; } .fm-spinner { width: var(--fm-spinner-size); height: var(--fm-spinner-size); flex:0 0 var(--fm-spinner-size); display:block; } .fm-track { transition: stroke 250ms ease; } .fm-arc { transform-origin: 25px 25px; animation: fm-arc-rotate 1s linear infinite; } @keyframes fm-arc-rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .fm-text { display:flex; flex-direction:column; gap:2px; min-width:80px } .fm-title { font-weight:600; font-size: var(--fm-title-size); color:#c9ffe0; line-height:1; } .fm-status { font-size: var(--fm-status-size); color:#c9d6cf; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:220px } .fm-status.success { color: #9ef3b3; font-weight:700 } .fm-status.error { color: #ffb5b5; font-weight:700 } /* small-screen adjustments */ @media (max-width:420px) { #fm-overlay-pro { right:8px; top:8px } .fm-card { min-width: calc(var(--fm-min-width) - 20px); padding: 6px 8px; gap:8px; } .fm-title{ font-size: calc(var(--fm-title-size) - 1px); } .fm-status{ font-size: calc(var(--fm-status-size) - 1px); max-width:140px } } `); // === Keep original logging & finish behavior exactly (no change to core logic) === function setLog(msg, success = false) { const statusEl = document.getElementById("fm-status-pro"); if (statusEl) { statusEl.textContent = msg; if (success) { statusEl.classList.add("success"); statusEl.classList.remove("error"); } else { statusEl.classList.remove("success"); } } console.log("[Fer3on_Mod] " + msg); } function finishScript(finalUrl = null) { setLog("✅ Bypass completed!", true); bypassedCount++; if (finalUrl) { try { navigator.clipboard.writeText(finalUrl); } catch (e) { /* ignore */ } } // play same notification sound if allowed try { const audio = document.createElement("audio"); audio.src = "https://actions.google.com/sounds/v1/cartoon/clang_and_wobble.ogg"; audio.play().catch(()=>{}); } catch (e) {} removeOverlayUI(3500); } // === Preserve original site handlers exactly === function handleYourDoctor() { // UI text minimal & non-instructive setLog("Detected yourdoctor.site ..."); const btn = document.querySelector("button.btn-success, a.btn-success"); if (btn) { setLog("Bypassing..."); try { btn.click(); } catch (e) { /* ignore click errors */ } // keep finish timing similar to original setTimeout(() => finishScript(location.href), 1200); } } function handleSwiftLnx() { setLog("Waiting for final link..."); const checkBtn = setInterval(() => { const btn = document.querySelector("a.get-link[href]:not(.disabled)"); if (btn && btn.href && !btn.href.includes("void(0)")) { clearInterval(checkBtn); setLog("Final LINK found"); setTimeout(() => { const finalUrl = btn.href; try { btn.click(); } catch (e) { try { window.location.href = finalUrl; } catch (err) {} } finishScript(finalUrl); }, 1200); } }, 400); } // === Init === createOverlayUI(); if (location.hostname.includes("yourdoctor.site")) { document.addEventListener("DOMContentLoaded", handleYourDoctor); } else if (location.hostname.includes("swiftlnx.com")) { document.addEventListener("DOMContentLoaded", handleSwiftLnx); } else { // not targeted: hide UI shortly setLog("Not targeted — hiding"); setTimeout(() => removeOverlayUI(800), 900); } // Failsafe: if DOMContent didn't fire, attempt after 3s (preserve original fallback) setTimeout(() => { if (document.readyState === "loading") { if (location.hostname.includes("yourdoctor.site")) handleYourDoctor(); else if (location.hostname.includes("swiftlnx.com")) handleSwiftLnx(); } }, 3000); })();