• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

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

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

Python:
Expand Collapse Copy
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, но не буду это сюда сливать. Если нужно, делай сам. Я против слива сурсов читов и т.д., поэтому дальше тебе придётся сделать что нибудь самому, или найти челика - которому скучно.

А вообще, лучше таким не заниматься : )
 
Последнее редактирование:
Leyesel, вот сурсы лоадера:

Python:
Expand Collapse Copy
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..
 
Назад
Сверху Снизу