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()
Example #2
0
    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!"
            )
Example #3
0
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...")
Example #4
0
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.")
Example #5
0
#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")
Example #6
0
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)
Example #7
0
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()
Example #8
0
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!")
Example #9
0
# 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:
Example #10
0
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,
Example #12
0
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!")
Example #13
0
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
Example #15
0
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:
Example #17
0
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!")
Example #18
0
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
Example #19
0
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
Example #20
0
#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")
Example #21
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'
Example #22
0
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
Example #23
0
#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 !!!
Example #24
0
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.")
Example #25
0
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
Example #26
0
#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 !!!