|
3 | 3 | <head> |
4 | 4 | <meta charset="UTF-8"> |
5 | 5 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
6 | | - <title>Bypass Utility | lupsup39</title> |
| 6 | + <title>Bypass Engine | krovixa</title> |
7 | 7 | <style> |
8 | 8 | :root { |
9 | 9 | --bg: #0d1117; |
10 | 10 | --border: #30363d; |
11 | 11 | --text: #c9d1d9; |
12 | 12 | --accent: #58a6ff; |
13 | 13 | --success: #3fb950; |
| 14 | + --warning: #d29922; |
14 | 15 | } |
15 | 16 | body { |
16 | | - font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace; |
17 | | - background: var(--bg); |
18 | | - color: var(--text); |
19 | | - display: flex; |
20 | | - justify-content: center; |
21 | | - padding-top: 50px; |
22 | | - margin: 0; |
| 17 | + font-family: ui-monospace, monospace; |
| 18 | + background: var(--bg); color: var(--text); |
| 19 | + display: flex; justify-content: center; padding-top: 50px; margin: 0; |
23 | 20 | } |
24 | | - .container { |
25 | | - width: 90%; |
26 | | - max-width: 600px; |
27 | | - border: 1px solid var(--border); |
28 | | - border-radius: 6px; |
29 | | - padding: 24px; |
30 | | - background: #161b22; |
31 | | - } |
32 | | - h2 { font-size: 16px; margin-top: 0; border-bottom: 1px solid var(--border); padding-bottom: 10px; } |
| 21 | + .container { width: 95%; max-width: 650px; border: 1px solid var(--border); border-radius: 6px; padding: 24px; background: #161b22; } |
33 | 22 | input { |
34 | | - width: 100%; |
35 | | - padding: 8px 12px; |
36 | | - background: var(--bg); |
37 | | - border: 1px solid var(--border); |
38 | | - border-radius: 6px; |
39 | | - color: white; |
40 | | - box-sizing: border-box; |
41 | | - margin-bottom: 12px; |
42 | | - outline: none; |
| 23 | + width: 100%; padding: 12px; background: var(--bg); border: 1px solid var(--border); |
| 24 | + border-radius: 6px; color: white; margin-bottom: 12px; box-sizing: border-box; outline: none; |
43 | 25 | } |
44 | | - input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(56, 139, 253, 0.3); } |
45 | 26 | button { |
46 | | - background: #21262d; |
47 | | - color: #c9d1d9; |
48 | | - border: 1px solid var(--border); |
49 | | - padding: 5px 16px; |
50 | | - font-size: 14px; |
51 | | - border-radius: 6px; |
52 | | - cursor: pointer; |
| 27 | + background: #238636; color: white; border: 1px solid rgba(240,246,252,0.1); |
| 28 | + padding: 10px 20px; border-radius: 6px; cursor: pointer; font-weight: bold; width: 100%; |
53 | 29 | } |
54 | | - button:hover { background: #30363d; border-color: #8b949e; } |
55 | | - #output { |
56 | | - margin-top: 20px; |
57 | | - padding: 12px; |
58 | | - border-radius: 6px; |
59 | | - background: var(--bg); |
60 | | - border: 1px solid var(--border); |
61 | | - display: none; |
62 | | - word-break: break-all; |
63 | | - font-size: 13px; |
| 30 | + button:disabled { background: #161b22; color: #8b949e; cursor: not-allowed; } |
| 31 | + #console { |
| 32 | + margin-top: 20px; padding: 15px; border-radius: 6px; background: #010409; |
| 33 | + border: 1px solid var(--border); font-size: 12px; line-height: 1.6; max-height: 300px; overflow-y: auto; |
64 | 34 | } |
65 | | - .proxy-tag { font-size: 10px; color: #8b949e; margin-top: 15px; } |
| 35 | + .step-info { color: var(--accent); } |
| 36 | + .step-wait { color: var(--warning); } |
| 37 | + .step-success { color: var(--success); font-weight: bold; border-top: 1px solid var(--border); margin-top: 10px; padding-top: 10px; } |
66 | 38 | </style> |
67 | 39 | </head> |
68 | 40 | <body> |
69 | 41 |
|
70 | 42 | <div class="container"> |
71 | | - <h2>Link Bypasser</h2> |
72 | | - <input type="text" id="targetLink" placeholder="Paste link (Linkvertise, etc.)"> |
73 | | - <button onclick="handleBypass()">Run Bypass</button> |
| 43 | + <h2 style="font-size: 14px; margin-bottom: 20px; color: #8b949e;">SYSTEM://MULTISTEP_BYPASS_ENGINE</h2> |
| 44 | + <input type="text" id="targetLink" placeholder="Enter Platoboost or Linkvertise URL..."> |
| 45 | + <button id="execBtn" onclick="startMultistep()">INITIALIZE_BYPASS</button> |
74 | 46 |
|
75 | | - <div id="output"> |
76 | | - <div id="status" style="margin-bottom: 8px; color: var(--accent);">[WAITING]</div> |
77 | | - <div id="resultText"></div> |
78 | | - </div> |
79 | | - |
80 | | - <div class="proxy-tag"> |
81 | | - NETWORK: <span style="color: var(--success);">CORS_PROXY_ACTIVE</span> | ENGINE: adbypass.org |
| 47 | + <div id="console" style="display: none;"> |
| 48 | + <div id="log"></div> |
82 | 49 | </div> |
83 | 50 | </div> |
84 | 51 |
|
85 | 52 | <script> |
86 | | -async function handleBypass() { |
87 | | - const linkInput = document.getElementById('targetLink').value; |
88 | | - const outputDiv = document.getElementById('output'); |
89 | | - const statusText = document.getElementById('status'); |
90 | | - const resultText = document.getElementById('resultText'); |
| 53 | +let attempts = 0; |
| 54 | +const MAX_ATTEMPTS = 5; |
91 | 55 |
|
92 | | - if (!linkInput) return; |
| 56 | +function addLog(msg, type = 'info') { |
| 57 | + const log = document.getElementById('log'); |
| 58 | + const div = document.createElement('div'); |
| 59 | + div.className = `step-${type}`; |
| 60 | + div.innerHTML = `[${new Date().toLocaleTimeString()}] ${msg}`; |
| 61 | + log.appendChild(div); |
| 62 | + document.getElementById('console').scrollTop = document.getElementById('console').scrollHeight; |
| 63 | +} |
93 | 64 |
|
94 | | - outputDiv.style.display = "block"; |
95 | | - statusText.innerText = "[PROCESSING]"; |
96 | | - statusText.style.color = "var(--accent)"; |
97 | | - resultText.innerText = ""; |
| 65 | +async function startMultistep() { |
| 66 | + const url = document.getElementById('targetLink').value; |
| 67 | + const btn = document.getElementById('execBtn'); |
| 68 | + if (!url) return; |
98 | 69 |
|
99 | | - // The API URL from the adbypass.org engine |
100 | | - const targetApi = `https://api2.adbypass.org/bypass?url=${encodeURIComponent(linkInput)}`; |
| 70 | + // Reset UI |
| 71 | + attempts = 0; |
| 72 | + document.getElementById('log').innerHTML = ""; |
| 73 | + document.getElementById('console').style.display = "block"; |
| 74 | + btn.disabled = true; |
101 | 75 |
|
102 | | - // The CORS proxy wrapper |
103 | | - const proxiedUrl = `https://corsproxy.io/?url=${encodeURIComponent(targetApi)}`; |
| 76 | + processLink(url); |
| 77 | +} |
| 78 | + |
| 79 | +async function processLink(currentUrl) { |
| 80 | + attempts++; |
| 81 | + addLog(`Attempt ${attempts}: Processing target link...`, 'info'); |
| 82 | + |
| 83 | + const apiBase = `https://api2.adbypass.org/bypass?url=${encodeURIComponent(currentUrl)}`; |
| 84 | + const proxiedUrl = `https://corsproxy.io/?url=${encodeURIComponent(apiBase)}`; |
104 | 85 |
|
105 | 86 | try { |
106 | 87 | const response = await fetch(proxiedUrl); |
107 | 88 | const data = await response.json(); |
108 | 89 |
|
109 | | - if (data.status === "success" && data.destination) { |
110 | | - statusText.innerText = "[SUCCESS]"; |
111 | | - statusText.style.color = "var(--success)"; |
112 | | - resultText.innerHTML = `<a href="${data.destination}" target="_blank" style="color: var(--accent); text-decoration: none;">${data.destination}</a>`; |
| 90 | + if (data.status === "success") { |
| 91 | + const result = data.destination || data.result; |
| 92 | + |
| 93 | + // Check if the result is just another checkpoint |
| 94 | + if (result.includes("platoboost.com/checkpoint") || result.includes("linkvertise.com/checkpoint")) { |
| 95 | + if (attempts >= MAX_ATTEMPTS) { |
| 96 | + addLog("Error: Max steps reached. The bypasser is stuck in a loop.", "wait"); |
| 97 | + return; |
| 98 | + } |
| 99 | + addLog("Checkpoint detected. Waiting 3 seconds for engine to refresh...", "wait"); |
| 100 | + setTimeout(() => processLink(result), 3000); // Wait and recurse |
| 101 | + } else { |
| 102 | + // Final URL reached |
| 103 | + addLog(`BYPASS_COMPLETE: Destination found!`, 'success'); |
| 104 | + document.getElementById('log').innerHTML += ` |
| 105 | + <div class="step-success"> |
| 106 | + <a href="${result}" target="_blank" style="color: var(--accent);">${result}</a> |
| 107 | + </div>`; |
| 108 | + document.getElementById('execBtn').disabled = false; |
| 109 | + } |
113 | 110 | } else { |
114 | | - statusText.innerText = "[ERROR]"; |
115 | | - statusText.style.color = "#f85149"; |
116 | | - resultText.innerText = data.message || "Link not supported."; |
| 111 | + addLog(`Engine Error: ${data.message || "Unknown error"}`, "wait"); |
| 112 | + document.getElementById('execBtn').disabled = false; |
117 | 113 | } |
118 | | - } catch (error) { |
119 | | - statusText.innerText = "[FATAL_ERROR]"; |
120 | | - statusText.style.color = "#f85149"; |
121 | | - resultText.innerText = "Check console for details."; |
122 | | - console.error("Fetch failed:", error); |
| 114 | + } catch (err) { |
| 115 | + addLog("Network Fail: Check CORS proxy or connection.", "wait"); |
| 116 | + document.getElementById('execBtn').disabled = false; |
123 | 117 | } |
124 | 118 | } |
125 | 119 | </script> |
|
0 commit comments