• На форуме разыгрывается более 300 ключей на приватные читы! Для этого нужно всего-лишь нажать соответствующую кнопку в теме!

    Подробности по ссылке:
    https://t.me/yougame_official/66

Скрипт [WINDOWS] - Обход бана по железу

Начинающий
Статус
Оффлайн
Регистрация
8 Апр 2016
Сообщения
20
Реакции[?]
1
Поинты[?]
1K
ANTI BAN FOR PC


Сегодня я хочу поделиться с вами чем-то особенным. Я написал скрипт на Python, который поможет обойти бан по "железу" во многих играх. Обычно, такие инструменты либо меняют только один параметр, либо являются платными и предлагают широкий спектр функций. Мой скрипт - это универсальное решение, которое доступно каждому.

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

1736176072321.png


Oсторожно снизу мой говно код можно ослепнуть от лишнего хлама в нем XD

Python:
import subprocess
import ctypes
import uuid
import random
import sys
import time
import re
import logging
import json

# Константы
REGISTRY_BACKUP_PATH = "registry_backup.reg"
LOG_FILE = "system_settings.log"

# Настройка логирования
logging.basicConfig(filename=LOG_FILE, level=logging.DEBUG,
                    format='%(asctime)s - %(levelname)s - %(message)s')

# Проверка административных прав
def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except Exception as e:
        logging.error(f"Ошибка при проверке административных прав: {e}")
        return False

# Валидация MAC-адреса
def is_valid_mac(mac):
    pattern = re.compile(r"^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$")
    return bool(pattern.match(mac))

# Генерация случайного MAC-адреса
def generate_mac():
    mac = ":".join(["{:02x}".format(random.randint(0x00, 0xFF)) for _ in range(6)])
    logging.info(f"Сгенерирован MAC-адрес: {mac}")
    return mac

# Получение текущего MAC-адреса
def get_current_mac():
    mac = ':'.join(['{:02x}'.format((uuid.getnode() >> elements) & 0xff)
                   for elements in range(0, 48, 8)][::-1])
    logging.info(f"Текущий MAC-адрес: {mac}")
    return mac

# Получение имени компьютера
def get_current_computer_name():
    try:
        computer_name = ctypes.create_unicode_buffer(256)
        size = ctypes.c_uint(ctypes.sizeof(computer_name))
        ctypes.windll.kernel32.GetComputerNameW(computer_name, ctypes.byref(size))
        name = computer_name.value
        logging.info(f"Текущее имя компьютера: {name}")
        return name
    except Exception as e:
        logging.error(f"Не удалось получить имя компьютера: {e}")
        return "Не удалось получить имя компьютера."

# Выполнение PowerShell команды
def run_powershell_command(command):
    try:
        result = subprocess.check_output([
            "powershell", "-Command", command
        ], stderr=subprocess.STDOUT, shell=True)
        decoded = result.decode('utf-8', errors='replace')
        logging.info(f"Выполнена PowerShell команда: {command}")
        return decoded.strip()
    except subprocess.CalledProcessError as e:
        error_message = e.output.decode('utf-8', errors='replace') if e.output else "Неизвестная ошибка."
        logging.error(f"Ошибка при выполнении PowerShell команды '{command}': {error_message}")
        return None

# Получение списка сетевых адаптеров
def get_network_adapters():
    adapters = []
    try:
        command = 'Get-NetAdapter | Select-Object Name, MacAddress, Status | ConvertTo-Json'
        output = run_powershell_command(command)
        if output:
            adapters_data = json.loads(output)
            if isinstance(adapters_data, dict):
                adapters_data = [adapters_data]
            for adapter in adapters_data:
                mac = adapter.get('MacAddress', '').strip()
                name = adapter.get('Name', '').strip()
                state = adapter.get('Status', '').strip()
                if mac and mac != '00-00-00-00-00-00':
                    adapters.append({'Name': name, 'MAC': mac, 'State': state})
            logging.info(f"Получено {len(adapters)} сетевых адаптеров.")
    except json.JSONDecodeError as e:
        logging.error(f"Ошибка парсинга JSON: {e}")
    except Exception as e:
        logging.error(f"Ошибка получения сетевых адаптеров: {e}")
    return adapters

# Изменение имени компьютера
def change_computer_name(new_name):
    try:
        subprocess.run([
            "wmic", "computersystem", "where", "name='%computername%'", "rename", new_name
        ], check=True, shell=True)
        print(f"Имя компьютера изменено на: {new_name}")
        logging.info(f"Имя компьютера изменено на: {new_name}")
    except subprocess.CalledProcessError as e:
        logging.error(f"Не удалось изменить имя компьютера: {e}")

# Изменение MAC-адреса
def change_mac_address(new_mac):
    adapters = get_network_adapters()
    if not adapters:
        print("Не найдено сетевых адаптеров.")
        return

    print("Доступные сетевые адаптеры:")
    for idx, adapter in enumerate(adapters, 1):
        print(f"{idx}. {adapter['Name']} - {adapter['MAC']} - Состояние: {adapter['State']}")

    choice = input("Выберите адаптер для изменения MAC-адреса (номер): ")
    try:
        choice = int(choice)
        if 1 <= choice <= len(adapters):
            adapter = adapters[choice - 1]
            adapter_name = adapter['Name']
            # Изменение MAC-адреса через PowerShell
            command = f"Set-NetAdapter -Name '{adapter_name}' -MacAddress '{new_mac}'"
            result = run_powershell_command(command)
            if result:
                print(f"MAC-адрес адаптера '{adapter_name}' изменен на {new_mac}")
                logging.info(f"MAC-адрес адаптера '{adapter_name}' изменен на {new_mac}")
    except ValueError:
        print("Некорректный выбор.")

# Главное меню
def main_menu():
    menu = """
    ===============================
         Меню Настроек
    ===============================
    1. Сгенерировать случайный MAC-адрес и изменить
    2. Изменить имя компьютера
    3. Показать текущие настройки
    4. Выход
    """
    while True:
        print(menu)
        choice = input("Выберите опцию (1-4): ")
        if choice == '1':
            new_mac = generate_mac()
            change_mac_address(new_mac)
        elif choice == '2':
            new_name = input("Введите новое имя компьютера: ")
            change_computer_name(new_name)
        elif choice == '3':
            print(f"Текущий MAC-адрес: {get_current_mac()}")
            print(f"Текущее имя компьютера: {get_current_computer_name()}")
        elif choice == '4':
            print("Выход из программы.")
            break
        else:
            print("Неверный выбор. Попробуйте снова.")

if __name__ == "__main__":
    if not is_admin():
        print("Эта программа требует административных прав. Запустите её от имени администратора.")
        sys.exit(1)
    main_menu()
Мануал:

Код:
Инструкция по установке и запуску скрипта
1.    Установка Python
Скачивание Python:
o    Перейдите на официальный сайт Python: https://www.python.org/downloads/.
o    Скачайте последнюю стабильную версию Python (рекомендуется версия 3.8 или выше).
Установка Python:
o    Запустите загруженный установщик.
o    ВАЖНО: На первом экране установки поставьте галочку "Add Python to PATH" (Добавить Python в PATH).
o    Нажмите "Install Now" и дождитесь завершения установки.
Проверка установки:
o    Откройте командную строку (Command Prompt).
o    Введите команду:
o    python --version
o    Вы должны увидеть установленную версию Python, например:
o    Python 3.10.4
2.    Установка необходимых Python-пакетов
Скрипт использует только стандартные библиотеки Python, поэтому дополнительные пакеты устанавливать не нужно. Однако убедитесь, что ваша версия Python актуальна для совместимости.
3.    Загрузка и настройка скрипта
Создание рабочей папки:
o    Создайте новую папку на вашем компьютере, например C:\SystemSettingsChanger.
Сохранение скрипта:
o    Откройте папку SystemSettingsChanger и поместите туда файл settings_changer.py.
4.    Запуск скрипта с административными правами
Большинство операций, выполняемых скриптом (изменение MAC-адреса, IP-адреса, имени компьютера и т. д.), требуют административных прав.
Открытие командной строки с правами администратора:
o    Нажмите Win + X и выберите "Командная строка (администратор)" или "Windows PowerShell (администратор)".
o    Подтвердите запрос контроля учетных записей (UAC), нажав "Да".
Переход в рабочую папку:
o    В окне командной строки введите команду:
o    cd C:\SystemSettingsChanger
o    Нажмите Enter.
Запуск скрипта:
o    Введите команду:
o    python settings_changer.py
o    Нажмите Enter.
5.    Использование скрипта
Главное меню:
После запуска скрипта появится главное меню с доступными опциями. Введите номер желаемой опции и нажмите Enter.
Доступные опции:
o    Изменение MAC-адреса:
    Выберите опцию для генерации и изменения MAC-адреса.
    Выберите сетевой адаптер из списка.
    Новый MAC-адрес будет сгенерирован автоматически.
