Platoboost Link Bypasser

Automatically bypass Platoboost link shortener and extract access codes

Size

8.8 KB

Version

1.1.2

Created

Dec 8, 2025

Updated

4 days ago

1// ==UserScript==
2// @name		Platoboost Link Bypasser
3// @description		Automatically bypass Platoboost link shortener and extract access codes
4// @version		1.1.2
5// @match		https://*.platoboost.app/*
6// @match		https://platoboost.app/*
7// @icon		https://auth.platoboost.app/icon.svg
8// @grant		GM.setClipboard
9// @grant		GM.notification
10// @grant		GM.xmlhttpRequest
11// ==/UserScript==
12(function() {
13    'use strict';
14
15    console.log('Platoboost Link Bypasser: Extension loaded');
16
17    let bypassInProgress = false;
18
19    // Function to extract the encrypted data parameter from URL
20    function getEncryptedData() {
21        const urlParams = new URLSearchParams(window.location.search);
22        return urlParams.get('d');
23    }
24
25    // Function to make API request to bypass verification
26    async function bypassVerification() {
27        try {
28            const encryptedData = getEncryptedData();
29            if (!encryptedData) {
30                console.error('No encrypted data found in URL');
31                return null;
32            }
33
34            console.log('Attempting to bypass verification via API...');
35            
36            // Make direct API call to get the access code
37            const response = await GM.xmlhttpRequest({
38                method: 'POST',
39                url: 'https://api-gateway.platoboost.com/v1/authenticators/8/' + encryptedData,
40                headers: {
41                    'Content-Type': 'application/json',
42                    'Origin': 'https://auth.platoboost.app',
43                    'Referer': window.location.href
44                },
45                data: JSON.stringify({})
46            });
47
48            if (response.status === 200) {
49                const data = JSON.parse(response.responseText);
50                console.log('API Response:', data);
51                
52                if (data.key || data.code || data.token) {
53                    return data.key || data.code || data.token;
54                }
55            }
56            
57            return null;
58        } catch (error) {
59            console.error('API bypass failed:', error);
60            return null;
61        }
62    }
63
64    // Function to check for and extract the access code (final step)
65    async function extractAccessCode() {
66        console.log('Checking for access code...');
67        
68        // Look for the textarea with the access code
69        const textarea = document.querySelector('textarea[class*="flex"][class*="min-h"]');
70        
71        if (textarea && textarea.value && textarea.value.trim()) {
72            const accessCode = textarea.value.trim();
73            console.log('✓ Access code found:', accessCode);
74            
75            // Copy to clipboard
76            try {
77                await GM.setClipboard(accessCode);
78                console.log('✓ Access code copied to clipboard');
79                
80                // Show notification
81                GM.notification({
82                    title: 'Platoboost Bypassed!',
83                    text: `Access code: ${accessCode}`,
84                    timeout: 8000
85                });
86                
87                // Add visual indicator
88                addSuccessIndicator(accessCode);
89                
90            } catch (error) {
91                console.error('Failed to copy access code:', error);
92            }
93            
94            return true;
95        }
96        
97        return false;
98    }
99
100    // Function to directly navigate to the final page
101    async function skipToFinalPage() {
102        if (bypassInProgress) return;
103        bypassInProgress = true;
104
105        console.log('Attempting to skip verification steps...');
106        
107        // Try API bypass first
108        const apiCode = await bypassVerification();
109        if (apiCode) {
110            console.log('✓ Got code via API bypass:', apiCode);
111            await GM.setClipboard(apiCode);
112            GM.notification({
113                title: 'Platoboost Bypassed!',
114                text: `Access code: ${apiCode}`,
115                timeout: 8000
116            });
117            addSuccessIndicator(apiCode);
118            bypassInProgress = false;
119            return;
120        }
121
122        // If API bypass fails, try to manipulate localStorage to mark steps as complete
123        try {
124            // Set localStorage values to bypass verification
125            const timestamp = Date.now() + 86400000; // 24 hours from now
126            localStorage.setItem('agecc', JSON.stringify({ value: Date.now().toString(), expiry: timestamp }));
127            localStorage.setItem('fjidd', JSON.stringify({ value: Math.random().toString().slice(2), expiry: timestamp }));
128            localStorage.setItem('sle', 'true');
129            
130            console.log('LocalStorage updated, reloading page...');
131            
132            // Reload the page to apply changes
133            window.location.reload();
134        } catch (error) {
135            console.error('Failed to manipulate localStorage:', error);
136            bypassInProgress = false;
137        }
138    }
139
140    // Add a visual success indicator
141    function addSuccessIndicator(code) {
142        // Remove any existing indicator
143        const existing = document.getElementById('platoboost-bypass-indicator');
144        if (existing) existing.remove();
145
146        const indicator = document.createElement('div');
147        indicator.id = 'platoboost-bypass-indicator';
148        indicator.style.cssText = `
149            position: fixed;
150            top: 20px;
151            right: 20px;
152            background: linear-gradient(135deg, #10b981 0%, #059669 100%);
153            color: white;
154            padding: 20px 28px;
155            border-radius: 16px;
156            box-shadow: 0 10px 40px rgba(16, 185, 129, 0.4);
157            z-index: 999999;
158            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
159            font-size: 14px;
160            font-weight: 600;
161            animation: slideInRight 0.4s ease-out;
162            max-width: 350px;
163        `;
164        
165        indicator.innerHTML = `
166            <div style="display: flex; align-items: center; gap: 16px;">
167                <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3">
168                    <polyline points="20 6 9 17 4 12"></polyline>
169                </svg>
170                <div>
171                    <div style="font-size: 18px; margin-bottom: 6px; font-weight: 700;">✓ Bypass Complete!</div>
172                    <div style="font-size: 13px; opacity: 0.95; background: rgba(255,255,255,0.2); padding: 6px 10px; border-radius: 6px; margin-top: 6px; font-family: monospace; word-break: break-all;">${code}</div>
173                    <div style="font-size: 11px; opacity: 0.8; margin-top: 6px;">✓ Copied to clipboard</div>
174                </div>
175            </div>
176        `;
177        
178        // Add animation
179        if (!document.getElementById('platoboost-bypass-styles')) {
180            const style = document.createElement('style');
181            style.id = 'platoboost-bypass-styles';
182            style.textContent = `
183                @keyframes slideInRight {
184                    from {
185                        transform: translateX(400px);
186                        opacity: 0;
187                    }
188                    to {
189                        transform: translateX(0);
190                        opacity: 1;
191                    }
192                }
193                @keyframes slideOutRight {
194                    from {
195                        transform: translateX(0);
196                        opacity: 1;
197                    }
198                    to {
199                        transform: translateX(400px);
200                        opacity: 0;
201                    }
202                }
203            `;
204            document.head.appendChild(style);
205        }
206        
207        document.body.appendChild(indicator);
208        
209        // Remove after 10 seconds
210        setTimeout(() => {
211            indicator.style.animation = 'slideOutRight 0.4s ease-out';
212            setTimeout(() => indicator.remove(), 400);
213        }, 10000);
214    }
215
216    // Initialize the bypass
217    async function init() {
218        console.log('Initializing Platoboost bypass...');
219        
220        // Check if we're already on the final page with the code
221        const hasCode = await extractAccessCode();
222        if (hasCode) {
223            console.log('Already on final page with code!');
224            return;
225        }
226
227        // Check if we're on a verification page
228        const continueButton = document.querySelector('button.inline-flex.items-center.justify-center[class*="bg-primary"]');
229        if (continueButton && continueButton.textContent.includes('Continue')) {
230            console.log('On verification page, attempting to skip...');
231            await skipToFinalPage();
232        }
233    }
234
235    // Start when DOM is ready
236    if (document.readyState === 'loading') {
237        document.addEventListener('DOMContentLoaded', init);
238    } else {
239        init();
240    }
241
242})();
Platoboost Link Bypasser | Robomonkey