👉👈
Участник
Статус
Оффлайн
Регистрация
16 Янв 2017
Сообщения
531
Реакции[?]
155
Поинты[?]
88K
Всем привет! Буквально вчера выложили ещё один color aimbot для Валоранта, однако этот сурс интересен тем, что вместе с ним идёт спуфер и байпасс. Как сообщил автор, работает только с мышками Razer и Synapse 3. Но это не так важно, самое главное это функционал, который можно переделать и под свою мышь. Автор: Mafia4321x.


Для чего нужен spoofer (bypass) в Valorant?

Если вас уже банило по HWID, то как раз для этого он и понадобится. Ведь если зайти просто с того же компьютера снова в игру с нового аккаунта, прилетит автоматом бан. Без спуфа вашего ПК никак в валорант поиграть будет нельзя. Также спуфер юзают для того, чтобы тестить читы. Чтобы не банить свой хвид можно использовать подменный, потестить и выключить.

Байпасс же помогает обойти обнаружение вангуардом. Маскирует код, изменяет идентификаторы, чтобы было сложнее задетектить.


Что есть в хаке?
  • Выбор радиуса (ФОВа). Можно выбрать размер расстояния доводки для аима.
  • Кейбинды. Назначаются клавиши для функций.
  • Выбор цвета для наводки: оптимизация под конкретные условия игры.
Чем отличается этот взлом?
  • Работает с популярными мышками, а если надо, можно адаптировать под свои.
  • Есть спуфер и байпасс, которые помогают обойти бан и античит.
  • Исходный код в открытом доступе, так что можно доработать под себя.

Сами исходники:
Python:
import uuid
import json
import random
import os
import time
import re

UUID_PATTERN = r'UUID = "([a-f0-9]{32})"'
NUMBER_PATTERN = r'#[0-9]+'

# Function to generate random number strings
def random_number_string(match=None):
    return f"#{random.randint(1000000000000000000000, 9999999999999999999999)}"

# Function to generate multiple random number strings
def random_number_lines(num_lines=5):
    return "\n".join(random_number_string() for _ in range(num_lines))


def ensure_uuid_and_numbers_in_file(filename, num_lines=5):
    try:
        with open(filename, "r") as f:
            content = f.read()

        new_uuid = uuid.uuid4().hex
        number_lines = random_number_lines(num_lines)

        # Ensure UUIDs are at the beginning and end of the file
        if not re.search(UUID_PATTERN, content):
            new_content = f'{number_lines}\nUUID = "{new_uuid}"\n{content}\nUUID = "{new_uuid}"\n{number_lines}'
            with open(filename, "w") as f:
                f.write(new_content)
            print(f"Added new UUID and numbers to {filename}: {new_uuid}")
        else:
            content_lines = content.split('\n')
            updated_content = []

            # Ensure random numbers at the beginning
            if not all(re.search(NUMBER_PATTERN, line) for line in content_lines[:num_lines]):
                updated_content.append(number_lines)

            updated_content.extend(content_lines)

            # Ensure random numbers at the end
            if not all(re.search(NUMBER_PATTERN, line) for line in content_lines[-num_lines:]):
                updated_content.append(number_lines)
         
            # Replace UUID in the file content
            new_uuid_str = f'UUID = "{new_uuid}"'
            content_new = re.sub(UUID_PATTERN, new_uuid_str, "\n".join(updated_content))

            with open(filename, "w") as f:
                f.write(content_new)

            print(f"Ensured UUID and numbers in {filename}")
    except Exception as e:
        print(f"Error ensuring UUID and numbers in {filename}: {e}")


def updateUUID_and_numbers_in_file(filename, new_uuid, num_lines=5):
    try:
        with open(filename, "r") as f:
            content = f.read()

        new_uuid_str = f'UUID = "{new_uuid}"'
        number_lines = random_number_lines(num_lines)

        content_new = re.sub(UUID_PATTERN, new_uuid_str, content)

        lines = content_new.split('\n')
        updated_content = []

        # Ensure random numbers at the beginning
        if not all(re.search(NUMBER_PATTERN, line) for line in lines[:num_lines]):
            updated_content.append(number_lines)

        updated_content.extend(lines)

        # Ensure random numbers at the end
        if not all(re.search(NUMBER_PATTERN, line) for line in lines[-num_lines:]):
            updated_content.append(number_lines)

        content_new = "\n".join(updated_content)

        with open(filename, "w") as f:
            f.write(content_new)

        print(f"Done! New UUID and numbers for {filename}: {new_uuid}")
    except Exception as e:
        print(f"Error updating UUID and numbers in {filename}: {e}")

