-
Автор темы
- #1
У меня была уже темка с этим, но сдесь как обновление. ССЫЛКА
Пожалуйста, авторизуйтесь для просмотра ссылки.
1)Логин, для него сброс хвида.
2)Анимация запуска, она автоматически скачивает картинку перед запуском, создает папку, переименовывает картинку. Анимация текста.
3)Кнопка сброса хвида, она скидывает в телеграмм логин, хвид, ключ.
4) Анимация генерации ключа, ее на видео не видно, ее там не было, но я ее добавил
2)Анимация запуска, она автоматически скачивает картинку перед запуском, создает папку, переименовывает картинку. Анимация текста.
3)Кнопка сброса хвида, она скидывает в телеграмм логин, хвид, ключ.
4) Анимация генерации ключа, ее на видео не видно, ее там не было, но я ее добавил
HwidCheck.py:
import sys
import os
import hashlib
import requests
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QLabel, QVBoxLayout, QWidget, QLineEdit, QMessageBox, QSplashScreen
from PyQt5.QtCore import Qt, QTimer, QThread, pyqtSignal, QRect, QPropertyAnimation, QEasingCurve
from PyQt5.QtGui import QPixmap, QFont, QColor, QTransform
from PyQt5.Qt import QGraphicsDropShadowEffect, QDesktopServices, QUrl
def generate_key(hwid):
key_hash = hashlib.md5(hwid.encode()).hexdigest()
key = key_hash[:10].upper()
return key
def get_hwid():
return hashlib.md5(os.environ['COMPUTERNAME'].encode()).hexdigest()
def check_login(username):
url = 'https://pastebin.com/raw/eNFZyvr6'
response = requests.get(url)
valid_logins = response.text.splitlines()
return username in valid_logins
class StartupAnimation(QSplashScreen):
def [B]init[/B](self):
pixmap = QPixmap('C:/Bombaleylos/loading.jpg')
if pixmap.isNull():
raise FileNotFoundError("Не удалось найти изображение: C:/Bombaleylos/loading.jpg")
super().[B]init[/B](pixmap)
self.setWindowFlags(Qt.SplashScreen)
self.setGeometry(0, 0, pixmap.width(), pixmap.height())
self.setStyleSheet("background-color: #2E3440;")
screen_geometry = QApplication.primaryScreen().geometry()
splash_geometry = QRect(
(screen_geometry.width() - pixmap.width()) // 2,
(screen_geometry.height() - pixmap.height()) // 2,
pixmap.width(),
pixmap.height()
)
self.setGeometry(splash_geometry)
self.label = QLabel("Запускаю Hwid", self)
self.label.setAlignment(Qt.AlignCenter)
self.label.setFont(QFont("Arial", 12))
self.label.setStyleSheet("color: #88C0D0;")
self.label.setGeometry(0, pixmap.height() - 50, pixmap.width(), 50)
self.dots_count = 0
self.dots = ""
self.dots_timer = QTimer(self)
self.dots_timer.timeout.connect(self.update_dots)
self.dots_timer.start(500)
self.rotation_angle = 0
self.rotation_timer = QTimer(self)
self.rotation_timer.timeout.connect(self.update_rotation)
self.rotation_timer.start(10)
self.rotation_duration = 500
self.rotation_elapsed = 0
self.show()
self.animation_thread = QThread()
self.worker = AnimationWorker()
self.worker.moveToThread(self.animation_thread)
self.worker.finished.connect(self.show_login_screen)
self.animation_thread.started.connect(self.worker.run)
self.worker.finished.connect(self.animation_thread.quit)
self.worker.finished.connect(self.worker.deleteLater)
self.animation_thread.finished.connect(self.animation_thread.deleteLater)
self.animation_thread.start()
def update_dots(self):
self.dots_count = (self.dots_count + 1) % 4
self.dots = "." * self.dots_count
self.label.setText(f"Запускаю Hwid {self.dots}")
def update_rotation(self):
if self.rotation_elapsed < self.rotation_duration:
self.rotation_elapsed += 10
self.rotation_angle = (self.rotation_angle + 3.6) % 360
self.apply_rotation()
else:
self.rotation_timer.stop()
QTimer.singleShot(500, self.resume_rotation)
def apply_rotation(self):
pixmap = QPixmap('C:/Bombaleylos/loading.jpg')
transform = QTransform().rotate(self.rotation_angle)
rotated_pixmap = pixmap.transformed(transform)
self.setPixmap(rotated_pixmap)
def resume_rotation(self):
self.rotation_elapsed = 0
self.rotation_timer.start(10)
def show_login_screen(self):
self.close()
self.login_window = LoginWindow()
self.login_window.show()
class AnimationWorker(QThread):
finished = pyqtSignal()
def run(self):
QTimer.singleShot(6000, self.finished.emit)
class LoginWindow(QWidget):
def [B]init[/B](self):
super().[B]init[/B]()
self.setWindowTitle("Login")
self.setGeometry(100, 100, 300, 200)
self.setStyleSheet("background-color: #2E3440; color: #D8DEE9;")
self.label = QLabel("Введите логин", self)
self.label.setAlignment(Qt.AlignCenter)
self.label.setFont(QFont("Arial", 12))
self.label.setStyleSheet("color: #88C0D0;")
self.login_input = QLineEdit(self)
self.login_input.setPlaceholderText("Введите логин")
self.login_input.setFont(QFont("Arial", 12))
self.login_input.setStyleSheet("background-color: #ECEFF4; color: #2E3440;")
self.check_button = QPushButton("Проверить", self)
self.check_button.clicked.connect(self.check_login)
self.check_button.setFont(QFont("Arial", 12))
self.check_button.setStyleSheet("""\
QPushButton {
background-color: #5E81AC;
border-radius: 10px;
color: #ECEFF4;
padding: 10px;
font-size: 14px;
}
QPushButton:hover {
background-color: #81A1C1;
}
QPushButton:pressed {
background-color: #4C566A;
}
QPushButton:disabled {
background-color: #434C5E;
}
""")
layout = QVBoxLayout()
layout.addWidget(self.label)
layout.addWidget(self.login_input)
layout.addWidget(self.check_button)
self.setLayout(layout)
def check_login(self):
username = self.login_input.text()
if check_login(username):
self.open_main_window(username)
else:
QMessageBox.warning(self, "Ошибка", "Неверный логин. Попробуйте снова.")
def open_main_window(self, username):
self.close()
self.main_window = MainWindow(username)
self.main_window.show()
class MainWindow(QMainWindow):
def [B]init[/B](self, login):
super().[B]init[/B]()
self.keys_storage = {}
self.login = login
self.dots_count = 0
self.dots = ""
self.key_generation_timer = QTimer(self)
self.setWindowTitle("HWID KEY BY SEXEMEN")
self.setGeometry(100, 100, 400, 350)
self.setStyleSheet("background-color: #2E3440; color: #D8DEE9;")
self.label = QLabel("Нажмите кнопку для получения ключа", self)
self.label.setAlignment(Qt.AlignCenter)
self.label.setFont(QFont("Arial", 12))
self.label.setStyleSheet("color: #88C0D0;")
self.button_generate = QPushButton("Получить ключ", self)
self.button_generate.clicked.connect(self.start_key_generation)
self.setup_button_style(self.button_generate)
self.button_copy = QPushButton("Скопировать HWID и ключ", self)
self.button_copy.clicked.connect(self.copy_hwid_and_key)
self.setup_button_style(self.button_copy)
self.button_copy.setEnabled(False)
self.button_send = QPushButton("Отправить администратору", self)
self.button_send.clicked.connect(self.send_hwid_and_key_to_admin)
self.setup_button_style(self.button_send)
self.button_send.setEnabled(False)
self.button_reset = QPushButton("Сбросить HWID", self)
self.button_reset.clicked.connect(self.reset_hwid)
self.setup_button_style(self.button_reset)
self.button_reset.setEnabled(False)
layout = QVBoxLayout()
layout.addWidget(self.label)
layout.addWidget(self.button_generate)
layout.addWidget(self.button_copy)
layout.addWidget(self.button_send)
layout.addWidget(self.button_reset)
self.info_label = QLabel("", self)
self.info_label.setAlignment(Qt.AlignCenter)
self.info_label.setFont(QFont("Arial", 12))
self.info_label.setStyleSheet("color: #88C0D0;")
layout.addWidget(self.info_label)
container = QWidget()
container.setLayout(layout)
self.setCentralWidget(container)
def setup_button_style(self, button):
button.setStyleSheet("""\
QPushButton {
background-color: #5E81AC;
border-radius: 10px;
color: #ECEFF4;
padding: 10px;
font-size: 14px;
}
QPushButton:hover {
background-color: #81A1C1;
}
QPushButton:pressed {
background-color: #4C566A;
}
QPushButton:disabled {
background-color: #434C5E;
}
""")
button.setFont(QFont("Arial", 12))
self.add_shadow(button)
def add_shadow(self, widget):
shadow = QGraphicsDropShadowEffect()
shadow.setBlurRadius(15)
shadow.setXOffset(0)
shadow.setYOffset(3)
shadow.setColor(QColor(0, 0, 0, 160))
widget.setGraphicsEffect(shadow)
def start_key_generation(self):
self.dots_count = 0
self.dots = ""
self.label.setText("Генерирую ключ...")
self.key_generation_timer.timeout.connect(self.update_dots)
self.key_generation_timer.start(500)
QTimer.singleShot(4000, self.get_key)
def update_dots(self):
self.dots_count = (self.dots_count + 1) % 4
self.dots = "." * self.dots_count
self.label.setText(f"Генерирую ключ{self.dots}")
def get_key(self):
self.key_generation_timer.stop()
hwid = get_hwid()
if hwid not in self.keys_storage:
self.keys_storage[hwid] = generate_key(hwid)
self.info_label.setText(f"HWID: {hwid}\nКлюч: {self.keys_storage[hwid]}\nЛогин: {self.login}")
self.label.setText("Ключ успешно сгенерирован!")
self.button_copy.setEnabled(True)
self.button_send.setEnabled(True)
self.button_reset.setEnabled(True)
self.button_generate.setVisible(False)
def copy_hwid_and_key(self):
hwid = get_hwid()
key = self.keys_storage.get(hwid, "")
clipboard = QApplication.clipboard()
clipboard.setText(f"HWID: {hwid}\nКлюч: {key}")
def send_hwid_and_key_to_admin(self):
hwid = get_hwid()
key = self.keys_storage.get(hwid, "")
telegram_url = f"https://t.me/TradeSqd?text=HWID%3A%20{hwid}%0AKey%3A%20{key}%0ALogin%3A%20{self.login}"
QDesktopServices.openUrl(QUrl(telegram_url))
def reset_hwid(self):
hwid = get_hwid()
key = self.keys_storage.get(hwid, "")
message = f"Сбросьте хвид пожалуйста \nHWID: {hwid}\nКлюч: {key}\nЛогин: {self.login}"
telegram_url = f"https://t.me/TradeSqd?text={requests.utils.quote(message)}"
QDesktopServices.openUrl(QUrl(telegram_url))
if [B]name[/B] == "[B]main[/B]":
app = QApplication(sys.argv)
splash = StartupAnimation()
sys.exit(app.exec_())