o    Изменение имени компьютера:
    Выберите опцию для изменения имени компьютера.
    Новое имя будет выбрано случайно из заранее определённого списка.
o    Изменение IP-адреса:
    Выберите опцию для изменения IP-адреса.
    Выберите сетевой адаптер из списка.
    Введите новый IP-адрес, маску подсети и шлюз.
o    Изменение всех доступных настроек:
    Выберите опцию для одновременного изменения MAC-адреса, имени компьютера и IP-адреса.
o    Показ текущих настроек:
    Выберите опцию для отображения текущих системных настроек.
o    Выход:
    Выберите опцию для завершения работы скрипта.
6.    Важные замечания и рекомендации
o    Резервное копирование системы: Перед внесением изменений в системные настройки рекомендуется создать точку восстановления системы или полную резервную копию. Это поможет восстановить систему в случае непредвиденных проблем.
o    Административные права: Убедитесь, что вы запускаете скрипт с правами администратора, иначе некоторые операции могут не выполниться.
o    Совместимость: Скрипт предназначен для операционной системы Windows. Убедитесь, что ваши сетевые адаптеры поддерживают изменение MAC-адреса через реестр.
o    Изменение HWID, серийного номера материнской платы и UUID: Эти операции не поддерживаются стандартными средствами Windows и могут быть опасными. Попытки их изменения могут привести к нестабильности системы или повреждению оборудования.
o    Проверка изменений: После внесения изменений рекомендуется проверить их корректность. Для MAC-адреса и IP-адреса можно использовать команду ipconfig /all в командной строке.
o    Логи: Скрипт создаёт файл логов system_settings.log, где хранится информация о выполненных операциях и возможных ошибках. Периодически проверяйте этот файл для мониторинга действий скрипта.
7.    Дополнительные ресурсы
o    Документация Python: https://docs.python.org/3/
o    Работа с реестром Windows в Python: https://docs.python.org/3/library/winreg.html
o    Команды netsh для управления сетью: https://docs.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-contexts
Примечание: Всегда будьте осторожны при внесении изменений в системные настройки. Некорректные действия могут привести к серьёзным проблемам с операционной системой или сетевыми подключениями.
Это моя первая публикация, прошу сильно не бейте.
 
Последнее редактирование:
Памагите
Пользователь
Статус
Оффлайн
Регистрация
15 Апр 2021
Сообщения
281
Реакции[?]
49
Поинты[?]
8K
ANTI BAN FOR PC


Сегодня я хочу поделиться с вами чем-то особенным. Я написал скрипт на Python, который поможет обойти бан по "железу" во многих играх. Обычно, такие инструменты либо меняют только один параметр, либо являются платными и предлагают широкий спектр функций. Мой скрипт - это универсальное решение, которое доступно каждому.

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

Посмотреть вложение 294962


Oсторожно снизу мой говно код можно ослепнуть от лишнего хлама в нем XD

Python:
import subprocess
import ctypes
import uuid
import random
import sys
import os
import time
import winreg
import csv
from io import StringIO
import re
import traceback
import locale
import logging
import json

# Константы
REGISTRY_PATH = r"SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}"
REGISTRY_BACKUP_PATH = "registry_backup.reg"
LOG_FILE = "system_settings.log"

# Настройка логирования
logging.basicConfig(filename=LOG_FILE, level=logging.DEBUG,
                    format='%(asctime)s - %(levelname)s - %(message)s')

# Проверка административных прав
def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except Exception as e:
        logging.error(f"Ошибка при проверке административных прав: {e}")
        traceback.print_exc()
        return False

# Резервное копирование реестра
def backup_registry():
    try:
        subprocess.run([
            "reg", "export",
            REGISTRY_PATH,
            REGISTRY_BACKUP_PATH
        ], check=True, shell=True)
        logging.info(f"Резервная копия реестра создана по пути: {REGISTRY_BACKUP_PATH}")
        print(f"Резервная копия реестра создана по пути: {REGISTRY_BACKUP_PATH}")
    except subprocess.CalledProcessError as e:
        logging.error(f"Не удалось создать резервную копию реестра: {e}")
        traceback.print_exc()
        print(f"Не удалось создать резервную копию реестра: {e}")

# Валидация MAC-адреса
def is_valid_mac(mac):
    pattern = re.compile(r"^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$")
    return bool(pattern.match(mac))

# Генерация случайного MAC-адреса
def generate_mac():
    while True:
        mac = ":".join(["{:02x}".format(random.randint(0x00, 0xFF)) for _ in range(6)])
        if is_valid_mac(mac):
            print("Сгенерирован MAC-адрес:", mac)
            logging.info(f"Сгенерирован MAC-адрес: {mac}")
            return mac

# Получение текущего MAC-адреса
def get_current_mac():
    mac = ':'.join(['{:02x}'.format((uuid.getnode() >> elements) & 0xff)
                   for elements in range(0, 48, 8)][::-1])
    logging.info(f"Текущий MAC-адрес: {mac}")
    return mac

# Получение имени компьютера
def get_current_computer_name():
    try:
        computer_name = ctypes.create_unicode_buffer(256)
        size = ctypes.c_uint(ctypes.sizeof(computer_name))
        ctypes.windll.kernel32.GetComputerNameW(computer_name, ctypes.byref(size))
        name = computer_name.value
        logging.info(f"Текущее имя компьютера: {name}")
        return name
    except Exception as e:
        logging.error(f"Не удалось получить имя компьютера: {e}")
        traceback.print_exc()
        return "Не удалось получить имя компьютера."

# Выполнение PowerShell команд и получение результата с установкой кодировки UTF-8
def run_powershell_command(command):
    try:
        # Устанавливаем кодировку в PowerShell на UTF-8
        full_command = f"[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; {command}"
        result = subprocess.check_output(
            ["powershell", "-Command", full_command],
            stderr=subprocess.STDOUT,
            shell=True
        )
        decoded = result.decode('utf-8', errors='replace')
        logging.info(f"Выполнена PowerShell команда: {command}")
        return decoded.strip()
    except subprocess.CalledProcessError as e:
        try:
            error_message = e.output.decode('utf-8', errors='replace')
        except:
            error_message = "Не удалось декодировать ошибку."
        logging.error(f"Ошибка при выполнении PowerShell команды '{command}': {error_message}")
        traceback.print_exc()
        return None

# Получение HWID
def get_current_hwid():
    hwid = run_powershell_command("Get-WmiObject Win32_ComputerSystemProduct | Select-Object -ExpandProperty UUID")
    if hwid:
        logging.info(f"HWID: {hwid}")
        return hwid
    else:
        return "Не удалось получить HWID."

# Получение UUID (тот же самый, что HWID)
def get_current_uuid():
    return get_current_hwid()

# Получение серийного номера BIOS
def get_current_serial_number():
    serial_number = run_powershell_command("Get-WmiObject Win32_BIOS | Select-Object -ExpandProperty SerialNumber")
    if serial_number:
        logging.info(f"Серийный номер BIOS: {serial_number}")
        return serial_number
    else:
        return "Не удалось получить серийный номер."

# Получение модели системы
def get_current_model():
    model = run_powershell_command("Get-WmiObject Win32_ComputerSystem | Select-Object -ExpandProperty Model")
    if model:
        logging.info(f"Модель системы: {model}")
        return model
    else:
        return "Не удалось получить модель."

# Получение видеокарты
def get_current_video_card():
    video_card = run_powershell_command("Get-WmiObject Win32_VideoController | Select-Object -ExpandProperty Name")
    if video_card:
        logging.info(f"Видеокарта: {video_card}")
        return video_card
    else:
        return "Не удалось получить видеокарту."

