1. const data = { "initDataRaw": JSON.parse(sessionStorage.getItem('__telegram__initParams')).tgWebAppData, "fingerprint": { "version": "4.2.1", "visitorId": Array.from({length:32},()=>Math.random().toString(36).charAt(2)).join(''), "components": { "fonts": { "value": [ "Gill Sans", "Helvetica Neue", "Menlo" ], "duration": 22 }, "domBlockers": { "value": [], "duration": 17 }, "fontPreferences": { "value": { "default": 149.3125, "apple": 153.53125, "serif": 149.3125, "sans": 144.0078125, "mono": 132.62158203125, "min": 9.33203125, "system": 146.09375 }, "duration": 14 }, "audio": { "value": 0.0000598061, "duration": 17 }, "screenFrame": { "value": [ 0, 0, 0, 0 ], "duration": 0 }, "canvas": null, "osCpu": { "duration": 0 }, "languages": { "value": [ [ "ru" ], [ "ru" ] ], "duration": 1 }, "colorDepth": { "value": 24, "duration": 0 }, "deviceMemory": { "duration": 0 }, "screenResolution": { "value": [ 852, 393 ], "duration": 0 }, "hardwareConcurrency": { "value": 4, "duration": 0 }, "timezone": { "value": "Europe/Samara", "duration": 0 }, "sessionStorage": { "value": true, "duration": 0 }, "localStorage": { "value": true, "duration": 0 }, "indexedDB": { "value": true, "duration": 0 }, "openDatabase": { "value": false, "duration": 0 }, "cpuClass": { "duration": 0 }, "platform": { "value": "iPhone", "duration": 0 }, "plugins": { "value": [ { "name": "PDF Viewer", "description": "Portable Document Format", "mimeTypes": [ { "type": "application/pdf", "suffixes": "pdf" }, { "type": "text/pdf", "suffixes": "pdf" } ] }, { "name": "Chrome PDF Viewer", "description": "Portable Document Format", "mimeTypes": [ { "type": "application/pdf", "suffixes": "pdf" }, { "type": "text/pdf", "suffixes": "pdf" } ] }, { "name": "Chromium PDF Viewer", "description": "Portable Document Format", "mimeTypes": [ { "type": "application/pdf", "suffixes": "pdf" }, { "type": "text/pdf", "suffixes": "pdf" } ] }, { "name": "Microsoft Edge PDF Viewer", "description": "Portable Document Format", "mimeTypes": [ { "type": "application/pdf", "suffixes": "pdf" }, { "type": "text/pdf", "suffixes": "pdf" } ] }, { "name": "WebKit built-in PDF", "description": "Portable Document Format", "mimeTypes": [ { "type": "application/pdf", "suffixes": "pdf" }, { "type": "text/pdf", "suffixes": "pdf" } ] } ], "duration": 0 }, "touchSupport": { "value": { "maxTouchPoints": 5, "touchEvent": true, "touchStart": true }, "duration": 0 }, "vendor": { "value": "Apple Computer,Inc.", "duration": 0 }, "vendorFlavors": { "value": [ "webkit" ], "duration": 0 }, "cookiesEnabled": { "value": true, "duration": 0 }, "colorGamut": { "value": "p3", "duration": 0 }, "invertedColors": { "value": false, "duration": 0 }, "forcedColors": { "value": false, "duration": 0 }, "monochrome": { "value": 0, "duration": 0 }, "contrast": { "value": 0, "duration": 0 }, "reducedMotion": { "value": false, "duration": 1 }, "reducedTransparency": { "duration": 0 }, "hdr": { "value": true, "duration": 0 }, "math": { "value": { "acos": 1.4473588658278522, "acosh": 709.889355822726, "acoshPf": 355.291251501643, "asin": 0.12343746096704435, "asinh": 0.881373587019543, "asinhPf": 0.8813735870195429, "atanh": 0.5493061443340549, "atanhPf": 0.5493061443340549, "atan": 0.46364760900080615, "sin": 0.8178819121159085, "sinh": 1.1752011936438014, "sinhPf": 2.534342107873324, "cos": -0.8390715290095377, "cosh": 1.5430806348152437, "coshPf": 1.5430806348152437, "tan": -1.4214488238747243, "tanh": 0.7615941559557649, "tanhPf": 0.7615941559557649, "exp": 2.718281828459045, "expm1": 1.7182818284590453, "expm1Pf": 1.718281828459045, "log1p": 2.3978952727983707, "log1pPf": 2.3978952727983707, "powPI": 1.9275814160560206e-50 }, "duration": 0 }, "pdfViewerEnabled": { "value": true, "duration": 0 }, "architecture": { "value": 127, "duration": 0 }, "applePay": { "value": 1, "duration": 0 }, "privateClickMeasurement": { "value": "0", "duration": 0 }, "webGlBasics": { "value": { "version": "WebGL 1.0", "vendor": "WebKit", "vendorUnmasked": "Apple Inc.", "renderer": "WebKit WebGL", "rendererUnmasked": "Apple GPU", "shadingLanguageVersion": "WebGL GLSL ES 1.0 (1.0)" }, "duration": 1 }, "webGlExtensions": null } } } fetch("https://api.hamsterkombatgame.io/auth/auth-by-telegram-webapp", { "headers": { "accept": "application/json", "accept-language": "ru,en;q=0.9,en-GB;q=0.8,en-US;q=0.7", "authorization": "authToken is empty, store token null", "content-type": "application/json", "sec-ch-ua": "\"Chromium\";v=\"122\", \"Not(A:Brand\";v=\"24\", \"Microsoft Edge\";v=\"122\", \"Microsoft Edge WebView2\";v=\"122\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-site", "Referer": "https://hamsterkombat.io/", "Referrer-Policy": "strict-origin-when-cross-origin" }, "body": JSON.stringify(data), "method": "POST" }).then((response) => response.json()) .then((data) => { localStorage.setItem('authToken', data.authToken) const initParams = JSON.parse(sessionStorage.getItem('__telegram__initParams')) initParams.tgWebAppPlatform = 'ios' sessionStorage.setItem('__telegram__initParams', JSON.stringify(initParams)) window.location.reload() }) .catch(console.error); 2. const originalConsoleLog = console.log; console.log = function () { if (arguments[0].includes('[Auto') || arguments[0].includes('github.com')) { originalConsoleLog.apply(console, arguments); } }; console.error = console.warn = console.info = console.debug = function () { }; const consoleStyles = { yellow: 'font-weight: bold; color: yellow;', red: 'font-weight: bold; color: red;', green: 'font-weight: bold; color: green;', }; const consolePrefix = '%c [AutoBot] '; const consolePrefixClicker = '%c [AutoClick] '; const consolePrefixBuyer = '%c [AutoBuy] '; console.log(`${consolePrefix}Injecting...`, consoleStyles.green); let autoClickActive = false; let autoBuyActive = false; let autoClickInterval; let clicksCount = 0; let clickBtn; let buyBtn; async function updateClickerData() { const clickerStore = window.useNuxtApp().$pinia._s.get('clicker'); const boostStore = window.useNuxtApp().$pinia._s.get('boost'); const balance = clickerStore.balanceCoins; const availableTaps = clickerStore.availableTaps; const fullEnergySecondsCountdown = boostStore.fullEnergySecondsCountdown; return { balance, availableTaps, fullEnergySecondsCountdown }; } async function click() { try { const { balance, availableTaps, fullEnergySecondsCountdown } = await updateClickerData(); if (availableTaps >= window.useNuxtApp().$pinia._s.get('clicker').earnPerTap) { if (clicksCount > 0 && clicksCount % 10 === 0) await new Promise(resolve => setTimeout(resolve, 4000)); await window.useNuxtApp().$pinia._s.get('clicker').earn(); clicksCount++; console.log(`${consolePrefixClicker}Success click (Energy: ${availableTaps})`, consoleStyles.green); console.log(`${consolePrefixClicker}Balance: ${balance}`, consoleStyles.yellow); if (window.useNuxtApp().$pinia._s.get('boost').boostsForBuy[2]) { if (availableTaps <= window.useNuxtApp().$pinia._s.get('clicker').earnPerTap + 10 && fullEnergySecondsCountdown === 0) { await window.useNuxtApp().$pinia._s.get('boost').postBuyBoost("BoostFullAvailableTaps"); window.useNuxtApp().$pinia._s.get('boost').fullEnergySecondsCountdown = 3600 console.log(`${consolePrefixClicker}Success take "Full Energy" booster`, consoleStyles.green); } } } if (autoClickActive) setTimeout(click, Math.random() * (137.7 - 151.2) + 151.2); } catch (e) { autoClickActive = false; console.log(`${consolePrefixClicker}Deactivated (Clicks: ${clicksCount})`, consoleStyles.red); updateButtonState(clickBtn, false); clearTimeout(autoClickInterval); } } async function autoBuy() { try { const { balance } = await updateClickerData(); const upgradesForBuy = window.useNuxtApp().$pinia._s.get('upgrade').upgradesForBuy; const sortedData = upgradesForBuy .filter(item => item.isAvailable && !item.cooldownSeconds && !item.isExpired) .map(item => ({ ...item, paybackTime: item.price / item.profitPerHourDelta })) .sort((a, b) => a.paybackTime - b.paybackTime); if (sortedData.length > 0) { const bestCard = sortedData[0]; // Ждем, пока баланс не станет достаточным для покупки наиболее выгодного улучшения if (balance < bestCard.price) { console.log(`${consolePrefixBuyer}Waiting for sufficient balance to buy (${bestCard.name})`, consoleStyles.yellow); setTimeout(autoBuy, Math.random() * (3347.7 - 3451.2) + 3451.2); return; } try { const delay = Math.random() * (20000 - 5000) + 5000; // Случайная пауза от 5 до 20 секунд console.log(`${consolePrefixBuyer}Waiting for ${delay / 1000} seconds before buying (${bestCard.name})`, consoleStyles.yellow); await new Promise(resolve => setTimeout(resolve, delay)); await window.useNuxtApp().$pinia._s.get('upgrade').postBuyUpgrade(bestCard.id); console.log(`${consolePrefixBuyer}Success buy (${bestCard.name})`, consoleStyles.green); } catch (e) { } } if (autoBuyActive) setTimeout(autoBuy, Math.random() * (3347.7 - 3451.2) + 3451.2); } catch (e) { autoBuyActive = false; console.log(`${consolePrefixBuyer}Deactivated`, consoleStyles.red); updateButtonState(buyBtn, false); clearTimeout(autoClickInterval); } } function updateButtonState(button, isActive) { const img = button.querySelector('img'); img.style.filter = isActive ? 'none' : 'grayscale(100%)'; } async function addLinkToNav() { const navElement = document.querySelector('.app-bar-nav'); if (!navElement) { setTimeout(addLinkToNav, 1000); return; } clickBtn = createButton('Auto Click', '/images/boost-multitap.png', toggleAutoClick); navElement.appendChild(clickBtn); buyBtn = createButton('Auto Buy', 'https://i.imgur.com/30uwMSe.png', toggleAutoBuy); navElement.appendChild(buyBtn); document.querySelector('#__nuxt > div > div.app-bar > nav > a:nth-child(5)').remove(); console.log(`${consolePrefix}Script loaded`, consoleStyles.green); } function createButton(text, imageSrc, clickHandler) { const button = document.createElement('a'); button.href = '#'; button.className = 'app-bar-item no-select'; button.innerHTML = `
${text}
`; button.addEventListener('click', (event) => { event.preventDefault(); clickHandler(); }); return button; } let firstToggleClick = true; function toggleAutoClick() { autoClickActive = !autoClickActive; console.log(`${consolePrefixClicker}${autoClickActive ? 'Activated' : 'Deactivated'}`, autoClickActive ? consoleStyles.green : consoleStyles.red); updateButtonState(clickBtn, autoClickActive); if (firstToggleClick){ document.querySelector('#__nuxt > div > main > div > div.user-tap.has-gap > div.user-tap-row > a').click(); firstToggleClick = false; } if (autoClickActive) click(); } function toggleAutoBuy() { autoBuyActive = !autoBuyActive; console.log(`${consolePrefixBuyer}${autoBuyActive ? 'Activated' : 'Deactivated'}`, autoBuyActive ? consoleStyles.green : consoleStyles.red); updateButtonState(buyBtn, autoBuyActive); if (autoBuyActive) autoBuy(); } (async function() { await addLinkToNav(); })();