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

})();