# Получение списка сетевых адаптеров с помощью PowerShell и JSON
def get_network_adapters():
    adapters = []
    try:
        command = 'Get-NetAdapter | Select-Object Name, MacAddress, Status | ConvertTo-Json'
        output = run_powershell_command(command)
        if output:
            adapters_data = json.loads(output)
            # Убедимся, что это список
            if isinstance(adapters_data, dict):
                adapters_data = [adapters_data]
            for adapter in adapters_data:
                mac = adapter.get('MacAddress', '').strip()
                name = adapter.get('Name', '').strip()
                state = adapter.get('Status', '').strip()
                if mac and mac != '00-00-00-00-00-00':
                    adapters.append({'Name': name, 'MAC': mac, 'State': state})
            logging.info(f"Получено {len(adapters)} сетевых адаптеров.")
        else:
            logging.warning("Не удалось получить сетевые адаптеры.")
    except json.JSONDecodeError as e:
        print(f"Не удалось распарсить JSON-вывод: {e}")
        logging.error(f"Не удалось распарсить JSON-вывод: {e}")
        traceback.print_exc()
    except Exception as e:
        print(f"Не удалось получить список сетевых адаптеров: {e}")
        logging.error(f"Не удалось получить список сетевых адаптеров: {e}")
        traceback.print_exc()
    return adapters

# Перезапуск сетевого адаптера с помощью netsh
def restart_adapter(adapter_name):
    try:
        subprocess.run(["netsh", "interface", "set", "interface", adapter_name, "disable"], check=True, shell=True)
        time.sleep(2)  # Короткая пауза перед повторным включением
        subprocess.run(["netsh", "interface", "set", "interface", adapter_name, "enable"], check=True, shell=True)
        print(f"Адаптер '{adapter_name}' перезапущен.")
        logging.info(f"Адаптер '{adapter_name}' перезапущен.")
    except subprocess.CalledProcessError as e:
        print(f"Не удалось перезапустить адаптер '{adapter_name}': {e}")
        logging.error(f"Не удалось перезапустить адаптер '{adapter_name}': {e}")
        traceback.print_exc()

# Изменение MAC-адреса
def change_mac_address(new_mac):
    backup_registry()
    adapters = get_network_adapters()
    if not adapters:
        print("Не найдено сетевых адаптеров для изменения MAC-адреса.")
        logging.warning("Не найдено сетевых адаптеров для изменения MAC-адреса.")
        return

    print("Доступные сетевые адаптеры:")
    for idx, adapter in enumerate(adapters, 1):
        print(f"{idx}. {adapter['Name']} - {adapter['MAC']} - Состояние: {adapter['State']}")

    choice = input("Выберите адаптер для изменения MAC-адреса (номер): ")
    try:
        choice = int(choice)
        if 1 <= choice <= len(adapters):
            adapter = adapters[choice - 1]
            adapter_mac = adapter['MAC'].replace(":", "").replace("-", "").lower()
            adapter_name = adapter['Name']
            logging.info(f"Выбран адаптер для изменения MAC-адреса: {adapter_name} - {adapter['MAC']}")

            try:
                # Изменение MAC-адреса через реестр
                with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, REGISTRY_PATH, 0, winreg.KEY_ALL_ACCESS) as key:
                    found = False
                    for i in range(100):
                        try:
                            subkey_name = winreg.EnumKey(key, i)
                            with winreg.OpenKey(key, subkey_name, 0, winreg.KEY_ALL_ACCESS) as subkey:
                                try:
                                    driver_desc, _ = winreg.QueryValueEx(subkey, "DriverDesc")
                                    # Сравниваем по имени адаптера (без регистра)
                                    if driver_desc.lower() == adapter_name.lower():
                                        # Записываем новый MAC-адрес без двоеточий
                                        winreg.SetValueEx(subkey, "NetworkAddress", 0, winreg.REG_SZ, new_mac.replace(":", ""))
                                        print(f"MAC-адрес адаптера '{adapter_name}' изменен на {new_mac}")
                                        logging.info(f"MAC-адрес адаптера '{adapter_name}' изменен на {new_mac}")
                                        # Перезапускаем адаптер
                                        restart_adapter(adapter_name)
                                        found = True
                                        break
                                except FileNotFoundError:
                                    # Если ключ "DriverDesc" не существует, пропускаем
                                    pass
                                except Exception as e:
                                    print(f"Ошибка при изменении MAC-адреса: {e}")
                                    logging.error(f"Ошибка при изменении MAC-адреса: {e}")
                        except OSError:
                            # Достигнут конец ключей
                            break
                    if not found:
                        print("Не удалось найти соответствующий ключ реестра для адаптера.")
                        logging.warning("Не удалось найти соответствующий ключ реестра для адаптера.")
            except PermissionError:
                print("Необходимы права администратора для изменения реестра.")
                logging.error("Необходимы права администратора для изменения реестра.")
        else:
            print("Неверный выбор.")
            logging.warning(f"Неверный выбор адаптера для изменения MAC-адреса: {choice}")
    except ValueError:
        print("Пожалуйста, введите корректный номер.")
        logging.warning("Пользователь ввел некорректный номер адаптера.")

# Валидация имени компьютера
def is_valid_computer_name(name):
    pattern = re.compile(r"^[A-Za-z0-9-]{1,15}$")
    return bool(pattern.match(name))

# Изменение имени компьютера
def change_computer_name(new_name):
    if not is_valid_computer_name(new_name):
        print("Некорректное имя компьютера. Введите имя от 1 до 15 символов, используя только буквы, цифры и дефисы.")
        logging.warning(f"Пользователь попытался установить некорректное имя компьютера: {new_name}")
        return
    try:
        subprocess.run(["wmic", "computersystem", "where", "name='%computername%'", "rename", new_name], check=True, shell=True)
        print(f"Имя компьютера изменено на: {new_name}")
        logging.info(f"Имя компьютера изменено на: {new_name}")
        restart = input("Для применения изменений требуется перезагрузка. Перезагрузить сейчас? (y/n): ").lower()
        if restart == 'y':
            subprocess.run(["shutdown", "/r", "/t", "0"], check=True)
    except subprocess.CalledProcessError as e:
        print(f"Не удалось изменить имя компьютера: {e}")
        logging.error(f"Не удалось изменить имя компьютера: {e}")
        traceback.print_exc()

# Изменение IP-адреса
def change_ip_address():
    adapters = get_network_adapters()
    if not adapters:
        print("Не найдено сетевых адаптеров для изменения IP-адреса.")
        logging.warning("Не найдено сетевых адаптеров для изменения IP-адреса.")
        return

    print("Доступные сетевые адаптеры:")
    for idx, adapter in enumerate(adapters, 1):
        print(f"{idx}. {adapter['Name']} - MAC: {adapter['MAC']} - Состояние: {adapter['State']}")

    choice = input("Выберите адаптер для изменения IP-адреса (номер): ")
    try:
        choice = int(choice)
        if 1 <= choice <= len(adapters):
            adapter = adapters[choice - 1]
            adapter_name = adapter['Name']
            print(f"Вы выбрали адаптер: {adapter_name}")

            # Получение текущего IP-адреса
            current_ip = run_powershell_command(f"(Get-NetIPAddress -InterfaceAlias '{adapter_name}' -AddressFamily IPv4).IPAddress")
            print(f"Текущий IP-адрес: {current_ip}")

            # Ввод нового IP-адреса
            new_ip = input("Введите новый IP-адрес (например, 192.168.1.100): ")
            subnet_mask = input("Введите маску подсети (например, 255.255.255.0): ")
            gateway = input("Введите шлюз по умолчанию (например, 192.168.1.1): ")

            # Валидация IP-адресов
            ip_pattern = re.compile(r"^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$")
            if not all([ip_pattern.match(ip) for ip in [new_ip, subnet_mask, gateway]]):
                print("Один или несколько введенных IP-адресов некорректны.")
                logging.warning("Пользователь ввел некорректные IP-адреса.")
                return

            # Установка статического IP-адреса
            try:
                subprocess.run([
                    "netsh", "interface", "ipv4", "set", "address",
                    f"name={adapter_name}",
                    "static",
                    new_ip,
                    subnet_mask,
                    gateway
                ], check=True, shell=True)
                print(f"IP-адрес адаптера '{adapter_name}' изменен на {new_ip}")
                logging.info(f"IP-адрес адаптера '{adapter_name}' изменен на {new_ip}")
            except subprocess.CalledProcessError as e:
                print(f"Не удалось изменить IP-адрес: {e}")
                logging.error(f"Не удалось изменить IP-адрес: {e}")
                traceback.print_exc()
        else:
            print("Неверный выбор.")
            logging.warning(f"Неверный выбор адаптера для изменения IP-адреса: {choice}")
    except ValueError:
        print("Пожалуйста, введите корректный номер.")
        logging.warning("Пользователь ввел некорректный номер адаптера для изменения IP-адреса.")