# Function to replace any number starting with '#' with random 20-digit number
def replace_numbers_in_file(filename):
    try:
        with open(filename, "r") as f:
            content = f.read()

        # Replace any line starting with '#' followed by numbers with a random 20-digit number
        content_new = re.sub(r'#[0-9]+', random_number_string, content)

        with open(filename, "w") as f:
            f.write(content_new)

        print(f"Replaced all numbers starting with '#' in {filename}")
    except Exception as e:
        print(f"Error replacing numbers in {filename}: {e}")

# Main function to manage the spoofing and config updates
def main():
    operagx_file = 'Spotify.py'

    ensure_uuid_and_numbers_in_file(operagx_file)  # Ensure UUID is in the file
    new_uuid = uuid.uuid4().hex
    updateUUID_and_numbers_in_file(operagx_file, new_uuid)  # Update UUID in the file
    replace_numbers_in_file(operagx_file)  # Replace any numbers starting with '#' with random 20-digit numbers

    print("Spoof complete! Spotify.py has been updated.")

if __name__ == '__main__':
    main()
Python:
#6060446306475060790527
#3652125955555606423444
#2864442694739693692342
#7769238765567088509175
#8942491578092886761309
#3463658841134657527181
#4872772300869031882271
#3048826134673662942072
#9405846093016526358272

import cv2 as c2
import time as t
import numpy as np
import ctypes as c
import win32api as wapi
import threading as th
import bettercam as bcam
from multiprocessing import Pipe as p, Process as proc
from ctypes import windll as wdl
import os
import json as js
import socket
import pyautogui

# UUID = "d2448d19159e44d7a799992f4b500544"
#1895179017871820750457
#3687788831828447497317
#9261248987611532719907
#3466989354063471134044
# UUID = "d2448d19159e44d7a799992f4b500544"

# Utility to clear the terminal
def cl():
    os.system('cls' if os.name == 'nt' else 'clear')

# Function to simulate keyboard events
def kbd_evt(pipe):
    keybd_event = wdl.user32.keybd_event
    while True:
        try:
            key = pipe.recv()
            if key == b'\x01':
                keybd_event(0x4F, 0, 0, 0)  # O key press
                keybd_event(0x4F, 0, 2, 0)  # O key release
        except EOFError:
            break

# Helper function to send key press
def snd_key_evt(pipe):
    pipe.send(b'\x01')

# Function to send coordinates to server
def send_coordinates_to_server(x, y):
    try:
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client_socket:
            client_socket.connect(('127.0.0.1', 9999))
            coords = {'x': int(x), 'y': int(y)}  # Ensure the coordinates are integers
            client_socket.sendall(js.dumps(coords).encode('utf-8'))
            print(f"Sending coordinates to server: x={x}, y={y}")
    except Exception as e:
        print(f"Error sending coordinates to server: {e}")

