// ==UserScript== // @name [Premium] Captcha Solver // @namespace https://greasyfork.org/users/1162863 // @version 1.1 // @description 90% succes rate on Firefaucet and Viefaucet helper // @author Andrewblood // @icon https://coinfinity.top/favicon.ico // @match *://*.coinfinity.top/faucetlist* // @match *://*.firefaucet.win/viewptc* // @match *://*.viefaucet.com/* // @grant GM_addStyle // @license Copyright Andrewblood // @downloadURL none // ==/UserScript== /* window.alert = function() {}; */ (function() { 'use strict'; var CaptchaSolverStatus = document.createElement('div'); document.body.appendChild(CaptchaSolverStatus); CaptchaSolverStatus.classList.add('captchasolver-status'); GM_addStyle(` .captchasolver-status { position: fixed; font-size: 20px !important; top: 140px; right: 20px; z-index: 9999; } `); function setCaptchaSolverStatus(html, color) { if (color === 'green') { CaptchaSolverStatus.style.color = 'green'; } else if (color === 'red') { CaptchaSolverStatus.style.color = 'red'; } else { CaptchaSolverStatus.style.color = 'black'; } CaptchaSolverStatus.innerHTML = html; } setCaptchaSolverStatus('
[Premium] Captcha Solver is running.
', 'green'); if (window.location.href.includes('coinfinity.top/faucetlist')) { var isCaptchaSolverOverlayOpened = false; var CaptchaSolverButton = createCaptchaSolverButton('Captcha Solver'); function createCaptchaSolverButton(text) { var CaptchaSolverButton = document.createElement('button'); CaptchaSolverButton.innerHTML = text; CaptchaSolverButton.classList.add('captchasolver-button'); CaptchaSolverButton.addEventListener('click', function() { if (!isCaptchaSolverOverlayOpened) { openCaptchaSolverOverlay(); isCaptchaSolverOverlayOpened = true; } }); return CaptchaSolverButton; } function openCaptchaSolverOverlay() { var CaptchaSolverOverlay = createCaptchaSolverOverlay(); var CaptchaSolverOverlayContent = createCaptchaSolverOverlayContent(); CaptchaSolverOverlay.appendChild(CaptchaSolverOverlayContent); document.body.appendChild(CaptchaSolverOverlay); CaptchaSolverOverlay.addEventListener('click', function(event) { if (event.target === CaptchaSolverOverlay) { CaptchaSolverOverlay.remove(); isCaptchaSolverOverlayOpened = false; } }); } function createCaptchaSolverOverlay() { var CaptchaSolverOverlay = document.createElement('div'); CaptchaSolverOverlay.classList.add('captchasolver-overlay'); return CaptchaSolverOverlay; } function createCaptchaSolverOverlayContent() { var CaptchaSolverOverlayContent = document.createElement('div'); CaptchaSolverOverlayContent.classList.add('captchasolver-overlay-content'); CaptchaSolverOverlayContent.innerHTML = `[Premium] Captcha Solver: Picture found and start to edit the image...
', 'green') originalImgElement.src = imgElement.src; // Zeige das Originalbild an processImage(imgElement); // Lade und bearbeite das Bild } else { setCaptchaSolverStatus('[Premium] Captcha Solver: Wait for picture...
', 'green') } }, 1000); // Überprüfe alle 1 Sekunde, ob das Bild vorhanden ist } // Funktion zum Laden und Bearbeiten des Bildes function processImage(imgElement) { let src = cv.imread(imgElement); // Schritt 0: Vergrößere das Bild let resized = new cv.Mat(); let dsize = new cv.Size(src.cols * 4, src.rows * 4); // Verdreifache die Größe des Bildes cv.resize(src, resized, dsize, 0, 0, cv.INTER_LINEAR); let dst = new cv.Mat(); let M = cv.Mat.ones(5, 5, cv.CV_8U); let anchor = new cv.Point(-1, -1); // Schritt 1: Ändere die Schriftfarbe auf Weiß und den Hintergrund auf Schwarz cv.cvtColor(resized, dst, cv.COLOR_RGB2GRAY); cv.threshold(dst, dst, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU); // Schritt 2: Verwende Morphologie-Operationen, um das Bild zu bearbeiten cv.dilate(dst, dst, M, anchor, 2, cv.BORDER_CONSTANT, cv.morphologyDefaultBorderValue()); // cv.erode(dst, dst, M, anchor, 1, cv.BORDER_CONSTANT, cv.morphologyDefaultBorderValue()); // Schritt 3: Konvertiere das bearbeitete Bild zurück in ein DOM-Element let canvas = document.createElement('canvas'); cv.imshow(canvas, dst); let manipulatedImageSrc = canvas.toDataURL(); // Füge das bearbeitete Bild dem Overlay-DIV hinzu processedImgElement.src = manipulatedImageSrc; // Texterkennung mit Tesseract.js Tesseract.recognize( manipulatedImageSrc, 'eng', { logger: m => console.log("Tesseract Log:", m), psm: 7, oem: 3, tessedit_char_whitelist: "0123456789" } ).then(({ data: { text } }) => { console.log("Text from teseract:", text); // Filtere nur Zahlen von 0 bis 9 aus dem erkannten Text const filteredText = text.replace(/[^0-9]/g, ''); setCaptchaSolverStatus('[Premium] Captcha Solver: Regonized Numbers:' + filteredText + '
', 'green') var textField = document.querySelector("#description > input.captcha-input"); // Überprüfe, ob die Länge des Textes korrekt ist if (filteredText.length === 4) { textField.value = filteredText; } else { location.reload(); } }); // Bereinige Ressourcen src.delete(); dst.delete(); M.delete(); resized.delete(); } // Starte das Laden und Bearbeiten des Bildes loadAndProcessImage(); }; document.head.appendChild(opencvScript); }; document.head.appendChild(workerScript); }; document.head.appendChild(tesseractScript); } if (window.location.href.includes("viefaucet.com")){ function VieCaptcha() { const targetElementSelector = '.check-box'; const targetElement = document.querySelector(targetElementSelector); if (targetElement) { setCaptchaSolverStatus('[Premium] Captcha Solver: Captcha found please click the picture.
', 'green') window.focus(); targetElement.click(); } const dotElement = document.querySelector('div.dot'); if (dotElement) { const buttons = document.querySelectorAll('button'); buttons.forEach(button => { if (button.textContent.includes('Verify')) { button.click(); } }); } } setInterval(VieCaptcha, 1000); } })();