# Изменение HWID (Теоретически возможно, но опасно и не рекомендуется)
def change_hwid(new_hwid):
    # HWID обычно основан на аппаратных компонентах, поэтому его изменение невозможно через программное обеспечение
    # Можно попытаться изменить некоторые WMI объекты, но это может привести к нестабильности системы
    print("Изменение HWID не поддерживается из-за ограничений операционной системы и аппаратного обеспечения.")
    logging.warning("Пользователь пытался изменить HWID, что не поддерживается.")

# Изменение серийного номера материнской платы (Теоретически возможно через BIOS/UEFI, но опасно и не рекомендуется)
def change_motherboard_serial(new_serial):
    # Изменение серийного номера материнской платы обычно невозможно через стандартные инструменты Windows
    # Можно попытаться изменить WMI объекты, но это не рекомендуется
    print("Изменение серийного номера материнской платы не поддерживается из-за ограничений операционной системы и аппаратного обеспечения.")
    logging.warning("Пользователь пытался изменить серийный номер материнской платы, что не поддерживается.")

# Изменение UUID (Теоретически возможно, но опасно и не рекомендуется)
def change_uuid(new_uuid):
    # UUID обычно основан на аппаратных компонентах, поэтому его изменение невозможно через программное обеспечение
    # Можно попытаться изменить WMI объекты, но это может привести к нестабильности системы
    print("Изменение UUID не поддерживается из-за ограничений операционной системы и аппаратного обеспечения.")
    logging.warning("Пользователь пытался изменить UUID, что не поддерживается.")

# Отображение текущих настроек
def show_current_settings():
    current_mac = get_current_mac()
    current_name = get_current_computer_name()
    current_hwid = get_current_hwid()
    current_uuid = get_current_uuid()
    current_serial_number = get_current_serial_number()
    current_model = get_current_model()
    current_video_card = get_current_video_card()
    adapters = get_network_adapters()

    print("\n===== Текущие Настройки =====")
    print(f"MAC-адрес: {current_mac}")
    print(f"Имя компьютера: {current_name}")
    print(f"HWID: {current_hwid}")
    print(f"UUID: {current_uuid}")
    print(f"Серийный номер BIOS: {current_serial_number}")
    print(f"Модель: {current_model}")
    print(f"Видеокарта: {current_video_card}")
    print("\n--- Сетевые Адаптеры ---")
    if adapters:
        for adapter in adapters:
            state = adapter['State'] if adapter['State'] else "Неизвестно"
            print(f"{adapter['Name']} - MAC: {adapter['MAC']} - Состояние: {state}")
    else:
        print("Сетевые адаптеры не найдены или возникла ошибка при их получении.")
    print("=================================\n")
    logging.info("Отображены текущие настройки системы.")

# Список возможных имен для компьютера
names = [
    "DeltaPC", "AlphaComp", "NeptuneSys", "ZenithTech",
    "OrionNode", "QuantumCore", "SigmaTech", "VegaCompute",
    "LunarBox", "SolarWave", "CosmoKey", "NovaPort",
    "ElectronHub", "PhotonGear", "PulsarData", "QuarkSystem",
    "ZetaWorks", "AsteroidNet", "GalaxyCode", "MeteorStream",
    "StarlightOS", "CometCloud", "BlackholeBase", "NebulaNet",
    "SupernovaStation", "EclipseEdge", "StellarSpace", "VoidVault",
    "GravityGrid", "HorizonHeart", "PlanetPath", "UniverseUnit"
]

# Главное меню
def main_menu():
    menu = """
    ===============================
         Меню Настроек
    ===============================
    1. Сгенерировать случайный MAC-адрес и изменить
    2. Изменить имя компьютера
    3. Изменить IP-адрес
    4. Изменить все доступные настройки
    5. Показать текущие настройки
    6. Выход
    """
    while True:
        try:
            print(menu)
            choice = input("Выберите опцию (1-6): ")
            if choice == '1':
                new_mac = generate_mac()
                change_mac_address(new_mac)
            elif choice == '2':
                new_name = random.choice(names) + "-" + str(random.randint(100, 999))
                change_computer_name(new_name)
            elif choice == '3':
                change_ip_address()
            elif choice == '4':
                new_mac = generate_mac()
                change_mac_address(new_mac)
                new_name = random.choice(names) + "-" + str(random.randint(100, 999))
                change_computer_name(new_name)
                change_ip_address()
                print("Доступные настройки изменены.")
                logging.info("Доступные настройки изменены.")
            elif choice == '5':
                show_current_settings()
            elif choice == '6':
                print("Выход из программы.")
                logging.info("Пользователь вышел из программы.")
                break
            else:
                print("Неверный выбор. Пожалуйста, выберите опцию от 1 до 6.")
                logging.warning(f"Пользователь выбрал неверную опцию: {choice}")
        except Exception as e:
            print(f"Произошла ошибка: {e}")
            logging.error(f"Произошла ошибка: {e}")
            traceback.print_exc()

if __name__ == "__main__":
    if not is_admin():
        print("Эта программа требует административных прав. Пожалуйста, запустите её от имени администратора.")
        logging.warning("Попытка запуска программы без административных прав.")
        sys.exit(1)
    main_menu()
Мануал:

Код:
Инструкция по установке и запуску скрипта
1.    Установка Python
Скачивание Python:
o    Перейдите на официальный сайт Python: https://www.python.org/downloads/.
o    Скачайте последнюю стабильную версию Python (рекомендуется версия 3.8 или выше).
Установка Python:
o    Запустите загруженный установщик.
o    ВАЖНО: На первом экране установки поставьте галочку "Add Python to PATH" (Добавить Python в PATH).
o    Нажмите "Install Now" и дождитесь завершения установки.
Проверка установки:
o    Откройте командную строку (Command Prompt).
o    Введите команду:
o    python --version
o    Вы должны увидеть установленную версию Python, например:
o    Python 3.10.4
2.    Установка необходимых Python-пакетов
Скрипт использует только стандартные библиотеки Python, поэтому дополнительные пакеты устанавливать не нужно. Однако убедитесь, что ваша версия Python актуальна для совместимости.
3.    Загрузка и настройка скрипта
Создание рабочей папки:
o    Создайте новую папку на вашем компьютере, например C:\SystemSettingsChanger.
Сохранение скрипта:
o    Откройте папку SystemSettingsChanger и поместите туда файл settings_changer.py.
4.    Запуск скрипта с административными правами
Большинство операций, выполняемых скриптом (изменение MAC-адреса, IP-адреса, имени компьютера и т. д.), требуют административных прав.
Открытие командной строки с правами администратора:
o    Нажмите Win + X и выберите "Командная строка (администратор)" или "Windows PowerShell (администратор)".
o    Подтвердите запрос контроля учетных записей (UAC), нажав "Да".
Переход в рабочую папку:
o    В окне командной строки введите команду:
o    cd C:\SystemSettingsChanger
o    Нажмите Enter.
Запуск скрипта:
o    Введите команду:
o    python settings_changer.py
o    Нажмите Enter.
5.    Использование скрипта
Главное меню:
После запуска скрипта появится главное меню с доступными опциями. Введите номер желаемой опции и нажмите Enter.
Доступные опции:
o    Изменение MAC-адреса:
    Выберите опцию для генерации и изменения MAC-адреса.
    Выберите сетевой адаптер из списка.
    Новый MAC-адрес будет сгенерирован автоматически.
o    Изменение имени компьютера:
    Выберите опцию для изменения имени компьютера.
    Новое имя будет выбрано случайно из заранее определённого списка.
o    Изменение IP-адреса:
    Выберите опцию для изменения IP-адреса.
    Выберите сетевой адаптер из списка.
    Введите новый IP-адрес, маску подсети и шлюз.
o    Изменение всех доступных настроек:
    Выберите опцию для одновременного изменения MAC-адреса, имени компьютера и IP-адреса.
