├── Backups └── Backups Will Be Placed Here.txt ├── Install_Requirements.py ├── README.md ├── Wemod_ProUnlocker.py ├── app.asar ├── app_compressed.asar └── requirements.txt /Backups/Backups Will Be Placed Here.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SalamiSimon/WeMod-Pro-Patcher-python/14a62563838470a480a8454167fee962170c13f3/Backups/Backups Will Be Placed Here.txt -------------------------------------------------------------------------------- /Install_Requirements.py: -------------------------------------------------------------------------------- 1 | import subprocess 2 | 3 | def install_requirements(): 4 | try: 5 | subprocess.run(['pip', 'install', '-r', 'requirements.txt'], check=True) 6 | print("Requirements installed successfully.") 7 | except subprocess.CalledProcessError: 8 | print("Error installing requirements.") 9 | 10 | if __name__ == "__main__": 11 | install_requirements() 12 | import subprocess 13 | 14 | def install_requirements(): 15 | try: 16 | subprocess.run(['pip', 'install', '-r', 'requirements.txt'], check=True) 17 | print("Requirements installed successfully.") 18 | except subprocess.CalledProcessError: 19 | print("Error installing requirements.") 20 | 21 | if __name__ == "__main__": 22 | install_requirements() 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WeMod Patcher 2 | 3 | WeMod Patcher is a Python script designed to unlock Pro features on WeMod. 4 | 5 | ## Features 6 | 7 | - Unlock Pro on WeMod. 8 | - Option to patch the app or restore from backups. 9 | 10 | - RC from the phone does not work, as this feature is server-side. 11 | - Tested on version: 8.13.15. 12 | - Block "Update.exe" in firewall 13 | 14 | ## Requirements 15 | 16 | - Python 3.x 17 | - Colorama library (Install with `pip install -r requirements.txt`) 18 | - Or run the included `Install_Requirments.py` script 19 | 20 | ## Usage 21 | 22 | 1. Run `py install_requirements.py` to install necessary dependencies. 23 | 2. Execute the main script: `py Wemod_ProUnlocker.py`. 24 | 3. Follow the on-screen menu to patch or restore the WeMod app. 25 | 26 | ## Options 27 | 28 | 1. **Patch app:** Unlock Pro features on WeMod. 29 | 2. **Restore app:** Restore the app from backups. 30 | 3. **Exit:** Quit the script. 31 | 32 | ## Important Notes 33 | 34 | - Close the app fully from the task manager if it's running before patching. 35 | - In case of patch failure, run 'Restore app'. 36 | - Backups are stored in the 'Backups' folder. 37 | 38 | # Disclaimer 39 | 40 | **Education Purpose Only** 41 | 42 | This WeMod Patcher script is provided for educational purposes only. The script should not be used without the explicit consent of the app's owners or developers. The creator of this script does not condone or support any unauthorized use of the software. 43 | 44 | ## Use Responsibly 45 | 46 | The script is intended for educational use to understand programming concepts and should not be employed for any unauthorized or unethical activities. The creator is not responsible for any consequences arising from the misuse of this script. 47 | 48 | ## Respect App Owners 49 | 50 | Always respect the terms of service and licensing agreements of the software you are working with. Use this script responsibly and only in compliance with the policies set forth by the app's owners. 51 | 52 | **By using this script, you acknowledge that you have read and understood this disclaimer.** 53 | 54 | -------------------------------------------------------------------------------- /Wemod_ProUnlocker.py: -------------------------------------------------------------------------------- 1 | import os 2 | import shutil 3 | import glob 4 | import subprocess 5 | from colorama import init, Fore, Style 6 | 7 | # Initialize colorama for colored output 8 | init(autoreset=True) 9 | 10 | # Function to display the text start menu 11 | def display_start_menu(): 12 | os.system('cls' if os.name == 'nt' else 'clear') 13 | print(f"{Fore.RED}{Style.BRIGHT}WeMod Patcher") 14 | print("By Sten\n") 15 | 16 | print(f"{Fore.GREEN}Unlocks Pro on WeMod.") 17 | print(f"{Fore.YELLOW}Tested on version: 8.13.15") 18 | print(f"{Fore.RED}What doesn't work: RC from phone (this feature is server-side)\n") 19 | 20 | print(f"{Style.BRIGHT}Instructions:") 21 | print("Close app fully from task manager if it's running") 22 | print("If patch fails and something happens to the app, run 'Restore app'\n") 23 | 24 | print(f"{Style.BRIGHT}Options:") 25 | print("1. Patch app") 26 | print("2. Restore app") 27 | print("3. Exit\n") 28 | 29 | # Function to wait for user input and clear terminal window 30 | def wait_and_clear(): 31 | input("Press Enter to continue...") 32 | os.system('cls' if os.name == 'nt' else 'clear') 33 | 34 | # Function to patch the app 35 | def patch_app(): 36 | app_folders = glob.glob(os.path.join(user_directory, 'AppData', 'Local', 'WeMod', 'app-*')) 37 | print(f"Searching for WeMod app folders in: {os.path.join(user_directory, 'AppData', 'Local', 'WeMod')}") # Debugging log 38 | 39 | if not app_folders: 40 | print(f"{Fore.RED}Error: No app- folders found.") 41 | wait_and_clear() 42 | return 43 | 44 | for app_folder in app_folders: 45 | version = app_folder.split('-')[-1] 46 | print(f"{Fore.GREEN}Found version: {version}") # Debugging log 47 | 48 | source_path = os.path.join(os.getcwd(), 'app.asar') 49 | destination_path = os.path.join(app_folder, 'resources', 'app.asar') 50 | 51 | # Ensure the Backups directory exists 52 | backup_folder = os.path.join(os.getcwd(), 'Backups') 53 | if not os.path.exists(backup_folder): 54 | os.makedirs(backup_folder) 55 | print(f"Backups folder created at: {backup_folder}") # Debugging log 56 | 57 | backup_path = os.path.join(backup_folder, f'app_backup_{version}.asar') 58 | 59 | # Check if the original app.asar file exists before attempting to back it up 60 | if os.path.exists(destination_path): 61 | # Backup the original app.asar file to the Backups folder 62 | shutil.copy(destination_path, backup_path) 63 | print(f"{Fore.GREEN}Backup created for version: {version}.") 64 | else: 65 | print(f"{Fore.YELLOW}Warning: No original app.asar found for version {version}. Skipping backup.") 66 | 67 | # Copy the new app.asar file to the app-* folder, overwriting the existing one 68 | shutil.copy(source_path, destination_path) 69 | 70 | print(f"{Fore.GREEN}Patch successful.") 71 | wait_and_clear() 72 | 73 | # Function to restore the app 74 | def restore_app(): 75 | backup_folder = os.path.join(os.getcwd(), 'Backups') 76 | print(f"Looking for backups in: {backup_folder}") # Debugging log 77 | 78 | if not os.listdir(backup_folder): 79 | print(f"{Fore.RED}Error: No backup files found.") 80 | wait_and_clear() 81 | return 82 | 83 | for backup_file in os.listdir(backup_folder): 84 | if backup_file.startswith('app_backup_') and backup_file.endswith('.asar'): 85 | version = backup_file.split('_')[2][:-5] 86 | print(f"Restoring version: {version}") # Debugging log 87 | 88 | source_path = os.path.join(backup_folder, backup_file) 89 | destination_path = os.path.join(user_directory, 'AppData', 'Local', 'WeMod', f'app-{version}', 'resources', 'app.asar') 90 | 91 | print(f"Restoring from {source_path} to {destination_path}") # Debugging log 92 | 93 | try: 94 | shutil.copy(source_path, destination_path) 95 | print(f"{Fore.GREEN}Restore successful for version: {version}.") 96 | except Exception as e: 97 | print(f"{Fore.RED}Error restoring version {version}: {e}") 98 | continue 99 | 100 | wait_and_clear() 101 | 102 | 103 | if __name__ == "__main__": 104 | user_directory = os.path.expanduser("~") 105 | 106 | while True: 107 | display_start_menu() 108 | option = input("Enter the option number: ") 109 | 110 | if option == '1': 111 | patch_app() 112 | elif option == '2': 113 | restore_app() 114 | elif option == '3': 115 | break # Exit the loop and end the script 116 | else: 117 | print(f"{Fore.RED}Invalid option. Please enter a valid option.") 118 | wait_and_clear() 119 | -------------------------------------------------------------------------------- /app.asar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SalamiSimon/WeMod-Pro-Patcher-python/14a62563838470a480a8454167fee962170c13f3/app.asar -------------------------------------------------------------------------------- /app_compressed.asar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SalamiSimon/WeMod-Pro-Patcher-python/14a62563838470a480a8454167fee962170c13f3/app_compressed.asar -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | colorama==0.4.4 --------------------------------------------------------------------------------