def connect(): ip = nip.get() global tcp, f_config, inj tcp = TCPGecko(ip) x = tcp.readmem(name_ptr, 20) x = str_end(x, 0) print(x) tcp.pokemem(0x1076f7a8, 0x000000FF) temp_vars = [] ShowStats() change_text("^2Connected to NexoCube Mod Injector") inj.config(state=NORMAL) f_config.seek(0, 0) f_config.write(ip) f_config.close()
def connection(self): try: ip = self.ui.lineEdit.text() self.gecko = TCPGecko(ip) except: QMessageBox.critical(self, 'SplatStats', "The connection to the console failed!") return firmVer = self.gecko.getversion() if firmVer == 550: loc = 0x10013C10 elif firmVer < 550 and firmVer >= 532: loc = 0x100136D0 elif firmVer < 532 and firmVer >= 500: loc = 0x10013010 elif firmVer == 410: loc = 0x1000ECB0 else: QMessageBox.critical( self, 'SplatStats', "The version of your wiiu is not compatible with the software. Please update it!" ) return titleID = int(hexlify(self.gecko.readmem(loc, 8)), 16) if titleID == TID_EUR or titleID == TID_USA or titleID == TID_JAP: self.ui.lineEdit.setEnabled(False) self.ui.pushButton_3.setEnabled(False) self.ui.pushButton_2.setEnabled(True) self.ui.pushButton_6.setEnabled(True) QMessageBox.information( self, 'SplatStats', "The connection to " + ip + " was successful!") else: self.gecko.s.close() QMessageBox.critical( self, 'SplatStats', "The connection to the console was successful, but was cut because Splatoon was not launched!" )
def tcp_connect(): global tcp global tcp_connected global rpc_running try: tcp = TCPGecko(ip) # connect to your Wii U except TimeoutError: clear() print("Connection timed out. Please try again.\n") if rpc_running == True: RPC.close() menu() tcp_connected = True clear() print("Successfully connected to your Wii U at " + ip + ".") print("Waiting for Discord...")
from tcpgecko import TCPGecko from textwrap import wrap from struct import pack from binascii import hexlify, unhexlify import sys def pokecolor(pos, string): color = textwrap.wrap(string, 4) tcp.pokemem(pos, struct.unpack(">I", color[0])[0]) tcp.pokemem(pos + 4, struct.unpack(">I", color[1])[0]) tcp.pokemem(pos + 8, struct.unpack(">I", color[2])[0]) tcp.pokemem(pos + 12, struct.unpack(">I", color[3])[0]) tcp = TCPGecko("192.168.137.3") Colors = b"" for i in range(1, 4): #Ignores Alpha since it doesn't use it Color = wrap(sys.argv[i], 2) #Split it into 2 character chunks for j in range(3): Colors += pack(">f", ord(unhexlify(Color[j])) / 256) Colors += pack(">f", 1.0) tcp.writestr(0x12D14F64, Colors) #Only overwrites currently loaded color #You need to figure out timing to apply tcp.s.close() print("Done.")
#Codename Octohax from tcpgecko import TCPGecko import sys sys.argv.append("230") tcp = TCPGecko("192.168.0.8") if sys.argv[1] == "100": #For 1.0.0-? tcp.writestr(0x105068F0, b"Tnk_Rvl00") tcp.writestr(0x1051A500, b"Tnk_Rvl00") tcp.writestr(0x105DBFE0, b"Rival00") tcp.writestr(0x105DBFEC, b"Rival00_Hlf") tcp.writestr(0x105DBFFC, b"Rival_Squid") #tcp.pokemem(0x12CB05A0, 42069) elif sys.argv[1] == "130": #for 1.3.0 tcp.writestr(0x105068F0, b"Tnk_Rvl00") tcp.writestr(0x105D4000, b"Tnk_Rvl00") tcp.writestr(0x105DC118, b"Rival00") tcp.writestr(0x105DC124, b"Rival00_Hlf") tcp.writestr(0x105DC134, b"Rival_Squid") #tcp.pokemem(0x12CB07A0, 42069) elif sys.argv[1] == "200": #For 2.0.0 tcp.writestr(0x10506AB0, b"Tnk_Rvl00") tcp.writestr(0x105E0278, b"Tnk_Rvl00") tcp.writestr(0x105E85B0, b"Rival00") tcp.writestr(0x105E85BC, b"Rival00_Hlf") tcp.writestr(0x105E85CC, b"Rival_Squid") tcp.writestr(0x12BE2350, b"Tnk_Rvl00") tcp.writestr(0x12BE239C, b"Tnk_Rvl00") tcp.writestr(0x12BE23E8, b"Tnk_Rvl00") elif sys.argv[1] == "210": #For 2.1.0 tcp.writestr(0x10506AF8, b"Tnk_Rvl00")
from tcpgecko import TCPGecko tcp = TCPGecko(ip) print(""" unused gear script by Nefarious 1) NoHed, NoClothes, NoShoes (0) 2) MSN001 - Octo Valley armor x1 (27001) 3) MSN002 - Octo Valley armor x2 (27002) 4) MSN003 - Octo Valley armor x3 (27003) 5) RVL001 - Elite Octoling Goggles (28001) 6) SUP000 - testfire preorder gear (29500) 7) SUP001 - testfire SRL gear (29501) 8) reset """) option = int(input("Option: ")) if option == 1: print("NoHed, NoClothes, NoShoes...") tcp.pokemem(0x12CD6DA0 + 0x1000, 0x00000000) #head slot tcp.pokemem(0x12CD3DA0 + 0x1000, 0x00000000) #clothes slot tcp.pokemem(0x12CD0DA0 + 0x1000, 0x00000000) #shoes slot tcp.pokemem(0x12CD0D88 + 0x1000, 0x00000000) #set current head tcp.pokemem(0x12CD0D80 + 0x1000, 0x00000000) #set current clothes tcp.pokemem(0x12CD0D84 + 0x1000, 0x00000000) #set current shoes print("Done.") elif option == 2: print("MSN001...") tcp.pokemem(0x12CD6DA0 + 0x1000, 0x00006979) tcp.pokemem(0x12CD3DA0 + 0x1000, 0x00006979) tcp.pokemem(0x12CD0DA0 + 0x1000, 0x00006979) tcp.pokemem(0x12CD0D88 + 0x1000, 0x00006979)
from tcpgecko import TCPGecko from binascii import hexlify, unhexlify import sys try: import __builtin__ except: import builtins as __builtin__ def hex(value, fill): return "0x" + __builtin__.hex(value).lstrip("0x").rstrip("L").zfill(fill).upper() tcp = TCPGecko("192.168.0.10") title_id = 0x0005000010144F00 #Smash USA SYSCheckTitleExists = tcp.get_symbol("sysapp.rpl", "SYSCheckTitleExists", True) doesExist = SYSCheckTitleExists(title_id >> 32, title_id & 0xFFFFFFFF) if not doesExist: print("Title " + hex(title_id, 16) + " does not exist!") else: SYSLaunchTitle = tcp.get_symbol("sysapp.rpl", "SYSLaunchTitle", True) SYSLaunchTitle(title_id >> 32, title_id & 0xFFFFFFFF) print("Game switched!") tcp.s.close()
from tcpgecko import TCPGecko from textwrap import wrap from struct import pack from binascii import unhexlify import sys tcp = TCPGecko("192.168.0.8") #Wii U IP address Colors = b"" for i in range(1, 4): #Ignores Alpha since it doesn't use it Color = wrap(sys.argv[i], 2) #Split it into 2 character chunks for j in range(3): #Create the RGB floats Colors += pack(">f", ord(unhexlify(Color[j])) / 256) Colors += pack(">f", 1.0) #Alpha tcp.writestr(0x12D1AF70, Colors) #Only overwrites currently loaded color #Run a command right after the lobby is "ready" tcp.s.close() print("Done!")
# MODIFY BELOW wiiu_addr = '192.168.0.133' addr_first_slot = 0x1C3BB0DC # see codes/xcx_v1.0.1e.txt for Slot 001 of Material, Rare Resources, ... addr_last_slot = 0x1C3BD650 # ... same as above new_amount = 99 item_type_val = 0x68 # see codes/xcx_item_id_v1.0.1e.txt for the appropriate 1-byte Type ID slot_num_bytes = 12 # do not change if new_amount <= 0 or new_amount > 99: raise ValueError('new_amount must be in [1, 99] range') with open('../codes/xcx_item_id_v1.0.1e.txt', 'r') as f: (item_db, item_db_lines, item_types) = parse_item_db(f.read()) print '> Connecting to Wii U...' g = TCPGecko(wiiu_addr) print '> Connected to Wii U' num_items_max = (addr_last_slot - addr_first_slot) / slot_num_bytes num_items_found = 0 for slot_i in xrange(num_items_max): # Read and parse item from memory offset = slot_i * slot_num_bytes addr_curr = addr_first_slot + offset print '0x%08X (Slot %03d):' % (addr_curr, slot_i + 1), word_curr = struct.unpack('>I', g.readmem(addr_curr, 4))[0] type_val, id_val, amount = parse_item_word(word_curr) if type_val == 0: print 'EMPTY' continue elif type_val != item_type_val:
from tcpgecko import TCPGecko #Script to purge Miiverse save cache in Splatoon tcp = TCPGecko("192.168.137.3") tcp.writestr(0x12CE0100, b"\x00" * 0x1850) #Only for 2.0.0-2.1.0 AFAIK tcp.s.close() print("Done!")
from pypresence import Presence from tcpgecko import TCPGecko from wiiu_info import WiiU_Titles import time exit = 0 f = open("wiiu_rp.cfg", "r") ip_addr = f.read() if "." not in ip_addr: print("Please modify the 'wiiu_rp.cfg' and put your Wiiu Local IP Address") tcp = TCPGecko(ip_addr.replace("IP= ", "").replace(" ", "")) titles = WiiU_Titles(tcp) titles.init_titles() while exit == 0: ret_val, cid, state, details, start, end, large_image, large_text, party_id, party_size = titles.call_handler_for_tid( titles.OSGetTitleID()) if ret_val == 0: try: p = Presence(cid) p.connect() p.update(state=state, details=details, start=start, end=end, large_image=large_image,
from tcpgecko import TCPGecko import sys tcp = TCPGecko("192.168.1.82") print(tcp.readkern(0x10000000)) tcp.s.close() print("Done.")
import sys, os sys.path.append(os.path.abspath('../pygecko')) from tcpgecko import TCPGecko wiiu_addr = '192.168.0.133' print '> Connecting to Wii U...' g = TCPGecko(wiiu_addr) print '> Connected to Wii U' addr_base = 0x1C39ADC0 skill_12_addr = addr_base + 12 skill_3_addr = addr_base + 16 skill_names = [] incr_by_one = True base_id = 0xD69+20 base_id = 0xE4F+1 for i in range(20): if incr_by_one: skill_1_id = base_id skill_2_id = base_id+1 skill_3_id = base_id+2 base_id += 3 else: skill_1_id = base_id skill_2_id = base_id+20 skill_3_id = base_id+40 base_id += 60 if skill_1_id > 0xFFF or skill_2_id > 0xFFF or skill_3_id > 0xFFF: break
from tcpgecko import TCPGecko tcp = TCPGecko("10.0.0.2") # make sure to check if your title exists, or else it will crash! # if it exists, it will return 1 SYSCheckTitleExists = tcp.get_symbol("sysapp.rpl", "SYSCheckTitleExists") # first argument is the first 32-bit set of the Title ID # second argument is the second 32-bit set of the Title ID # for example, this is Wooly World (USA) SYSCheckTitleExists(0x0005000, 0x10184D00) # now here is the title id that you will launch # remember to have the game / disc in!!!!! SYSLaunchTitle(0x0005000, 0x10184D00) tcp.s.close() print("Game switched!")
# MODIFY BELOW wiiu_addr = '192.168.0.133' addr_first_slot = 0x1C3BB0DC # see codes/xcx_v1.0.1e.txt for Slot 001 of Material, Rare Resources, ... addr_last_slot = 0x1C3BD650 # ... same as above new_amount = 99 item_type_val = 0x68 # see codes/item_id_v1.0.1e.txt for the appropriate 1-byte Type ID slot_num_bytes = 12 # do not change if new_amount <= 0 or new_amount > 99: raise ValueError('new_amount must be in [1, 99] range') with open('../codes/item_id_v1.0.1e.txt', 'r') as f: (item_db, item_db_lines, item_types) = parse_item_db(f.read()) print '> Connecting to Wii U...' g = TCPGecko(wiiu_addr) print '> Connected to Wii U' num_items_max = (addr_last_slot - addr_first_slot) / slot_num_bytes num_items_found = 0 for slot_i in xrange(num_items_max): # Read and parse item from memory offset = slot_i * slot_num_bytes addr_curr = addr_first_slot + offset print '0x%08X (Slot %03d):' % (addr_curr, slot_i + 1), word_curr = struct.unpack('>I', g.readmem(addr_curr, 4))[0] type_val, id_val, amount = parse_item_word(word_curr) if type_val == 0: print 'EMPTY' continue elif type_val != item_type_val:
class MyWindow(QtWidgets.QMainWindow): def __init__(self, parent=None): QtWidgets.QMainWindow.__init__(self, parent) self.ui = gui.Ui_MainWindow() self.ui.setupUi(self) self.ui.pushButton_3.clicked.connect(self.connection) self.ui.pushButton_2.clicked.connect(self.disconnection) self.ui.pushButton_6.clicked.connect(self.getStats) self.ui.pushButton_5.clicked.connect(self.applyStats) def getStats(self): try: # Level self.ui.spinBox.setValue(self.gecko.readkern(0x12CDC1A8) + 1) # XP self.ui.spinBox_2.setValue(self.gecko.readkern(0x12CDC1A4)) # Rank rank = self.gecko.readkern(0x12CDC1AC) if rank == 0: self.ui.comboBox.setCurrentIndex(0) elif rank == 1: self.ui.comboBox.setCurrentIndex(1) elif rank == 2: self.ui.comboBox.setCurrentIndex(2) elif rank == 3: self.ui.comboBox.setCurrentIndex(3) elif rank == 4: self.ui.comboBox.setCurrentIndex(4) elif rank == 5: self.ui.comboBox.setCurrentIndex(5) elif rank == 6: self.ui.comboBox.setCurrentIndex(6) elif rank == 7: self.ui.comboBox.setCurrentIndex(7) elif rank == 8: self.ui.comboBox.setCurrentIndex(8) elif rank == 9: self.ui.comboBox.setCurrentIndex(9) elif rank == 10: self.ui.comboBox.setCurrentIndex(10) # Rank Points self.ui.spinBox_3.setValue(self.gecko.readkern(0x12CDC1B0)) # Gold self.ui.spinBox_4.setValue(self.gecko.readkern(0x12CDC1A0)) # Sea Snails self.ui.spinBox_5.setValue(self.gecko.readkern(0x12CDC1B4)) # Gender gender = self.gecko.readkern(0x12CD1D90) if gender == 0: self.ui.comboBox_2.setCurrentIndex(0) elif gender == 1: self.ui.comboBox_2.setCurrentIndex(1) elif gender == 2: self.ui.comboBox_2.setCurrentIndex(2) # Eyes eyes = self.gecko.readkern(0x12CD1D98) if eyes == 0: self.ui.comboBox_3.setCurrentIndex(0) elif eyes == 1: self.ui.comboBox_3.setCurrentIndex(1) elif eyes == 2: self.ui.comboBox_3.setCurrentIndex(2) elif eyes == 3: self.ui.comboBox_3.setCurrentIndex(3) elif eyes == 4: self.ui.comboBox_3.setCurrentIndex(4) elif eyes == 5: self.ui.comboBox_3.setCurrentIndex(5) elif eyes == 6: self.ui.comboBox_3.setCurrentIndex(6) # Skin skin = self.gecko.readkern(0x12CD1D94) if skin == 0: self.ui.comboBox_4.setCurrentIndex(0) elif skin == 1: self.ui.comboBox_4.setCurrentIndex(1) elif skin == 2: self.ui.comboBox_4.setCurrentIndex(2) elif skin == 3: self.ui.comboBox_4.setCurrentIndex(3) elif skin == 4: self.ui.comboBox_4.setCurrentIndex(4) elif skin == 5: self.ui.comboBox_4.setCurrentIndex(5) elif skin == 6: self.ui.comboBox_4.setCurrentIndex(6) self.ui.comboBox.setEnabled(True) self.ui.comboBox_2.setEnabled(True) self.ui.comboBox_3.setEnabled(True) self.ui.comboBox_4.setEnabled(True) self.ui.spinBox.setEnabled(True) self.ui.spinBox_2.setEnabled(True) self.ui.spinBox_3.setEnabled(True) self.ui.spinBox_4.setEnabled(True) self.ui.spinBox_5.setEnabled(True) self.ui.pushButton_5.setEnabled(True) QMessageBox.information(self, 'SplatStats', "The statistics have been updated!") except: QMessageBox.critical(self, 'SplatStats', "Reading console data failed!") def disconnection(self): try: self.gecko.s.close() self.ui.lineEdit.setEnabled(True) self.ui.pushButton_3.setEnabled(True) self.ui.pushButton_2.setEnabled(False) self.ui.pushButton_5.setEnabled(False) self.ui.pushButton_6.setEnabled(False) self.ui.comboBox.setEnabled(False) self.ui.comboBox_2.setEnabled(False) self.ui.comboBox_3.setEnabled(False) self.ui.comboBox_4.setEnabled(False) self.ui.spinBox.setEnabled(False) self.ui.spinBox_2.setEnabled(False) self.ui.spinBox_3.setEnabled(False) self.ui.spinBox_4.setEnabled(False) self.ui.spinBox_5.setEnabled(False) QMessageBox.information( self, 'SplatStats', "Disconnection of the console was successful!") except: QMessageBox.critical( self, 'SplatStats', "An error occurred when disconnecting the console!") def connection(self): try: ip = self.ui.lineEdit.text() self.gecko = TCPGecko(ip) except: QMessageBox.critical(self, 'SplatStats', "The connection to the console failed!") return firmVer = self.gecko.getversion() if firmVer == 550: loc = 0x10013C10 elif firmVer < 550 and firmVer >= 532: loc = 0x100136D0 elif firmVer < 532 and firmVer >= 500: loc = 0x10013010 elif firmVer == 410: loc = 0x1000ECB0 else: QMessageBox.critical( self, 'SplatStats', "The version of your wiiu is not compatible with the software. Please update it!" ) return titleID = int(hexlify(self.gecko.readmem(loc, 8)), 16) if titleID == TID_EUR or titleID == TID_USA or titleID == TID_JAP: self.ui.lineEdit.setEnabled(False) self.ui.pushButton_3.setEnabled(False) self.ui.pushButton_2.setEnabled(True) self.ui.pushButton_6.setEnabled(True) QMessageBox.information( self, 'SplatStats', "The connection to " + ip + " was successful!") else: self.gecko.s.close() QMessageBox.critical( self, 'SplatStats', "The connection to the console was successful, but was cut because Splatoon was not launched!" ) def applyStats(self): try: # Level self.gecko.pokemem(0x12CDC1A8, self.ui.spinBox.value() - 1) # XP self.gecko.pokemem(0x12CDC1A4, self.ui.spinBox_2.value()) # Rank self.gecko.pokemem(0x12CDC1AC, self.ui.comboBox.currentIndex()) # Rank Points self.gecko.pokemem(0x12CDC1B0, self.ui.spinBox_3.value()) # Money self.gecko.pokemem(0x12CDC1A0, self.ui.spinBox_4.value()) # Sea Snails self.gecko.pokemem(0x12CDC1B4, self.ui.spinBox_5.value()) # Gender self.gecko.pokemem(0x12CD1D90, self.ui.comboBox_2.currentIndex()) # Eyes self.gecko.pokemem(0x12CD1D98, self.ui.comboBox_3.currentIndex()) # Skin self.gecko.pokemem(0x12CD1D94, self.ui.comboBox_4.currentIndex()) QMessageBox.information( self, 'SplatStats', "The statistics have been changed successfully!") except: QMessageBox.critical( self, 'SplatStats', "An error occurred when changing the values!")
import sys, os sys.path.append(os.path.abspath('../pygecko')) from tcpgecko import TCPGecko wiiu_addr = '192.168.0.133' print '> Connecting to Wii U...' g = TCPGecko(wiiu_addr) print '> Connected to Wii U' addr_base = 0x1C39ADC0 skill_12_addr = addr_base + 12 skill_3_addr = addr_base + 16 skill_names = [] incr_by_one = True base_id = 0xD69 + 20 base_id = 0xE4F + 1 for i in range(20): if incr_by_one: skill_1_id = base_id skill_2_id = base_id + 1 skill_3_id = base_id + 2 base_id += 3 else: skill_1_id = base_id skill_2_id = base_id + 20 skill_3_id = base_id + 40 base_id += 60 if skill_1_id > 0xFFF or skill_2_id > 0xFFF or skill_3_id > 0xFFF: break
Player01_anim... Player00....Play er00_Hlf....Play er_Squid....Play er01....Player01 _Hlf....ToSquid. ToHuman.Sqd_Jet. ''' #Then dump 0x12000000 to 0x13000000, search for Tnk_Simple, #should be first result, with three of them in a row with spacing from tcpgecko import TCPGecko import sys sys.argv.append("280") tcp = TCPGecko("192.168.1.82") if sys.argv[1] == "100": #For 1.0.0-? tcp.writestr(0x105068F0, b"Tnk_Rvl00") tcp.writestr(0x1051A500, b"Tnk_Rvl00") tcp.writestr(0x105DBFE0, b"Rival00") tcp.writestr(0x105DBFEC, b"Rival00_Hlf") tcp.writestr(0x105DBFFC, b"Rival_Squid") #tcp.pokemem(0x12CB05A0, 42069) elif sys.argv[1] == "130": #for 1.3.0 tcp.writestr(0x105068F0, b"Tnk_Rvl00") tcp.writestr(0x105D4000, b"Tnk_Rvl00") tcp.writestr(0x105DC118, b"Rival00") tcp.writestr(0x105DC124, b"Rival00_Hlf") tcp.writestr(0x105DC134, b"Rival_Squid") #tcp.pokemem(0x12CB07A0, 42069) elif sys.argv[1] == "200": #For 2.0.0
import sys, os import struct sys.path.append(os.path.abspath('../pygecko')) from tcpgecko import TCPGecko wiiu_addr = '192.168.0.133' print '> Connecting to Wii U...' g = TCPGecko(wiiu_addr) print '> Connected to Wii U' addr_base = 0x1C3B2460 num_equip = 100 num_bytes = num_equip*24 # each equip uses 6 words bytes_raw = g.readmem(addr_base, num_bytes) num_equip_read = len(bytes_raw)/24 for equip_i in xrange(num_equip_read): offset = equip_i*24 addr_curr = addr_base + offset bytes_curr_equip = bytes_raw[offset:(offset+24)] wv = struct.unpack('>IIIIII', bytes_curr_equip) equip_empty = (wv[0] == 0 and wv[1] == 0 and wv[2] == 0) if equip_empty: print '%08X (%03d): EMPTY' % (addr_curr, equip_i+1) else: print '%08X (%03d): %08X %08X %08X %08X %08X %08X' % \ (addr_curr, equip_i+1, wv[0], wv[1], wv[2], wv[3], wv[4], wv[5]) g.s.close() print '> Disconnected from Wii U'
#You're probably better off using the GUI version, but... #https://gbatemp.net/threads/splatoon-colorizer.406463/ from tcpgecko import TCPGecko from textwrap import wrap from struct import pack from binascii import unhexlify import sys #!!! WARNING: ColorHax has been known to get permanent bans for users !!! #!!! USE AT YOUR OWN RISK !!! tcp = TCPGecko("192.168.0.10") #Wii U IP address Colors = b"" for i in range(1, 4): #Ignores Alpha since it doesn't use it Color = wrap(sys.argv[i], 2) #Split it into 2 character chunks for j in range(3): #Create the RGB floats Colors += pack(">f", ord(unhexlify(Color[j])) / 256) Colors += pack(">f", 1.0) #Alpha tcp.writestr(0x12D53178, Colors) #Only overwrites currently loaded color #Run a command right after the lobby is "ready" tcp.s.close() print("Done!") #!!! WARNING: ColorHax has been known to get permanent bans for users !!! #!!! USE AT YOUR OWN RISK !!!
from tcpgecko import TCPGecko tcp = TCPGecko("192.168.0.8") tcp.writestr(0x105068F0, "Tnk_Rvl00") #For 1.0.0-? tcp.writestr(0x1051A500, "Tnk_Rvl00") tcp.writestr(0x105DBFE0, "Rival00") tcp.writestr(0x105DBFEC, "Rival00_Hlf") tcp.writestr(0x105DBFFC, "Rival_Squid") tcp.pokemem(0x12CB05A0, 42069) '''tcp.writestr(0x105068F0, "Tnk_Rvl00") #for 1.3.0 tcp.writestr(0x105D4000, "Tnk_Rvl00") tcp.writestr(0x105DC118, "Rival00") tcp.writestr(0x105DC124, "Rival00_Hlf") tcp.writestr(0x105DC134, "Rival_Squid") tcp.pokemem(0x12CB07A0, 42069)''' tcp.s.close() print("Done.")
from tcpgecko import TCPGecko from binascii import hexlify import os, sys, time if os.path.isfile("./SAV_IP") == True: sav_ip = (open("./SAV_IP", "r").read()) print( "\nEnter you Wii U IP Address: (Or keep it blank to use your saved one.)" ) else: print("\nEnter you Wii U IP Address:") ip = raw_input(">> ") or sav_ip tcp = TCPGecko(ip) save = open("./SAV_IP", "w") save.write(ip) save.close() diff = 0x0 if hexlify(tcp.readmem(0x12CDADA0, 4)) == "000003f2": #Loadiine and Geckiine diff = 0x0 elif hexlify(tcp.readmem(0x12CDCDA0, 4)) == '000003f2': #Elf TCPGecko w/o codehandler diff = 0x2000 elif hexlify(tcp.readmem( 0x12CE2DA0, 4)) == '000003f2': #Something, it's there but I'm not sure diff = 0x8000 elif hexlify(tcp.readmem(0x12CE3DA0, 4)) == '000003f2': #Codehandler diff = 0x9000