o    Показ текущих настроек:
    Выберите опцию для отображения текущих системных настроек.
o    Выход:
    Выберите опцию для завершения работы скрипта.
6.    Важные замечания и рекомендации
o    Резервное копирование системы: Перед внесением изменений в системные настройки рекомендуется создать точку восстановления системы или полную резервную копию. Это поможет восстановить систему в случае непредвиденных проблем.
o    Административные права: Убедитесь, что вы запускаете скрипт с правами администратора, иначе некоторые операции могут не выполниться.
o    Совместимость: Скрипт предназначен для операционной системы Windows. Убедитесь, что ваши сетевые адаптеры поддерживают изменение MAC-адреса через реестр.
o    Изменение HWID, серийного номера материнской платы и UUID: Эти операции не поддерживаются стандартными средствами Windows и могут быть опасными. Попытки их изменения могут привести к нестабильности системы или повреждению оборудования.
o    Проверка изменений: После внесения изменений рекомендуется проверить их корректность. Для MAC-адреса и IP-адреса можно использовать команду ipconfig /all в командной строке.
o    Логи: Скрипт создаёт файл логов system_settings.log, где хранится информация о выполненных операциях и возможных ошибках. Периодически проверяйте этот файл для мониторинга действий скрипта.
7.    Дополнительные ресурсы
o    Документация Python: https://docs.python.org/3/
o    Работа с реестром Windows в Python: https://docs.python.org/3/library/winreg.html
o    Команды netsh для управления сетью: https://docs.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-contexts
Примечание: Всегда будьте осторожны при внесении изменений в системные настройки. Некорректные действия могут привести к серьёзным проблемам с операционной системой или сетевыми подключениями.
Это моя первая публикация, прошу сильно не бейте.
нихуя себе имба, всего лишь 3 функции работают для винды
 
Начинающий
Статус
Оффлайн
Регистрация
8 Апр 2016
Сообщения
20
Реакции[?]
1
Поинты[?]
1K
пупс, поцелуй
Участник
Статус
Оффлайн
Регистрация
28 Май 2019
Сообщения
1,068
Реакции[?]
331
Поинты[?]
27K
ANTI BAN FOR PC


Сегодня я хочу поделиться с вами чем-то особенным. Я написал скрипт на Python, который поможет обойти бан по "железу" во многих играх. Обычно, такие инструменты либо меняют только один параметр, либо являются платными и предлагают широкий спектр функций. Мой скрипт - это универсальное решение, которое доступно каждому.

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

Посмотреть вложение 294962


Oсторожно снизу мой говно код можно ослепнуть от лишнего хлама в нем XD

Python:
import subprocess
import ctypes
import uuid
import random
import sys
import os
import time
import winreg
import csv
from io import StringIO
import re
import traceback
import locale
import logging
import json

# Константы
REGISTRY_PATH = r"SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}"
REGISTRY_BACKUP_PATH = "registry_backup.reg"
LOG_FILE = "system_settings.log"

# Настройка логирования
logging.basicConfig(filename=LOG_FILE, level=logging.DEBUG,
                    format='%(asctime)s - %(levelname)s - %(message)s')

# Проверка административных прав
def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except Exception as e:
        logging.error(f"Ошибка при проверке административных прав: {e}")
        traceback.print_exc()
        return False

# Резервное копирование реестра
def backup_registry():
    try:
        subprocess.run([
            "reg", "export",
            REGISTRY_PATH,
            REGISTRY_BACKUP_PATH
        ], check=True, shell=True)
        logging.info(f"Резервная копия реестра создана по пути: {REGISTRY_BACKUP_PATH}")
        print(f"Резервная копия реестра создана по пути: {REGISTRY_BACKUP_PATH}")
    except subprocess.CalledProcessError as e:
        logging.error(f"Не удалось создать резервную копию реестра: {e}")
        traceback.print_exc()
        print(f"Не удалось создать резервную копию реестра: {e}")

# Валидация MAC-адреса
def is_valid_mac(mac):
    pattern = re.compile(r"^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$")
    return bool(pattern.match(mac))

# Генерация случайного MAC-адреса
def generate_mac():
    while True:
        mac = ":".join(["{:02x}".format(random.randint(0x00, 0xFF)) for _ in range(6)])
        if is_valid_mac(mac):
            print("Сгенерирован MAC-адрес:", mac)
            logging.info(f"Сгенерирован MAC-адрес: {mac}")
            return mac

# Получение текущего MAC-адреса
def get_current_mac():
    mac = ':'.join(['{:02x}'.format((uuid.getnode() >> elements) & 0xff)
                   for elements in range(0, 48, 8)][::-1])
    logging.info(f"Текущий MAC-адрес: {mac}")
    return mac

# Получение имени компьютера
def get_current_computer_name():
    try:
        computer_name = ctypes.create_unicode_buffer(256)
        size = ctypes.c_uint(ctypes.sizeof(computer_name))
        ctypes.windll.kernel32.GetComputerNameW(computer_name, ctypes.byref(size))
        name = computer_name.value
        logging.info(f"Текущее имя компьютера: {name}")
        return name
    except Exception as e:
        logging.error(f"Не удалось получить имя компьютера: {e}")
        traceback.print_exc()
        return "Не удалось получить имя компьютера."

# Выполнение PowerShell команд и получение результата с установкой кодировки UTF-8
def run_powershell_command(command):
    try:
        # Устанавливаем кодировку в PowerShell на UTF-8
        full_command = f"[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; {command}"
        result = subprocess.check_output(
            ["powershell", "-Command", full_command],
            stderr=subprocess.STDOUT,
            shell=True
        )
        decoded = result.decode('utf-8', errors='replace')
        logging.info(f"Выполнена PowerShell команда: {command}")
        return decoded.strip()
    except subprocess.CalledProcessError as e:
        try:
            error_message = e.output.decode('utf-8', errors='replace')
        except:
            error_message = "Не удалось декодировать ошибку."
        logging.error(f"Ошибка при выполнении PowerShell команды '{command}': {error_message}")
        traceback.print_exc()
        return None

# Получение HWID
def get_current_hwid():
    hwid = run_powershell_command("Get-WmiObject Win32_ComputerSystemProduct | Select-Object -ExpandProperty UUID")
    if hwid:
        logging.info(f"HWID: {hwid}")
        return hwid
    else:
        return "Не удалось получить HWID."

# Получение UUID (тот же самый, что HWID)
def get_current_uuid():
    return get_current_hwid()

# Получение серийного номера BIOS
def get_current_serial_number():
    serial_number = run_powershell_command("Get-WmiObject Win32_BIOS | Select-Object -ExpandProperty SerialNumber")
    if serial_number:
        logging.info(f"Серийный номер BIOS: {serial_number}")
        return serial_number
    else:
        return "Не удалось получить серийный номер."

# Получение модели системы
def get_current_model():
    model = run_powershell_command("Get-WmiObject Win32_ComputerSystem | Select-Object -ExpandProperty Model")
    if model:
        logging.info(f"Модель системы: {model}")
        return model
    else:
        return "Не удалось получить модель."

# Получение видеокарты
def get_current_video_card():
    video_card = run_powershell_command("Get-WmiObject Win32_VideoController | Select-Object -ExpandProperty Name")
    if video_card:
        logging.info(f"Видеокарта: {video_card}")
        return video_card
    else:
        return "Не удалось получить видеокарту."

# Получение списка сетевых адаптеров с помощью PowerShell и JSON
def get_network_adapters():
    adapters = []
    try:
        command = 'Get-NetAdapter | Select-Object Name, MacAddress, Status | ConvertTo-Json'
        output = run_powershell_command(command)
        if output:
            adapters_data = json.loads(output)
            # Убедимся, что это список
            if isinstance(adapters_data, dict):
                adapters_data = [adapters_data]
            for adapter in adapters_data:
                mac = adapter.get('MacAddress', '').strip()
                name = adapter.get('Name', '').strip()
                state = adapter.get('Status', '').strip()
                if mac and mac != '00-00-00-00-00-00':
                    adapters.append({'Name': name, 'MAC': mac, 'State': state})
            logging.info(f"Получено {len(adapters)} сетевых адаптеров.")
        else:
            logging.warning("Не удалось получить сетевые адаптеры.")
    except json.JSONDecodeError as e:
        print(f"Не удалось распарсить JSON-вывод: {e}")
        logging.error(f"Не удалось распарсить JSON-вывод: {e}")
        traceback.print_exc()
    except Exception as e:
        print(f"Не удалось получить список сетевых адаптеров: {e}")
        logging.error(f"Не удалось получить список сетевых адаптеров: {e}")
        traceback.print_exc()
    return adapters

