ProxyFF Deep Hunter & Auto-Auth

Varredura total + Preenchimento automático de senha RUAN

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Greasemonkey lub Violentmonkey.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana będzie instalacja rozszerzenia Tampermonkey lub Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, musisz zainstalować rozszerzenie menedżera skryptów użytkownika.

(Mam już menedżera skryptów użytkownika, pozwól mi to zainstalować!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Musisz zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

(Mam już menedżera stylów użytkownika, pozwól mi to zainstalować!)

// ==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);

})();