ProxyFF Deep Hunter & Auto-Auth

Varredura total + Preenchimento automático de senha RUAN

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да инсталирате разширение, като например Tampermonkey .

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name         ProxyFF Deep Hunter & Auto-Auth
// @namespace    http://tampermonkey.net/
// @version      4.0
// @description  Varredura total + Preenchimento automático de senha RUAN
// @author       Gemini
// @match        *://authproxyff.up.railway.app/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const SENHA_PADRAO = "RUAN";

    const panel = document.createElement('div');
    panel.style = "position: fixed; top: 10px; left: 10px; z-index: 99999; background: rgba(0, 0, 0, 0.9); color: #00ff00; padding: 12px; border: 1px solid #444; font-family: monospace; font-size: 11px; width: 260px; max-height: 80vh; overflow-y: auto; border-radius: 8px; box-shadow: 0 0 20px rgba(0,255,0,0.2);";
    panel.innerHTML = `
        <div style="font-weight:bold; color:yellow; margin-bottom:8px; border-bottom:1px solid #333; display:flex; justify-content:space-between;">
            <span>ULTRA SCAN + AUTH</span>
            <span id="closeP" style="cursor:pointer; color:red;">[X]</span>
        </div>
        <button id="startScan" style="width:100%; background:#004400; color:white; border:none; padding:10px; cursor:pointer; margin-bottom:5px; border-radius:4px;">VARREDURA TOTAL</button>
        <button id="injectAuth" style="width:100%; background:#444400; color:white; border:none; padding:10px; cursor:pointer; margin-bottom:10px; border-radius:4px;">INJETAR SENHA (RUAN)</button>
        <div id="scanLog" style="color:cyan; font-size:9px;">Pronto.</div>
        <div id="resultsFound" style="margin-top:10px;"></div>
    `;
    document.body.appendChild(panel);

    document.getElementById('closeP').onclick = () => panel.style.display = 'none';

    // Função para injetar a senha em qualquer campo suspeito
    function injetarSenha() {
        const inputs = document.querySelectorAll('input');
        let cont = 0;
        inputs.forEach(input => {
            const type = input.type.toLowerCase();
            const name = (input.name || "").toLowerCase();
            const id = (input.id || "").toLowerCase();
            const placeholder = (input.placeholder || "").toLowerCase();

            // Verifica se o campo parece pedir senha ou chave
            if (type === 'password' || name.includes('key') || id.includes('auth') || placeholder.includes('senha') || placeholder.includes('pass')) {
                input.value = SENHA_PADRAO;
                input.style.border = "2px solid yellow"; // Destaca onde injetou
                cont++;
            }
        });
        document.getElementById('scanLog').innerText = `Senha injetada em ${cont} campo(s).`;
    }

    async function executarVarredura() {
        const log = document.getElementById('scanLog');
        const display = document.getElementById('resultsFound');
        display.innerHTML = "";
        let db = { keys: new Set(), ips: new Set() };

        const keyRegex = /proxyff-[\w-]+/gi;
        const ipRegex = /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g;

        log.innerText = "Lendo tudo (HTML + Scripts)...";

        // Scan HTML e Atributos
        const source = document.documentElement.innerHTML;
        (source.match(keyRegex) || []).forEach(k => db.keys.add(k));
        (source.match(ipRegex) || []).forEach(i => db.ips.add(i));

        // Scan em arquivos JS externos
        const scripts = Array.from(document.querySelectorAll('script[src]'));
        for (const s of scripts) {
            try {
                const res = await fetch(s.src);
                const code = await res.text();
                (code.match(keyRegex) || []).forEach(k => db.keys.add(k));
                if (code.includes('password') || code.includes('auth')) {
                    console.log("Aviso: Lógica de senha encontrada no script: " + s.src);
                }
            } catch(e) {}
        }

        log.innerText = "Concluído!";
        
        let out = "";
        db.keys.forEach(k => {
            out += `<div style="background:#222; padding:5px; margin-top:3px; border-left:2px solid yellow;">
                ${k} <button style="float:right; font-size:9px;" onclick="navigator.clipboard.writeText('${k}')">COPY</button>
            </div>`;
        });
        
        if (db.ips.size > 0) {
            out += "<br><b style='color:cyan;'>IPs/LOGS:</b><br>";
            db.ips.forEach(ip => { out += `<span style="font-size:10px;">${ip}</span><br>`; });
        }

        display.innerHTML = out || "<i>Nenhum dado novo encontrado.</i>";
    }

    document.getElementById('startScan').onclick = executarVarredura;
    document.getElementById('injectAuth').onclick = injetarSenha;

    // Tenta injetar automaticamente ao carregar
    setTimeout(injetarSenha, 2000);

})();