# Перезапуск сетевого адаптера с помощью netsh
def restart_adapter(adapter_name):
    try:
        subprocess.run(["netsh", "interface", "set", "interface", adapter_name, "disable"], check=True, shell=True)
        time.sleep(2)  # Короткая пауза перед повторным включением
        subprocess.run(["netsh", "interface", "set", "interface", adapter_name, "enable"], check=True, shell=True)
        print(f"Адаптер '{adapter_name}' перезапущен.")
        logging.info(f"Адаптер '{adapter_name}' перезапущен.")
    except subprocess.CalledProcessError as e:
        print(f"Не удалось перезапустить адаптер '{adapter_name}': {e}")
        logging.error(f"Не удалось перезапустить адаптер '{adapter_name}': {e}")
        traceback.print_exc()

# Изменение MAC-адреса
def change_mac_address(new_mac):
    backup_registry()
    adapters = get_network_adapters()
    if not adapters:
        print("Не найдено сетевых адаптеров для изменения MAC-адреса.")
        logging.warning("Не найдено сетевых адаптеров для изменения MAC-адреса.")
        return

    print("Доступные сетевые адаптеры:")
    for idx, adapter in enumerate(adapters, 1):
        print(f"{idx}. {adapter['Name']} - {adapter['MAC']} - Состояние: {adapter['State']}")

    choice = input("Выберите адаптер для изменения MAC-адреса (номер): ")
    try:
        choice = int(choice)
        if 1 <= choice <= len(adapters):
            adapter = adapters[choice - 1]
            adapter_mac = adapter['MAC'].replace(":", "").replace("-", "").lower()
            adapter_name = adapter['Name']
            logging.info(f"Выбран адаптер для изменения MAC-адреса: {adapter_name} - {adapter['MAC']}")

            try:
                # Изменение MAC-адреса через реестр
                with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, REGISTRY_PATH, 0, winreg.KEY_ALL_ACCESS) as key:
                    found = False
                    for i in range(100):
                        try:
                            subkey_name = winreg.EnumKey(key, i)
                            with winreg.OpenKey(key, subkey_name, 0, winreg.KEY_ALL_ACCESS) as subkey:
                                try:
                                    driver_desc, _ = winreg.QueryValueEx(subkey, "DriverDesc")
                                    # Сравниваем по имени адаптера (без регистра)
                                    if driver_desc.lower() == adapter_name.lower():
                                        # Записываем новый MAC-адрес без двоеточий
                                        winreg.SetValueEx(subkey, "NetworkAddress", 0, winreg.REG_SZ, new_mac.replace(":", ""))
                                        print(f"MAC-адрес адаптера '{adapter_name}' изменен на {new_mac}")
                                        logging.info(f"MAC-адрес адаптера '{adapter_name}' изменен на {new_mac}")
                                        # Перезапускаем адаптер
                                        restart_adapter(adapter_name)
                                        found = True
                                        break
                                except FileNotFoundError:
                                    # Если ключ "DriverDesc" не существует, пропускаем
                                    pass
                                except Exception as e:
                                    print(f"Ошибка при изменении MAC-адреса: {e}")
                                    logging.error(f"Ошибка при изменении MAC-адреса: {e}")
                        except OSError:
                            # Достигнут конец ключей
                            break
                    if not found:
                        print("Не удалось найти соответствующий ключ реестра для адаптера.")
                        logging.warning("Не удалось найти соответствующий ключ реестра для адаптера.")
            except PermissionError:
                print("Необходимы права администратора для изменения реестра.")
                logging.error("Необходимы права администратора для изменения реестра.")
        else:
            print("Неверный выбор.")
            logging.warning(f"Неверный выбор адаптера для изменения MAC-адреса: {choice}")
    except ValueError:
        print("Пожалуйста, введите корректный номер.")
        logging.warning("Пользователь ввел некорректный номер адаптера.")

# Валидация имени компьютера
def is_valid_computer_name(name):
    pattern = re.compile(r"^[A-Za-z0-9-]{1,15}$")
    return bool(pattern.match(name))

# Изменение имени компьютера
def change_computer_name(new_name):
    if not is_valid_computer_name(new_name):
        print("Некорректное имя компьютера. Введите имя от 1 до 15 символов, используя только буквы, цифры и дефисы.")
        logging.warning(f"Пользователь попытался установить некорректное имя компьютера: {new_name}")
        return
    try:
        subprocess.run(["wmic", "computersystem", "where", "name='%computername%'", "rename", new_name], check=True, shell=True)
        print(f"Имя компьютера изменено на: {new_name}")
        logging.info(f"Имя компьютера изменено на: {new_name}")
        restart = input("Для применения изменений требуется перезагрузка. Перезагрузить сейчас? (y/n): ").lower()
        if restart == 'y':
            subprocess.run(["shutdown", "/r", "/t", "0"], check=True)
    except subprocess.CalledProcessError as e:
        print(f"Не удалось изменить имя компьютера: {e}")
        logging.error(f"Не удалось изменить имя компьютера: {e}")
        traceback.print_exc()

# Изменение IP-адреса
def change_ip_address():
    adapters = get_network_adapters()
    if not adapters:
        print("Не найдено сетевых адаптеров для изменения IP-адреса.")
        logging.warning("Не найдено сетевых адаптеров для изменения IP-адреса.")
        return

    print("Доступные сетевые адаптеры:")
    for idx, adapter in enumerate(adapters, 1):
        print(f"{idx}. {adapter['Name']} - MAC: {adapter['MAC']} - Состояние: {adapter['State']}")

    choice = input("Выберите адаптер для изменения IP-адреса (номер): ")
    try:
        choice = int(choice)
        if 1 <= choice <= len(adapters):
            adapter = adapters[choice - 1]
            adapter_name = adapter['Name']
            print(f"Вы выбрали адаптер: {adapter_name}")

            # Получение текущего IP-адреса
            current_ip = run_powershell_command(f"(Get-NetIPAddress -InterfaceAlias '{adapter_name}' -AddressFamily IPv4).IPAddress")
            print(f"Текущий IP-адрес: {current_ip}")

            # Ввод нового IP-адреса
            new_ip = input("Введите новый IP-адрес (например, 192.168.1.100): ")
            subnet_mask = input("Введите маску подсети (например, 255.255.255.0): ")
            gateway = input("Введите шлюз по умолчанию (например, 192.168.1.1): ")

            # Валидация IP-адресов
            ip_pattern = re.compile(r"^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$")
            if not all([ip_pattern.match(ip) for ip in [new_ip, subnet_mask, gateway]]):
                print("Один или несколько введенных IP-адресов некорректны.")
                logging.warning("Пользователь ввел некорректные IP-адреса.")
                return

            # Установка статического IP-адреса
            try:
                subprocess.run([
                    "netsh", "interface", "ipv4", "set", "address",
                    f"name={adapter_name}",
                    "static",
                    new_ip,
                    subnet_mask,
                    gateway
                ], check=True, shell=True)
                print(f"IP-адрес адаптера '{adapter_name}' изменен на {new_ip}")
                logging.info(f"IP-адрес адаптера '{adapter_name}' изменен на {new_ip}")
            except subprocess.CalledProcessError as e:
                print(f"Не удалось изменить IP-адрес: {e}")
                logging.error(f"Не удалось изменить IP-адрес: {e}")
                traceback.print_exc()
        else:
            print("Неверный выбор.")
            logging.warning(f"Неверный выбор адаптера для изменения IP-адреса: {choice}")
    except ValueError:
        print("Пожалуйста, введите корректный номер.")
        logging.warning("Пользователь ввел некорректный номер адаптера для изменения IP-адреса.")

# Изменение HWID (Теоретически возможно, но опасно и не рекомендуется)
def change_hwid(new_hwid):
    # HWID обычно основан на аппаратных компонентах, поэтому его изменение невозможно через программное обеспечение
    # Можно попытаться изменить некоторые WMI объекты, но это может привести к нестабильности системы
    print("Изменение HWID не поддерживается из-за ограничений операционной системы и аппаратного обеспечения.")
    logging.warning("Пользователь пытался изменить HWID, что не поддерживается.")

