예제 #1
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...")
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()
예제 #3
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!"
            )
예제 #4
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
예제 #5
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()
예제 #6
0
파일: colors.py 프로젝트: wiiudev/pyGecko
#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 !!!
예제 #7
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'
예제 #8
0
파일: colors.py 프로젝트: Joonie86/pyGecko
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.")
예제 #9
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")
예제 #10
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
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,
예제 #12
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!")