├── README.md ├── build.py └── tik_modifier.py /README.md: -------------------------------------------------------------------------------- 1 | # tik_modifier 2 | A Wii U ticket modifier. 3 | 4 | # Usage 5 | python tik_modifier tik -------------------------------------------------------------------------------- /build.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | # Ticket Modifier 5 | # Version v1.3 6 | # Copyright © 2016 AboodXD 7 | 8 | import os, shutil, sys 9 | from cx_Freeze import setup, Executable 10 | 11 | version = '1.3' 12 | 13 | # Pick a build directory 14 | dir_ = 'tik_modifier v' + version 15 | 16 | # Add the "build" parameter to the system argument list 17 | if 'build' not in sys.argv: 18 | sys.argv.append('build') 19 | 20 | # Clear the directory 21 | print('>> Clearing/creating directory...') 22 | if os.path.isdir(dir_): shutil.rmtree(dir_) 23 | os.makedirs(dir_) 24 | print('>> Directory ready!') 25 | 26 | setup( 27 | name = 'Ticket Modifier', 28 | version = version, 29 | description = 'Wii U Ticket Modifier', 30 | author = "AboodXD", 31 | options={ 32 | 'build_exe': { 33 | 'compressed': 1, 34 | 'build_exe': dir_, 35 | }, 36 | }, 37 | executables = [ 38 | Executable( 39 | 'tik_modifier.py', 40 | ), 41 | ], 42 | ) 43 | 44 | print('>> Attempting to copy required files...') 45 | shutil.copy('README.md', dir_) 46 | print('>> Files copied!') 47 | 48 | print('>> Ticket Modifier has been frozen to "%s"!' % dir_) 49 | -------------------------------------------------------------------------------- /tik_modifier.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | # Ticket Modifier 5 | # Version v1.3 6 | # Copyright © 2016 AboodXD 7 | 8 | import os, sys, time 9 | 10 | print("tik_modifier") 11 | print("(C) 2016 AboodXD") 12 | print("") 13 | 14 | if len(sys.argv) != 2: 15 | print("Err...") 16 | time.sleep(3) 17 | sys.exit(1) 18 | 19 | try: 20 | assert sys.argv[1].endswith('.tik') 21 | except AssertionError: 22 | print("Are you sure this is a tik file?") 23 | time.sleep(3) 24 | sys.exit(1) 25 | 26 | with open(sys.argv[1], "rb") as tik: 27 | print("Opening tik file...") 28 | tik1 = tik.read() 29 | tik.close() 30 | 31 | 32 | tik2 = bytearray(tik1) 33 | 34 | if tik2[0x1:0x1+1] == (1).to_bytes(1, 'big'): 35 | print("This tik file has already been modified!") 36 | time.sleep(3) 37 | sys.exit(1) 38 | 39 | task = input("Did you get this tik using DiscU 4.1b or higher? [y/n] ") 40 | 41 | if (task == "y" or task == "Y" or task == "yes" or task == "Yes" or task == "YES" or task == "yES" or task == "yEs" or task == "yeS"): 42 | print("Modifing tik file...") 43 | tik2[0x1:0x1+1] = (1).to_bytes(1, 'big') 44 | 45 | elif (task == "n" or task == "N" or task == "no" or task == "No" or task == "NO" or task == "nO"): 46 | print("Modifing tik file...") 47 | tik2[0x1:0x1+1] = (1).to_bytes(1, 'big') 48 | tik2[0xF:0xF+1] = (int.from_bytes(tik2[0xF:0xF+1], 'big') ^ 2).to_bytes(1, 'big') 49 | 50 | name = os.path.splitext(sys.argv[1])[0] 51 | 52 | with open(name + "_modified.tik", "wb+") as tik3: 53 | tik3.write(tik2) 54 | tik3.close() 55 | print("Modified!") 56 | --------------------------------------------------------------------------------