# Изменение серийного номера материнской платы (Теоретически возможно через BIOS/UEFI, но опасно и не рекомендуется)
def change_motherboard_serial(new_serial):
    # Изменение серийного номера материнской платы обычно невозможно через стандартные инструменты Windows
    # Можно попытаться изменить WMI объекты, но это не рекомендуется
    print("Изменение серийного номера материнской платы не поддерживается из-за ограничений операционной системы и аппаратного обеспечения.")
    logging.warning("Пользователь пытался изменить серийный номер материнской платы, что не поддерживается.")

# Изменение UUID (Теоретически возможно, но опасно и не рекомендуется)
def change_uuid(new_uuid):
    # UUID обычно основан на аппаратных компонентах, поэтому его изменение невозможно через программное обеспечение
    # Можно попытаться изменить WMI объекты, но это может привести к нестабильности системы
    print("Изменение UUID не поддерживается из-за ограничений операционной системы и аппаратного обеспечения.")
    logging.warning("Пользователь пытался изменить UUID, что не поддерживается.")

# Отображение текущих настроек
def show_current_settings():
    current_mac = get_current_mac()
    current_name = get_current_computer_name()
    current_hwid = get_current_hwid()
    current_uuid = get_current_uuid()
    current_serial_number = get_current_serial_number()
    current_model = get_current_model()
    current_video_card = get_current_video_card()
    adapters = get_network_adapters()

    print("\n===== Текущие Настройки =====")
    print(f"MAC-адрес: {current_mac}")
    print(f"Имя компьютера: {current_name}")
    print(f"HWID: {current_hwid}")
    print(f"UUID: {current_uuid}")
    print(f"Серийный номер BIOS: {current_serial_number}")
    print(f"Модель: {current_model}")
    print(f"Видеокарта: {current_video_card}")
    print("\n--- Сетевые Адаптеры ---")
    if adapters:
        for adapter in adapters:
            state = adapter['State'] if adapter['State'] else "Неизвестно"
            print(f"{adapter['Name']} - MAC: {adapter['MAC']} - Состояние: {state}")
    else:
        print("Сетевые адаптеры не найдены или возникла ошибка при их получении.")
    print("=================================\n")
    logging.info("Отображены текущие настройки системы.")

# Список возможных имен для компьютера
names = [
    "DeltaPC", "AlphaComp", "NeptuneSys", "ZenithTech",
    "OrionNode", "QuantumCore", "SigmaTech", "VegaCompute",
    "LunarBox", "SolarWave", "CosmoKey", "NovaPort",
    "ElectronHub", "PhotonGear", "PulsarData", "QuarkSystem",
    "ZetaWorks", "AsteroidNet", "GalaxyCode", "MeteorStream",
    "StarlightOS", "CometCloud", "BlackholeBase", "NebulaNet",
    "SupernovaStation", "EclipseEdge", "StellarSpace", "VoidVault",
    "GravityGrid", "HorizonHeart", "PlanetPath", "UniverseUnit"
]

# Главное меню
def main_menu():
    menu = """
    ===============================
         Меню Настроек
    ===============================
    1. Сгенерировать случайный MAC-адрес и изменить
    2. Изменить имя компьютера
    3. Изменить IP-адрес
    4. Изменить все доступные настройки
    5. Показать текущие настройки
    6. Выход
    """
    while True:
        try:
            print(menu)
            choice = input("Выберите опцию (1-6): ")
            if choice == '1':
                new_mac = generate_mac()
                change_mac_address(new_mac)
            elif choice == '2':
                new_name = random.choice(names) + "-" + str(random.randint(100, 999))
                change_computer_name(new_name)
            elif choice == '3':
                change_ip_address()
            elif choice == '4':
                new_mac = generate_mac()
                change_mac_address(new_mac)
                new_name = random.choice(names) + "-" + str(random.randint(100, 999))
                change_computer_name(new_name)
                change_ip_address()
                print("Доступные настройки изменены.")
                logging.info("Доступные настройки изменены.")
            elif choice == '5':
                show_current_settings()
            elif choice == '6':
                print("Выход из программы.")
                logging.info("Пользователь вышел из программы.")
                break
            else:
                print("Неверный выбор. Пожалуйста, выберите опцию от 1 до 6.")
                logging.warning(f"Пользователь выбрал неверную опцию: {choice}")
        except Exception as e:
            print(f"Произошла ошибка: {e}")
            logging.error(f"Произошла ошибка: {e}")
            traceback.print_exc()

if __name__ == "__main__":
    if not is_admin():
        print("Эта программа требует административных прав. Пожалуйста, запустите её от имени администратора.")
        logging.warning("Попытка запуска программы без административных прав.")
        sys.exit(1)
    main_menu()
Мануал:

Код:
Инструкция по установке и запуску скрипта
1.    Установка Python
Скачивание Python:
o    Перейдите на официальный сайт Python: https://www.python.org/downloads/.
o    Скачайте последнюю стабильную версию Python (рекомендуется версия 3.8 или выше).
Установка Python:
o    Запустите загруженный установщик.
o    ВАЖНО: На первом экране установки поставьте галочку "Add Python to PATH" (Добавить Python в PATH).
o    Нажмите "Install Now" и дождитесь завершения установки.
Проверка установки:
o    Откройте командную строку (Command Prompt).
o    Введите команду:
o    python --version
o    Вы должны увидеть установленную версию Python, например:
o    Python 3.10.4
2.    Установка необходимых Python-пакетов
Скрипт использует только стандартные библиотеки Python, поэтому дополнительные пакеты устанавливать не нужно. Однако убедитесь, что ваша версия Python актуальна для совместимости.
3.    Загрузка и настройка скрипта
Создание рабочей папки:
o    Создайте новую папку на вашем компьютере, например C:\SystemSettingsChanger.
Сохранение скрипта:
o    Откройте папку SystemSettingsChanger и поместите туда файл settings_changer.py.
4.    Запуск скрипта с административными правами
Большинство операций, выполняемых скриптом (изменение MAC-адреса, IP-адреса, имени компьютера и т. д.), требуют административных прав.
Открытие командной строки с правами администратора:
o    Нажмите Win + X и выберите "Командная строка (администратор)" или "Windows PowerShell (администратор)".
o    Подтвердите запрос контроля учетных записей (UAC), нажав "Да".
Переход в рабочую папку:
o    В окне командной строки введите команду:
o    cd C:\SystemSettingsChanger
o    Нажмите Enter.
Запуск скрипта:
o    Введите команду:
o    python settings_changer.py
o    Нажмите Enter.
5.    Использование скрипта
Главное меню:
После запуска скрипта появится главное меню с доступными опциями. Введите номер желаемой опции и нажмите Enter.
Доступные опции:
o    Изменение MAC-адреса:
    Выберите опцию для генерации и изменения MAC-адреса.
    Выберите сетевой адаптер из списка.
    Новый MAC-адрес будет сгенерирован автоматически.
o    Изменение имени компьютера:
    Выберите опцию для изменения имени компьютера.
    Новое имя будет выбрано случайно из заранее определённого списка.
o    Изменение IP-адреса:
    Выберите опцию для изменения IP-адреса.
    Выберите сетевой адаптер из списка.
    Введите новый IP-адрес, маску подсети и шлюз.
o    Изменение всех доступных настроек:
    Выберите опцию для одновременного изменения MAC-адреса, имени компьютера и IP-адреса.
o    Показ текущих настроек:
    Выберите опцию для отображения текущих системных настроек.
o    Выход:
    Выберите опцию для завершения работы скрипта.
