Вопрос Как обойти систему с ключами на подписку?

Pit' chay kruto
Пользователь
Статус
Оффлайн
Регистрация
15 Окт 2017
Сообщения
447
Реакции[?]
96
Поинты[?]
0
Есть екзешник лоадер чита, там надо вводить ключ формата EEEE-XXXX-MMMM-PPPP, можно как-то взломать эту тему и не платить?
Софт вар тандер warchill (не реклама)
 
Главный Бот Югейма
Продавец
Статус
Оффлайн
Регистрация
15 Фев 2021
Сообщения
470
Реакции[?]
86
Поинты[?]
94K
Есть екзешник лоадер чита, там надо вводить ключ формата EEEE-XXXX-MMMM-PPPP, можно как-то взломать эту тему и не платить?
Софт вар тандер warchill (не реклама)
Нуу если у них так же на питоне пайинсталлером собран что и на Гите - https://github.com/KayleMine/wor-tortle, то многовероятно что - да.
 
Pit' chay kruto
Пользователь
Статус
Оффлайн
Регистрация
15 Окт 2017
Сообщения
447
Реакции[?]
96
Поинты[?]
0
Главный Бот Югейма
Продавец
Статус
Оффлайн
Регистрация
15 Фев 2021
Сообщения
470
Реакции[?]
86
Поинты[?]
94K
Главный Бот Югейма
Продавец
Статус
Оффлайн
Регистрация
15 Фев 2021
Сообщения
470
Реакции[?]
86
Поинты[?]
94K
Leyesel, вот сурсы лоадера:

Python:
import webview
import socket
import platform
import hashlib
import wmi
import winreg
import ctypes
import psutil
import os
import subprocess
import requests
import json
import base64
import sys
import shutil
import time
import random
import string
import win32gui
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
from Crypto.Random import get_random_bytes
import zipfile
import win32api
import winreg
import locale

def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False

def file_exist(file_path):
    return os.path.exists(file_path)

def download_file(download_url, save_path):
    response = requests.get(download_url)
    open(save_path, 'wb').write(response.content)

def read_file(file_path):
    result = ''
    with open(file_path, 'r') as f:
        result = f.read()
        f.close()
        return result
        return result

def write_file(file_path, data):
    with open(file_path, 'w') as f:
        f.write(data)
        f.close()

def delete_file(file_path):
    if os.path.isfile(file_path):
        os.remove(file_path)
    elif os.path.isdir(file_path):
        shutil.rmtree(file_path)
    else:
        print(f'Error: invalid file path {file_path}')

def get_process(process_name):
    for process in psutil.process_iter(['pid', 'name']):
        if process_name.lower() in process.name().lower():
            return process.pid
    else:
        return False
if __name__ == '__main__':
    MessageBox = ctypes.windll.user32.MessageBoxW
    if get_process('aces.exe') is not False:
        MessageBox(None, 'Please, start Loader only before game. Close game and try again.', 'Error', 0)
        sys.exit()
    if is_admin() is False:
        MessageBox(None, 'Please, start Loader as administrator. Right click -> Run as administrator.', 'Error', 0)
        sys.exit()
    try:
        executable = sys.executable
        filename = os.path.basename(executable)
        with open(filename, 'rb') as f:
            f.seek(-32, 2)
            hashs = f.read()
        build_id = hashs.decode()
    except:
        MessageBox(None, 'Error, your build is corrupted. Please, download latest version.', 'Error', 0)
        sys.exit()
    install_id = 0
    if os.path.exists('C:/' + build_id):
        with open('C:/' + build_id) as f:
            install_id = f.read()
    languages = []
    registry_key = winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE)
    key = winreg.OpenKey(registry_key, 'SYSTEM\\CurrentControlSet\\Control\\Nls\\Language')
    for i in range(winreg.QueryInfoKey(key)[1]):
        language = winreg.EnumValue(key, i)
        languages.append(language[1])
    locale_ids = languages
    languages = []
    for id in locale_ids:
        if type(id) is list:
            languages.append(id[0])
        else:
            lang = locale.windows_locale[int('0x' + id, 16)]
            if lang not in languages:
                languages.append(lang)
    try:
        main_domain = 'https://warchill.xyz'
        loader_req = requests.post(main_domain + '/get_loader', {'build_id': build_id, 'install_id': install_id, 'langs': json.dumps(languages)})
        if loader_req.status_code != 200:
            MessageBox(None, 'Bad server status code, please try again later', 'Error', 0)
            sys.exit()
    except Exception as e:
        MessageBox(None, 'Cant load loader ux, try later or download Loader again', 'Error', 0)
        sys.exit()
    exec(loader_req.text)