# Triggerbot class
class Trgbt:
    def __init__(self, pipe, keybind, fov, hsv_range, shooting_rate, fps, mouse_movement_enabled, color_tolerance):
        user32 = wdl.user32
        self.WIDTH, self.HEIGHT = user32.GetSystemMetrics(0), user32.GetSystemMetrics(1)
        self.size = fov
        self.Fov = (
            int(self.WIDTH / 2 - self.size),
            int(self.HEIGHT / 2 - self.size),
            int(self.WIDTH / 2 + self.size),
            int(self.HEIGHT / 2 + self.size),
        )
        self.camera = bcam.create(output_idx=0, region=self.Fov)
        self.frame = None
        self.keybind = keybind
        self.pipe = pipe
        self.cmin, self.cmax = hsv_range
        self.shooting_rate = shooting_rate
        self.frame_duration = 1 / fps  # FPS to frame duration in seconds
        self.mouse_movement_enabled = mouse_movement_enabled
        self.color_tolerance = color_tolerance
        self.color_positions = []
        self.keybind_pressed = False

    def capture_frame(self):
        while True:
            self.frame = self.camera.grab()
            t.sleep(self.frame_duration)

    def detect_color(self):
        if self.frame is not None:
            hsv = c2.cvtColor(self.frame, c2.COLOR_RGB2HSV)

            min_hue = max(0, self.cmin[0] - self.color_tolerance)
            min_saturation = max(0, self.cmin[1] - self.color_tolerance)
            min_value = max(0, self.cmin[2] - self.color_tolerance)

            max_hue = min(255, self.cmax[0] + self.color_tolerance)
            max_saturation = min(255, self.cmax[1] + self.color_tolerance)
            max_value = min(255, self.cmax[2] + self.color_tolerance)

            cmin_adjusted = np.array([min_hue, min_saturation, min_value], dtype=np.uint8)
            cmax_adjusted = np.array([max_hue, max_saturation, max_value], dtype=np.uint8)

            mask = c2.inRange(hsv, cmin_adjusted, cmax_adjusted)

            contours, _ = c2.findContours(mask, c2.RETR_EXTERNAL, c2.CHAIN_APPROX_SIMPLE)
            detected_positions = []
            for contour in contours:
                if len(contour) > 0:
                    x, y, w, h = c2.boundingRect(contour)
                    detected_positions.append((x + w // 2, y + h // 2))
            return detected_positions
        return []

    def shooting_logic(self):
        while True:
            if wapi.GetAsyncKeyState(self.keybind) < 0:
                self.keybind_pressed = True
                self.color_positions = self.detect_color()
                if self.color_positions:
                    snd_key_evt(self.pipe)
                t.sleep(self.shooting_rate / 1000)  # Shooting rate in seconds
            else:
                self.keybind_pressed = False
            t.sleep(0.001)

    def mouse_movement_logic(self):
        while True:
            if self.mouse_movement_enabled and self.keybind_pressed and self.color_positions:
                start_x, start_y = pyautogui.position()
                closest_position = None
                min_distance = float('inf')

                for target_x, target_y in self.color_positions:
                    distance = abs(target_x - start_x) + abs(target_y - start_y)
                    if distance < min_distance:
                        min_distance = distance
                        closest_position = (target_x, target_y)

                if closest_position:
                    target_x, target_y = closest_position
                    new_x = target_x
                    new_y = target_y

                    num_steps = 20
                    for i in range(1, num_steps + 1):
                        if not self.keybind_pressed:
                            break
                        interpolated_x = start_x + (new_x - start_x) * i / num_steps
                        interpolated_y = start_y + (new_y - start_y) * i / num_steps
                        c.windll.user32.SetCursorPos(int(interpolated_x), int(interpolated_y))
                        t.sleep(self.frame_duration / 2)

                    if self.keybind_pressed:
                        send_coordinates_to_server(new_x, new_y)
            t.sleep(0.001)

            #8991806895508426439874
#7374961568565652387389
#5802269634033866582833
#8245862776418077575610

# Config saving and loading
def save_cfg(cfg):
    with open('config.json', 'w') as cfg_file:
        js.dump(cfg, cfg_file, indent=4)

def load_cfg():
    with open('config.json', 'r') as cfg_file:
        return js.load(cfg_file)

if __name__ == "__main__":
    cl()

    parent_conn, child_conn = p()
    p_proc = proc(target=kbd_evt, args=(child_conn,))
    p_proc.start()

    cfg = {}
    if os.path.exists('config.json'):
        cl()
        print("Config file found. Load (1) or update (2)?")
        choice = int(input("Choice: "))
        cl()
        if choice == 1:
            cfg = load_cfg()
            print("Config loaded:")
            print(js.dumps(cfg, indent=4))
        else:
            cfg['fov'] = float(input("Enter FOV size: "))
            cfg['keybind'] = int(input("Enter keybind (hex): "), 16)
            cfg['shooting_rate'] = float(input("Enter shooting rate (ms): "))
            cfg['fps'] = float(input("Enter FPS: "))
            cfg['hsv_range'] = [(30, 125, 150), (30, 255, 255)]
            cfg['mouse_movement_enabled'] = bool(int(input("Enable mouse movement? (1 for Yes, 0 for No): ")))
            cfg['color_tolerance'] = int(input("Enter color tolerance (0-255): "))
            save_cfg(cfg)
    else:
        cfg['fov'] = float(input("Enter FOV size: "))
        cfg['keybind'] = int(input("Enter keybind (hex): "), 16)
        cfg['shooting_rate'] = float(input("Enter shooting rate (ms): "))
        cfg['fps'] = float(input("Enter FPS: "))
        cfg['hsv_range'] = [(30, 125, 150), (30, 255, 255)]
        cfg['mouse_movement_enabled'] = bool(int(input("Enable mouse movement? (1 for Yes, 0 for No): ")))
        cfg['color_tolerance'] = int(input("Enter color tolerance (0-255): "))
        save_cfg(cfg)

    trgbt = Trgbt(parent_conn, cfg['keybind'], cfg['fov'], cfg['hsv_range'], cfg['shooting_rate'], cfg['fps'], cfg['mouse_movement_enabled'], cfg['color_tolerance'])
    th.Thread(target=trgbt.capture_frame).start()
    th.Thread(target=trgbt.shooting_logic).start()
    th.Thread(target=trgbt.mouse_movement_logic).start()

    p_proc.join()

#7779811781420453597126
#7492953213110487345525
#5117311757457087884366
#3580563267057968884169
#6657854344619658296611
#6767936448451732590464
#7117373651480308206107
#5500722120766290420197
#4468968808985565672001
Python:
#3871080205640790975688
#6780188143142792746389
#9363972962023993530401
#9820485068445867861840
#5577398720620525614781
import cv2 as c2
import time as t
import numpy as np
import ctypes as c
import win32api as wapi
import threading as th
import bettercam as bcam
from multiprocessing import Pipe as p, Process as proc
from ctypes import windll as wdl
import os as os
import json as js
 
# UUID = "7f851b201e794247b792d1827f1f4290" 
# Number lines can be added here
# UUID = "7f851b201e794247b792d1827f1f4290" 
 
# Utility to clear the terminal
def cl():
    os.system('cls' if os.name == 'nt' else 'clear')
 
# Function to simulate keyboard events
def kbd_evt(pipe):
    keybd_event = wdl.user32.keybd_event
    while True:
        try:
            key = pipe.recv()
            if key == b'\x01':
                keybd_event(0x4F, 0, 0, 0)  # O key press
                keybd_event(0x4F, 0, 2, 0)  # O key release
        except EOFError:
            break
 
# Helper function to send key press
def snd_key_evt(pipe):
    pipe.send(b'\x01')
 
# Triggerbot class that contains the main logic
class Trgbt:
    def __init__(self, pipe, keybind, fov, hsv_range, shooting_rate, fps):
        user32 = wdl.user32
        self.WIDTH, self.HEIGHT = user32.GetSystemMetrics(0), user32.GetSystemMetrics(1)
        self.size = fov
        self.Fov = (
            int(self.WIDTH / 2 - self.size),
            int(self.HEIGHT / 2 - self.size),
            int(self.WIDTH / 2 + self.size),
            int(self.HEIGHT / 2 + self.size),
        )
        self.camera = bcam.create(output_idx=0, region=self.Fov)
        self.frame = None
        self.keybind = keybind
        self.pipe = pipe
        self.cmin, self.cmax = hsv_range
        self.shooting_rate = shooting_rate
        self.frame_duration = 1 / fps  # FPS to frame duration in seconds
 
    def capture_frame(self):
        while True:
            self.frame = self.camera.grab()
            t.sleep(self.frame_duration)  # Sleep to control FPS
 
    def detect_color(self):
        if self.frame is not None:
            hsv = c2.cvtColor(self.frame, c2.COLOR_RGB2HSV)
            
            # Convert HSV range to NumPy arrays if they're not already
            self.cmin = np.array(self.cmin, dtype=np.uint8)
            self.cmax = np.array(self.cmax, dtype=np.uint8)
            
            mask = c2.inRange(hsv, self.cmin, self.cmax)
            return np.any(mask)
 
    def trigger(self):
        while True:
            if wapi.GetAsyncKeyState(self.keybind) < 0 and self.detect_color():
                snd_key_evt(self.pipe)
                t.sleep(self.shooting_rate / 1000)  # Convert ms to seconds
            t.sleep(0.001)
 
# Function to save the configuration to a file
def save_cfg(cfg):
    with open('config.json', 'w') as cfg_file:
        js.dump(cfg, cfg_file, indent=4)
 
# Function to load the configuration from a file
def load_cfg():
    with open('config.json', 'r') as cfg_file:
        return js.load(cfg_file)
 
if __name__ == "__main__":
    cl()
 
    parent_conn, child_conn = p()
    p_proc = proc(target=kbd_evt, args=(child_conn,))
    p_proc.start()
 
    # Load or create the configuration
    cfg = {}
    if os.path.exists('config.json'):
        cl()
        print("Config file found. Load (1) or update (2)?")
        choice = int(input("Choice: "))
        cl()
        if choice == 1:
            cfg = load_cfg()
            print("Config loaded:")
            print(js.dumps(cfg, indent=4))
        else:
            cfg['fov'] = float(input("Enter FOV size: "))
            cl()
            cfg['keybind'] = int(input("Enter keybind (hex): "), 16)
            cl()
            cfg['shooting_rate'] = float(input("Enter shooting rate (ms): "))
            cl()
            cfg['fps'] = float(input("Enter FPS: "))
            cl()
            hsv_choice = int(input("Use default HSV range (1) or custom (2)? "))
            cl()
            if hsv_choice == 1:
                cfg['hsv_range'] = [(30, 125, 150), (30, 255, 255)]  # Default yellow HSV range
            else:
                cfg['hsv_range'] = [
                    [int(input("Enter lower Hue: ")), int(input("Enter lower Saturation: ")), int(input("Enter lower Value: "))],
                    [int(input("Enter upper Hue: ")), int(input("Enter upper Saturation: ")), int(input("Enter upper Value: "))],
                ]
            cl()
            save_cfg(cfg)
            print("Config updated:")
            print(js.dumps(cfg, indent=4))
    else:
        cfg['fov'] = float(input("Enter FOV size: "))
        cl()
        cfg['keybind'] = int(input("Enter keybind (hex): "), 16)
        cl()
        cfg['shooting_rate'] = float(input("Enter shooting rate (ms): "))
        cl()
        cfg['fps'] = float(input("Enter FPS: "))
        cl()
        hsv_choice = int(input("Use default HSV range (1) or custom (2)? "))
        cl()
        if hsv_choice == 1:
            cfg['hsv_range'] = [(30, 125, 150), (30, 255, 255)]  # Default yellow HSV range
        else:
            cfg['hsv_range'] = [
                [int(input("Enter lower Hue: ")), int(input("Enter lower Saturation: ")), int(input("Enter lower Value: "))],
                [int(input("Enter upper Hue: ")), int(input("Enter upper Saturation: ")), int(input("Enter upper Value: "))],
            ]
        cl()
        save_cfg(cfg)
        print("Config created:")
        print(js.dumps(cfg, indent=4))
 
    # Initialize and start the Triggerbot
    trgbt = Trgbt(parent_conn, cfg['keybind'], cfg['fov'], cfg['hsv_range'], cfg['shooting_rate'], cfg['fps'])
    th.Thread(target=trgbt.capture_frame).start()
    th.Thread(target=trgbt.trigger).start()
    p_proc.join()
 
#4847680125537497078266
#5348786318373372891610
#1224332395040305020581
#6735864911400194413104
#6247786175667316222144
 
#7148970973190926066135
#1445862607398669336335
#3704069090306153185542
#9446118540266676864420
#1087388750558227994399
Эта взломка подойдёт как для новичков, так и для тех, кто давно ищет удобное решение для игры без банов. Всё просто, понятно и эффективно!
 
Последнее редактирование:
Read Only
Статус
Оффлайн
Регистрация
29 Апр 2023
Сообщения
1,007
Реакции[?]
17
Поинты[?]
22K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Всем привет! Буквально вчера выложили ещё один color aimbot для Валоранта, однако этот сурс интересен тем, что вместе с ним идёт спуфер и байпасс. Как сообщил автор, работает только с мышками Razer и Synapse 3. Но это не так важно, самое главное это функционал, который можно переделать и под свою мышь. Автор: Mafia4321x.


Для чего нужен spoofer (bypass) в Valorant?

Если вас уже банило по HWID, то как раз для этого он и понадобится. Ведь если зайти просто с того же компьютера снова в игру с нового аккаунта, прилетит автоматом бан. Без спуфа вашего ПК никак в валорант поиграть будет нельзя. Также спуфер юзают для того, чтобы тестить читы. Чтобы не банить свой хвид можно использовать подменный, потестить и выключить.

Байпасс же помогает обойти обнаружение вангуардом. Маскирует код, изменяет идентификаторы, чтобы было сложнее задетектить.


Что есть в хаке?
  • Выбор радиуса (ФОВа). Можно выбрать размер расстояния доводки для аима.
  • Кейбинды. Назначаются клавиши для функций.
  • Выбор цвета для наводки: оптимизация под конкретные условия игры.
Чем отличается этот взлом?
  • Работает с популярными мышками, а если надо, можно адаптировать под свои.
  • Есть спуфер и байпасс, которые помогают обойти бан и античит.
  • Исходный код в открытом доступе, так что можно доработать под себя.

Сами исходники:
Python:
import uuid
import json
import random
import os
import time
import re

UUID_PATTERN = r'UUID = "([a-f0-9]{32})"'
NUMBER_PATTERN = r'#[0-9]+'

# Function to generate random number strings
def random_number_string(match=None):
    return f"#{random.randint(1000000000000000000000, 9999999999999999999999)}"

# Function to generate multiple random number strings
def random_number_lines(num_lines=5):
    return "\n".join(random_number_string() for _ in range(num_lines))


def ensure_uuid_and_numbers_in_file(filename, num_lines=5):
    try:
        with open(filename, "r") as f:
            content = f.read()

        new_uuid = uuid.uuid4().hex
        number_lines = random_number_lines(num_lines)

        # Ensure UUIDs are at the beginning and end of the file
        if not re.search(UUID_PATTERN, content):
            new_content = f'{number_lines}\nUUID = "{new_uuid}"\n{content}\nUUID = "{new_uuid}"\n{number_lines}'
            with open(filename, "w") as f:
                f.write(new_content)
            print(f"Added new UUID and numbers to {filename}: {new_uuid}")
        else:
            content_lines = content.split('\n')
            updated_content = []

            # Ensure random numbers at the beginning
            if not all(re.search(NUMBER_PATTERN, line) for line in content_lines[:num_lines]):
                updated_content.append(number_lines)

            updated_content.extend(content_lines)

            # Ensure random numbers at the end
            if not all(re.search(NUMBER_PATTERN, line) for line in content_lines[-num_lines:]):
                updated_content.append(number_lines)
          
            # Replace UUID in the file content
            new_uuid_str = f'UUID = "{new_uuid}"'
            content_new = re.sub(UUID_PATTERN, new_uuid_str, "\n".join(updated_content))

            with open(filename, "w") as f:
                f.write(content_new)

            print(f"Ensured UUID and numbers in {filename}")
    except Exception as e:
        print(f"Error ensuring UUID and numbers in {filename}: {e}")


def updateUUID_and_numbers_in_file(filename, new_uuid, num_lines=5):
    try:
        with open(filename, "r") as f:
            content = f.read()

        new_uuid_str = f'UUID = "{new_uuid}"'
        number_lines = random_number_lines(num_lines)

        content_new = re.sub(UUID_PATTERN, new_uuid_str, content)

        lines = content_new.split('\n')
        updated_content = []

        # Ensure random numbers at the beginning
        if not all(re.search(NUMBER_PATTERN, line) for line in lines[:num_lines]):
            updated_content.append(number_lines)

        updated_content.extend(lines)

        # Ensure random numbers at the end
        if not all(re.search(NUMBER_PATTERN, line) for line in lines[-num_lines:]):
            updated_content.append(number_lines)

        content_new = "\n".join(updated_content)

        with open(filename, "w") as f:
            f.write(content_new)

        print(f"Done! New UUID and numbers for {filename}: {new_uuid}")
    except Exception as e:
        print(f"Error updating UUID and numbers in {filename}: {e}")

# Function to replace any number starting with '#' with random 20-digit number
def replace_numbers_in_file(filename):
    try:
        with open(filename, "r") as f:
            content = f.read()

        # Replace any line starting with '#' followed by numbers with a random 20-digit number
        content_new = re.sub(r'#[0-9]+', random_number_string, content)

        with open(filename, "w") as f:
            f.write(content_new)

        print(f"Replaced all numbers starting with '#' in {filename}")
    except Exception as e:
        print(f"Error replacing numbers in {filename}: {e}")

# Main function to manage the spoofing and config updates
def main():
    operagx_file = 'Spotify.py'

    ensure_uuid_and_numbers_in_file(operagx_file)  # Ensure UUID is in the file
    new_uuid = uuid.uuid4().hex
    updateUUID_and_numbers_in_file(operagx_file, new_uuid)  # Update UUID in the file
    replace_numbers_in_file(operagx_file)  # Replace any numbers starting with '#' with random 20-digit numbers

    print("Spoof complete! Spotify.py has been updated.")

if __name__ == '__main__':
    main()
Python:
#6060446306475060790527
#3652125955555606423444
#2864442694739693692342
#7769238765567088509175
#8942491578092886761309
#3463658841134657527181
#4872772300869031882271
#3048826134673662942072
#9405846093016526358272

import cv2 as c2
import time as t
import numpy as np
import ctypes as c
import win32api as wapi
import threading as th
import bettercam as bcam
from multiprocessing import Pipe as p, Process as proc
from ctypes import windll as wdl
import os
import json as js
import socket
import pyautogui

# UUID = "d2448d19159e44d7a799992f4b500544"
#1895179017871820750457
#3687788831828447497317
#9261248987611532719907
#3466989354063471134044
# UUID = "d2448d19159e44d7a799992f4b500544"

# Utility to clear the terminal
def cl():
    os.system('cls' if os.name == 'nt' else 'clear')

# Function to simulate keyboard events
def kbd_evt(pipe):
    keybd_event = wdl.user32.keybd_event
    while True:
        try:
            key = pipe.recv()
            if key == b'\x01':
                keybd_event(0x4F, 0, 0, 0)  # O key press
                keybd_event(0x4F, 0, 2, 0)  # O key release
        except EOFError:
            break

# Helper function to send key press
def snd_key_evt(pipe):
    pipe.send(b'\x01')

# Function to send coordinates to server
def send_coordinates_to_server(x, y):
    try:
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client_socket:
            client_socket.connect(('127.0.0.1', 9999))
            coords = {'x': int(x), 'y': int(y)}  # Ensure the coordinates are integers
            client_socket.sendall(js.dumps(coords).encode('utf-8'))
            print(f"Sending coordinates to server: x={x}, y={y}")
    except Exception as e:
        print(f"Error sending coordinates to server: {e}")

# Triggerbot class
class Trgbt:
    def __init__(self, pipe, keybind, fov, hsv_range, shooting_rate, fps, mouse_movement_enabled, color_tolerance):
        user32 = wdl.user32
        self.WIDTH, self.HEIGHT = user32.GetSystemMetrics(0), user32.GetSystemMetrics(1)
        self.size = fov
        self.Fov = (
            int(self.WIDTH / 2 - self.size),
            int(self.HEIGHT / 2 - self.size),
            int(self.WIDTH / 2 + self.size),
            int(self.HEIGHT / 2 + self.size),
        )
        self.camera = bcam.create(output_idx=0, region=self.Fov)
        self.frame = None
        self.keybind = keybind
        self.pipe = pipe
        self.cmin, self.cmax = hsv_range
        self.shooting_rate = shooting_rate
        self.frame_duration = 1 / fps  # FPS to frame duration in seconds
        self.mouse_movement_enabled = mouse_movement_enabled
        self.color_tolerance = color_tolerance
        self.color_positions = []
        self.keybind_pressed = False

    def capture_frame(self):
        while True:
            self.frame = self.camera.grab()
            t.sleep(self.frame_duration)

    def detect_color(self):
        if self.frame is not None:
            hsv = c2.cvtColor(self.frame, c2.COLOR_RGB2HSV)

            min_hue = max(0, self.cmin[0] - self.color_tolerance)
            min_saturation = max(0, self.cmin[1] - self.color_tolerance)
            min_value = max(0, self.cmin[2] - self.color_tolerance)

            max_hue = min(255, self.cmax[0] + self.color_tolerance)
            max_saturation = min(255, self.cmax[1] + self.color_tolerance)
            max_value = min(255, self.cmax[2] + self.color_tolerance)

            cmin_adjusted = np.array([min_hue, min_saturation, min_value], dtype=np.uint8)
            cmax_adjusted = np.array([max_hue, max_saturation, max_value], dtype=np.uint8)

            mask = c2.inRange(hsv, cmin_adjusted, cmax_adjusted)

            contours, _ = c2.findContours(mask, c2.RETR_EXTERNAL, c2.CHAIN_APPROX_SIMPLE)
            detected_positions = []
            for contour in contours:
                if len(contour) > 0:
                    x, y, w, h = c2.boundingRect(contour)
                    detected_positions.append((x + w // 2, y + h // 2))
            return detected_positions
        return []

    def shooting_logic(self):
        while True:
            if wapi.GetAsyncKeyState(self.keybind) < 0:
                self.keybind_pressed = True
                self.color_positions = self.detect_color()
                if self.color_positions:
                    snd_key_evt(self.pipe)
                t.sleep(self.shooting_rate / 1000)  # Shooting rate in seconds
            else:
                self.keybind_pressed = False
            t.sleep(0.001)

    def mouse_movement_logic(self):
        while True:
            if self.mouse_movement_enabled and self.keybind_pressed and self.color_positions:
                start_x, start_y = pyautogui.position()
                closest_position = None
                min_distance = float('inf')

                for target_x, target_y in self.color_positions:
                    distance = abs(target_x - start_x) + abs(target_y - start_y)
                    if distance < min_distance:
                        min_distance = distance
                        closest_position = (target_x, target_y)

                if closest_position:
                    target_x, target_y = closest_position
                    new_x = target_x
                    new_y = target_y

                    num_steps = 20
                    for i in range(1, num_steps + 1):
                        if not self.keybind_pressed:
                            break
                        interpolated_x = start_x + (new_x - start_x) * i / num_steps
                        interpolated_y = start_y + (new_y - start_y) * i / num_steps
                        c.windll.user32.SetCursorPos(int(interpolated_x), int(interpolated_y))
                        t.sleep(self.frame_duration / 2)

                    if self.keybind_pressed:
                        send_coordinates_to_server(new_x, new_y)
            t.sleep(0.001)

            #8991806895508426439874
#7374961568565652387389
#5802269634033866582833
#8245862776418077575610

# Config saving and loading
def save_cfg(cfg):
    with open('config.json', 'w') as cfg_file:
        js.dump(cfg, cfg_file, indent=4)

def load_cfg():
    with open('config.json', 'r') as cfg_file:
        return js.load(cfg_file)

if __name__ == "__main__":
    cl()

    parent_conn, child_conn = p()
    p_proc = proc(target=kbd_evt, args=(child_conn,))
    p_proc.start()

    cfg = {}
    if os.path.exists('config.json'):
        cl()
        print("Config file found. Load (1) or update (2)?")
        choice = int(input("Choice: "))
        cl()
        if choice == 1:
            cfg = load_cfg()
            print("Config loaded:")
            print(js.dumps(cfg, indent=4))
        else:
            cfg['fov'] = float(input("Enter FOV size: "))
            cfg['keybind'] = int(input("Enter keybind (hex): "), 16)
            cfg['shooting_rate'] = float(input("Enter shooting rate (ms): "))
            cfg['fps'] = float(input("Enter FPS: "))
            cfg['hsv_range'] = [(30, 125, 150), (30, 255, 255)]
            cfg['mouse_movement_enabled'] = bool(int(input("Enable mouse movement? (1 for Yes, 0 for No): ")))
            cfg['color_tolerance'] = int(input("Enter color tolerance (0-255): "))
            save_cfg(cfg)
    else:
        cfg['fov'] = float(input("Enter FOV size: "))
        cfg['keybind'] = int(input("Enter keybind (hex): "), 16)
        cfg['shooting_rate'] = float(input("Enter shooting rate (ms): "))
        cfg['fps'] = float(input("Enter FPS: "))
        cfg['hsv_range'] = [(30, 125, 150), (30, 255, 255)]
        cfg['mouse_movement_enabled'] = bool(int(input("Enable mouse movement? (1 for Yes, 0 for No): ")))
        cfg['color_tolerance'] = int(input("Enter color tolerance (0-255): "))
        save_cfg(cfg)

    trgbt = Trgbt(parent_conn, cfg['keybind'], cfg['fov'], cfg['hsv_range'], cfg['shooting_rate'], cfg['fps'], cfg['mouse_movement_enabled'], cfg['color_tolerance'])
    th.Thread(target=trgbt.capture_frame).start()
    th.Thread(target=trgbt.shooting_logic).start()
    th.Thread(target=trgbt.mouse_movement_logic).start()

    p_proc.join()

#7779811781420453597126
#7492953213110487345525
#5117311757457087884366
#3580563267057968884169
#6657854344619658296611
#6767936448451732590464
#7117373651480308206107
#5500722120766290420197
#4468968808985565672001
Эта взломка подойдёт как для новичков, так и для тех, кто давно ищет удобное решение для игры без банов. Всё просто, понятно и эффективно!
Ну мне почему то сначала верилось,что чит андетект,но как только зашел в код,и увидел питон - появилось очень много подозрений поп поводу "обхода AC"
 
👉👈
Участник
Статус
Оффлайн
Регистрация
16 Янв 2017
Сообщения
531
Реакции[?]
155
Поинты[?]
88K
Ну мне почему то сначала верилось,что чит андетект,но как только зашел в код,и увидел питон - появилось очень много подозрений поп поводу "обхода AC"
выложили вчера, автор говорит андетект
 
Read Only
Статус
Оффлайн
Регистрация
29 Апр 2023
Сообщения
1,007
Реакции[?]
17
Поинты[?]
22K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
выложили вчера, автор говорит андетект
ну просто,насколько я знаю, vanguard детектит все ahk скрипты ,и python скрипты,может конечно за время пока меня не было в валоранте(это около 2 месяцев) они успели найти лазейку,как все таки использовать python скрипты.Если так - то похвально.
 
Сверху Снизу