6.    Важные замечания и рекомендации
o    Резервное копирование системы: Перед внесением изменений в системные настройки рекомендуется создать точку восстановления системы или полную резервную копию. Это поможет восстановить систему в случае непредвиденных проблем.
o    Административные права: Убедитесь, что вы запускаете скрипт с правами администратора, иначе некоторые операции могут не выполниться.
o    Совместимость: Скрипт предназначен для операционной системы Windows. Убедитесь, что ваши сетевые адаптеры поддерживают изменение MAC-адреса через реестр.
o    Изменение HWID, серийного номера материнской платы и UUID: Эти операции не поддерживаются стандартными средствами Windows и могут быть опасными. Попытки их изменения могут привести к нестабильности системы или повреждению оборудования.
o    Проверка изменений: После внесения изменений рекомендуется проверить их корректность. Для MAC-адреса и IP-адреса можно использовать команду ipconfig /all в командной строке.
o    Логи: Скрипт создаёт файл логов system_settings.log, где хранится информация о выполненных операциях и возможных ошибках. Периодически проверяйте этот файл для мониторинга действий скрипта.
7.    Дополнительные ресурсы
o    Документация Python: https://docs.python.org/3/
o    Работа с реестром Windows в Python: https://docs.python.org/3/library/winreg.html
o    Команды netsh для управления сетью: https://docs.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-contexts
Примечание: Всегда будьте осторожны при внесении изменений в системные настройки. Некорректные действия могут привести к серьёзным проблемам с операционной системой или сетевыми подключениями.
Это моя первая публикация, прошу сильно не бейте.
С какой целью нужна эта функция (Относится как к функции в коде, так и самого скрипта)? Заполнить принт консоли?

Python:
# Изменение UUID (Теоретически возможно, но опасно и не рекомендуется)
def change_uuid(new_uuid):
    # UUID обычно основан на аппаратных компонентах, поэтому его изменение невозможно через программное обеспечение
    # Можно попытаться изменить WMI объекты, но это может привести к нестабильности системы
    print("Изменение UUID не поддерживается из-за ограничений операционной системы и аппаратного обеспечения.")
    logging.warning("Пользователь пытался изменить UUID, что не поддерживается.")
Ладно если бы там выполнялось под другие ОС, раз оно в Windows не поддерживается, НО НАХУЯ ОНА ВЕДЬ ПРОСТО ПУСТАЯ
 
Начинающий
Статус
Оффлайн
Регистрация
8 Апр 2016
Сообщения
20
Реакции[?]
1
Поинты[?]
1K
Есть ещё под Linux


Код:
import uuid
import subprocess
import random
import time
import os
import re


def get_current_mac():
    ip_link_output = subprocess.check_output(['ip', 'link']).decode('utf-8')
    mac_addresses = re.findall(r'link/ether (\w\w:\w\w:\w\w:\w\w:\w\w:\w\w)', ip_link_output)
    return mac_addresses[0] if mac_addresses else "Нет доступных MAC-адресов"

def get_current_computer_name():
    return subprocess.check_output(['hostname']).decode('utf-8').strip()

def get_current_hwid():
    try:
        with open('/etc/machine-id', 'r') as f:
            return f.read().strip()
    except FileNotFoundError:
        return "Файл /etc/machine-id не найден"

def get_current_uuid():
    try:
        with open('/sys/class/dmi/id/product_uuid', 'r') as f:
            return f.read().strip()
    except FileNotFoundError:
        return "Файл /sys/class/dmi/id/product_uuid не найден"

def get_current_serial_number():
    try:
        with open('/sys/class/dmi/id/board_serial', 'r') as f:
            return f.read().strip()
    except FileNotFoundError:
        return "Файл /sys/class/dmi/id/board_serial не найден"

def get_current_model():
    try:
        with open('/sys/class/dmi/id/product_name', 'r') as f:
            return f.read().strip()
    except FileNotFoundError:
        return "Файл /sys/class/dmi/id/product_name не найден"

def get_current_video_card():
    lspci_output = subprocess.check_output(['lspci']).decode('utf-8')
    video_cards = re.findall(r'VGA compatible controller: (.*)', lspci_output)
    return video_cards[0] if video_cards else "Видеокарты не найдены"

names = [
    "DeltaPC", "AlphaComp", "NeptuneSys", "ZenithTech",
    "OrionNode", "QuantumCore", "SigmaTech", "VegaCompute",
    "LunarBox", "SolarWave", "CosmoKey", "NovaPort",
    "ElectronHub", "PhotonGear", "PulsarData", "QuarkSystem",
    "ZetaWorks", "AsteroidNet", "GalaxyCode", "MeteorStream",
    "StarlightOS", "CometCloud", "BlackholeBase", "NebulaNet",
    "SupernovaStation", "EclipseEdge", "StellarSpace", "VoidVault",
    "GravityGrid", "HorizonHeart", "PlanetPath", "UniverseUnit"
]

models = [
    "NX-01", "AX-09", "BX-02", "GX-04",
    "MX-10", "TX-20", "ZX-30", "KX-40",
    "CX-50", "VX-60", "BX-70", "NX-80",
    "SX-90", "DX-100", "FX-110", "GX-120",
    "HX-130", "JX-140", "KX-150", "LX-160",
    "MX-170", "NX-180", "OX-190", "PX-200",
    "QX-210", "RX-220", "SX-230", "TX-240",
    "UX-250", "VX-260", "WX-270", "XX-280",
    "YX-290", "ZX-300", "AX-310", "BX-320"
]


def generate_mac():
    mac = ":".join(["{:02x}".format(random.randint(0, 255)) for _ in range(6)])
    print("Сгенерированный MAC-адрес:", mac)
    return mac

def change_computer_name():
    new_name = random.choice(names) + "-" + str(random.randint(100, 999))
    subprocess.run(["sudo", "net", "bios", "set", "computername", new_name], check=True)
    print("Имя компьютера изменено на:", new_name)

def change_hwid():
    hwid = str(uuid.uuid4())
    with open("/sys/devices/virtual/dmi/id/product_uuid", "w") as f:
        f.write(hwid)
    print("HWID изменён на:", hwid)

def change_uuid():
    uuid_val = str(uuid.uuid4())
    with open("/etc/machine-id", "w") as f:
        f.write(uuid_val)
    print("UUID изменён на:", uuid_val)

def change_serial_number():
    serial_number = str(uuid.uuid4())
    with open("/sys/devices/virtual/dmi/id/board_serial", "w") as f:
        f.write(serial_number)
    print("Серийный номер изменён на:", serial_number)

def change_model():
    new_model = random.choice(models) + "-" + str(random.randint(100, 999))
    subprocess.run(["sudo", "sh", "-c", f"echo {new_model} > /etc/machine-id"], check=True)
    print("Модель изменена на:", new_model)

def change_video_card():
    subprocess.run(["sudo", "modprobe", "nouveau"], check=True)
    print("Настройки видеокарты изменены.")

def change_all_settings():
    generate_mac()
    change_computer_name()
    change_hwid()
    change_uuid()
    change_serial_number()
    change_model()
    print("Все настройки изменены.")

menu = """
 1. Generate random MAC address
 2. Change computer name
 3. Change HWID
 4. Change UUID
 5. Change serial number
 6. Change model
 7. Change video card
 8. Change all settings
 9. Exit
"""

while True:
    try:
        current_mac = get_current_mac()
        current_name = get_current_computer_name()
        current_hwid = get_current_hwid()
        current_uuid = get_current_uuid()
        current_serial_number = get_current_serial_number()
        current_model = get_current_model()
        current_video_card = get_current_video_card()
        
        print(f"Текущий MAC-адрес: {current_mac}")
        print(f"Текущее имя компьютера: {current_name}")
        print(f"Текущий HWID: {current_hwid}")
        print(f"Текущий UUID: {current_uuid}")
        print(f"Текущий серийный номер: {current_serial_number}")
        print(f"Текущая модель: {current_model}")
        print(f"Текущая видеокарта: {current_video_card}")
        print(" ")
        print(menu)
        choice = input("Выберите опцию (1-9): ")
        if choice == '1':
            generate_mac()
        elif choice == '2':
            change_computer_name()
        elif choice == '3':
            change_hwid()
        elif choice == '4':
            change_uuid()
        elif choice == '5':
            change_serial_number()
        elif choice == '6':
            change_model()
        elif choice == '7':
            change_video_card()
        elif choice == '8':
            change_all_settings()
        elif choice == '9':
            print("Выход из программы.")
            break
        else:
            print("Неверный выбор. Пожалуйста, выберите опцию от 1 до 9.")
    except Exception as e:
        print(f"Произошла ошибка: {e}")
 
someone
Пользователь
Статус
Оффлайн
Регистрация
15 Июл 2020
Сообщения
490
Реакции[?]
111
Поинты[?]
11K
безполезная хуйня, где большая часть функций не работает (зачем они тогда вообще прописана?)
 
Сверху Снизу