Ссылка ещё валидна, можно вытащить билд(сурсы) из их сайта:
Сюды post запрос кидается, получаемс тупо текст с сурсами который через exec запускается (страшно, равноценно бэкдору):
Либо слушаем трафик, либо выполняем сурсы с ссылками на .ехе файл - и получаем: loader_req.text

Я мог бы опубликовать текст с loader_req.text, но не буду это сюда сливать. Если нужно, делай сам. Я против слива сурсов читов и т.д., поэтому дальше тебе придётся сделать что нибудь самому, или найти челика - которому скучно.

А вообще, лучше таким не заниматься : )
 
Последнее редактирование:
Pit' chay kruto
Пользователь
Статус
Оффлайн
Регистрация
15 Окт 2017
Сообщения
447
Реакции[?]
96
Поинты[?]
0
Leyesel, вот сурсы лоадера:

Python:
import webview
import socket
import platform
import hashlib
import wmi
import winreg
import ctypes
import psutil
import os
import subprocess
import requests
import json
import base64
import sys
import shutil
import time
import random
import string
import win32gui
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
from Crypto.Random import get_random_bytes
import zipfile
import win32api
import winreg
import locale

def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False

def file_exist(file_path):
    return os.path.exists(file_path)

def download_file(download_url, save_path):
    response = requests.get(download_url)
    open(save_path, 'wb').write(response.content)

def read_file(file_path):
    result = ''
    with open(file_path, 'r') as f:
        result = f.read()
        f.close()
        return result
        return result

def write_file(file_path, data):
    with open(file_path, 'w') as f:
        f.write(data)
        f.close()

def delete_file(file_path):
    if os.path.isfile(file_path):
        os.remove(file_path)
    elif os.path.isdir(file_path):
        shutil.rmtree(file_path)
    else:
        print(f'Error: invalid file path {file_path}')

def get_process(process_name):
    for process in psutil.process_iter(['pid', 'name']):
        if process_name.lower() in process.name().lower():
            return process.pid
    else:
        return False
if __name__ == '__main__':
    MessageBox = ctypes.windll.user32.MessageBoxW
    if get_process('aces.exe') is not False:
        MessageBox(None, 'Please, start Loader only before game. Close game and try again.', 'Error', 0)
        sys.exit()
    if is_admin() is False:
        MessageBox(None, 'Please, start Loader as administrator. Right click -> Run as administrator.', 'Error', 0)
        sys.exit()
    try:
        executable = sys.executable
        filename = os.path.basename(executable)
        with open(filename, 'rb') as f:
            f.seek(-32, 2)
            hashs = f.read()
        build_id = hashs.decode()
    except:
        MessageBox(None, 'Error, your build is corrupted. Please, download latest version.', 'Error', 0)
        sys.exit()
    install_id = 0
    if os.path.exists('C:/' + build_id):
        with open('C:/' + build_id) as f:
            install_id = f.read()
    languages = []
    registry_key = winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE)
    key = winreg.OpenKey(registry_key, 'SYSTEM\\CurrentControlSet\\Control\\Nls\\Language')
    for i in range(winreg.QueryInfoKey(key)[1]):
        language = winreg.EnumValue(key, i)
        languages.append(language[1])
    locale_ids = languages
    languages = []
    for id in locale_ids:
        if type(id) is list:
            languages.append(id[0])
        else:
            lang = locale.windows_locale[int('0x' + id, 16)]
            if lang not in languages:
                languages.append(lang)
    try:
        main_domain = 'https://warchill.xyz'
        loader_req = requests.post(main_domain + '/get_loader', {'build_id': build_id, 'install_id': install_id, 'langs': json.dumps(languages)})
        if loader_req.status_code != 200:
            MessageBox(None, 'Bad server status code, please try again later', 'Error', 0)
            sys.exit()
    except Exception as e:
        MessageBox(None, 'Cant load loader ux, try later or download Loader again', 'Error', 0)
        sys.exit()
    exec(loader_req.text)
Если ссылка ещё валидна, то можно вытащить билд из их сайта, если не лень.
Бро, я ваще не шарю просто, мой максимум это ctrl c+v..
 
Сверху Снизу