Hacking Uwizard: All-In-One Wii U PC Program

Mr. Mysterio

Super Genius
OP
Member
Joined
Sep 16, 2014
Messages
661
Trophies
0
Age
24
Location
Rosalina's Comet Observatory
XP
1,124
Country
United States
I'm sorry I've been missing for the past week. I was fighting a nasty cold. :( I should have Uwizard Gecko done soon, assuming that I don't get sick again. :yayu:

Is this an updated/cloned version or a fake ? Recently uploaded to wiiubrew... http://wiiubrew.org/wiki/File:Nintendo_Toolkit.rar
That is what is known in the trade as BULLSHIT! It is a very poor fake copy of my Uwizard. The only new "features" are the viruses it contains. One screws with the registry, and the other with system DLLs. A very legitimate Uwizard 1.2.0 should be out soon, but until then, use the latest legitimate version: Uwizard 1.1.3.zip from the OP.

how do i create the ckey.bin? i have the key in txt and tried creating it with an hex editor but the uwizard says its wrong when i select the bin file
Creating a bin file is the hard way. Just enter the key into the textbox. If it's wrong, try other keys from google until one works.

PS. Uwizard 1.2.0 will be closed source so :gun:Dr. Hacknik:whip: and other pieces of shit can't steal it. I will only share the source with trusted people who ask me for it.

--------------------- MERGED ---------------------------

Is there a trick to using the NUS downloader in uwizard? NUSgrabber works fine, but I can't find CDecrypt and uwizard throws a TMD failed... error on any and every download. Tried another system as well as bypassing all the N's URL restrictions. no difference. I also can't update as wiiubrew.net don't exist...
Updates for version 1.1.3 and under will never work again. In the future, I will use a different (hopefully less likely to die) address to hold update information.
 
Last edited by Mr. Mysterio,

CosmoCortney

i snack raw pasta and chew lollipops
Member
Joined
Apr 18, 2013
Messages
1,768
Trophies
2
Location
on the cool side of the pillow
Website
follow-the-white-rabbit.wtf
XP
3,007
Country
Germany
I'm sorry I've been missing for the past week. I was fighting a nasty cold. :( I should have Uwizard Gecko done soon, assuming that I don't get sick again. :yayu:
Now I know where I've got the cold from. Damn you :D
But can't wait for Uwizard Gecko to be done :yaynds:
 

DGenerateKane

Well-Known Member
Member
Joined
Jul 18, 2009
Messages
357
Trophies
0
XP
294
Country
United States
For those of you who got Hyrule Warriors extracted properly, could you help me? I tried dragging it into VGMToolbox but it gives me two error messages, the first saying unmatched partition found and the second one is file table signature not found for partition. Could that mean there is something wrong with my WUD?
 

Mr. Mysterio

Super Genius
OP
Member
Joined
Sep 16, 2014
Messages
661
Trophies
0
Age
24
Location
Rosalina's Comet Observatory
XP
1,124
Country
United States
Before I write the code handler for Uwizard Gecko, I must figure out the details of all the code types. I have a basic idea here, but I would appreciate suggestions. It will be much easier to make any modifications before I write the code handler.

NOTE: I will not add ASM support to the next version of Uwizard, because it crashes too often.
 

Attachments

  • Uwizard Code Types.zip
    2.8 KB · Views: 295

CosmoCortney

i snack raw pasta and chew lollipops
Member
Joined
Apr 18, 2013
Messages
1,768
Trophies
2
Location
on the cool side of the pillow
Website
follow-the-white-rabbit.wtf
XP
3,007
Country
Germany
Before I write the code handler for Uwizard Gecko, I must figure out the details of all the code types. I have a basic idea here, but I would appreciate suggestions. It will be much easier to make any modifications before I write the code handler.

NOTE: I will not add ASM support to the next version of Uwizard, because it crashes too often.

Good I have made a lot of thoughts about this :)
Well to keep it basic I'd suggest a scheme like this:
CCPT0000 RRRRRRRR
VVVVVVVV 00000000

CC = Code Type
P = pointer. 0 = no, 1 = yes
T = data type. 0 = 8bit, 1 = 16bit, 2 = 32bit, 3 = decimal value
RRRRRRRR = address
VVVVVVVV = Value
the zeros can be used for additional stuff depending on the code type.

type 00 - RAM writes
00020000 156E128C
3f800000 00000000
* This would permanently write the 32bit value of 3f800000 at address 156E128C


type 00 with pointer
00100000 156E128C // loads the pointer at 156E128C
00020000 00056700 // 16bit write at offset 56700 (00100000 00056700 would load pointer in pointer)
00001234 00000000 // write value of 1234


type E0 - range check
E0000000 XXXXYYYY // pointer operations will only be perfomred when the size of the pointer's first 4 digits is between XXXX and YYYY. A must have to prevent freezes

range check example
00100000 156E128C // loads the pointer at 156E128C
E0000000 40004100 // only loads pointer address if it is between 40000000 and 41000000
00020000 00056700 // 16bit write at offset 56700 (00100000 00056700 would load pointer in pointer)
00001234 00000000 // write value of 1234
* ofc works with pointer in pointer

01 - patch write
01PXXXXX RRRRRRRR
VVVVVVVV VVVVVVVV
* XXXXX = how many bytes to write

02 - skip write
02PTXXXX IIIIIIII
RRRRRRRR VVVVVVVV
* XXXX = how many skip writes
IIIIIIII = offset (can be negative. 00000100 = 0x100, FFFFFF00 = - 0x100)

04 conditional if equal
04PT0000 RRRRRRRR
VVVVVVVV 00000000

05 conditional if not equal
05PT0000 RRRRRRRR
VVVVVVVV 00000000

06 conditional if greater than
06PT0000 RRRRRRRR
VVVVVVVV 00000000

07 conditional if lower than
07PT0000 RRRRRRRR
VVVVVVVV 00000000

08 conditional if greater than or equal
08PT0000 RRRRRRRR
VVVVVVVV 00000000

09 conditional if lower than or equal
09PT0000 RRRRRRRR
VVVVVVVV 00000000
* make sure to make then compatible to pointers and range checks


i think that's the very basic stuff :)
 

Mr. Mysterio

Super Genius
OP
Member
Joined
Sep 16, 2014
Messages
661
Trophies
0
Age
24
Location
Rosalina's Comet Observatory
XP
1,124
Country
United States
Good I have made a lot of thoughts about this :)
Well to keep it basic I'd suggest a scheme like this:
CCPT0000 RRRRRRRR
VVVVVVVV 00000000

CC = Code Type
P = pointer. 0 = no, 1 = yes
T = data type. 0 = 8bit, 1 = 16bit, 2 = 32bit, 3 = decimal value
RRRRRRRR = address
VVVVVVVV = Value
the zeros can be used for additional stuff depending on the code type.

type 00 - RAM writes
00020000 156E128C
3f800000 00000000
* This would permanently write the 32bit value of 3f800000 at address 156E128C


type 00 with pointer
00100000 156E128C // loads the pointer at 156E128C
00020000 00056700 // 16bit write at offset 56700 (00100000 00056700 would load pointer in pointer)
00001234 00000000 // write value of 1234


type E0 - range check
E0000000 XXXXYYYY // pointer operations will only be perfomred when the size of the pointer's first 4 digits is between XXXX and YYYY. A must have to prevent freezes

range check example
00100000 156E128C // loads the pointer at 156E128C
E0000000 40004100 // only loads pointer address if it is between 40000000 and 41000000
00020000 00056700 // 16bit write at offset 56700 (00100000 00056700 would load pointer in pointer)
00001234 00000000 // write value of 1234
* ofc works with pointer in pointer

01 - patch write
01PXXXXX RRRRRRRR
VVVVVVVV VVVVVVVV
* XXXXX = how many bytes to write

02 - skip write
02PTXXXX IIIIIIII
RRRRRRRR VVVVVVVV
* XXXX = how many skip writes
IIIIIIII = offset (can be negative. 00000100 = 0x100, FFFFFF00 = - 0x100)

04 conditional if equal
04PT0000 RRRRRRRR
VVVVVVVV 00000000

05 conditional if not equal
05PT0000 RRRRRRRR
VVVVVVVV 00000000

06 conditional if greater than
06PT0000 RRRRRRRR
VVVVVVVV 00000000

07 conditional if lower than
07PT0000 RRRRRRRR
VVVVVVVV 00000000

08 conditional if greater than or equal
08PT0000 RRRRRRRR
VVVVVVVV 00000000

09 conditional if lower than or equal
09PT0000 RRRRRRRR
VVVVVVVV 00000000
* make sure to make then compatible to pointers and range checks


i think that's the very basic stuff :)
Well, I would like to keep it a little more compact than four u32s per code if possible, but I do like some of those ideas! I did try to keep the code format consistent, but some codes required so much information that I had to break the "rules" to make the information fit. In particular I'm curious about the patch write and skip write codes. Would you mind explaining more completely what they do?
 
Last edited by Mr. Mysterio,

CosmoCortney

i snack raw pasta and chew lollipops
Member
Joined
Apr 18, 2013
Messages
1,768
Trophies
2
Location
on the cool side of the pillow
Website
follow-the-white-rabbit.wtf
XP
3,007
Country
Germany
Well, I would like to keep it a little more compact than four u32s per code if possible, but I do like some of those ideas! I did try to keep the code format consistent, but some codes required so much information that I had to break the "rules" to make the information fit. In particular I'm curious about the patch write and skip write codes. Would you mind explaining more completely what they do?
I'd not know how to make it more compact..
Well, the patch write can write any arbitrary amount of bytes. So you won't always need to but an address incremented by 0x4 in the next line.
This could be useful to modify big tables or texts.

01 - patch write
01040000 156E8234
12345678 12345678
1234563......

This would write 262144 (0x40000) Bytes at 156E8234

The skip/slider can be used for multiple writes that always have the same address.
Let's take the speed code for all opponents of MK8 as example.
We have 12 vehicle, so the number of additional write will be 11. The offset between each opponent's speed is 0x54000

0202000B 00054000
4658E024 43400000
this code would write 43400000 at 4658E024 and 4658E024 + 54000 for 11 additional times.

Another important code type we need for pointers and conditional code:
20 - Full termination
20000000 00000000

Conditional writes and pointer writes will end after 20000000 00000000


EDIT: but I'm worried about the range check not being fast enough since the destination's range value needs to be sent through network. Maybe freezes would still be possible..
 
Last edited by CosmoCortney,

Mr. Mysterio

Super Genius
OP
Member
Joined
Sep 16, 2014
Messages
661
Trophies
0
Age
24
Location
Rosalina's Comet Observatory
XP
1,124
Country
United States
I'd not know how to make it more compact..
Well, the patch write can write any arbitrary amount of bytes. So you won't always need to but an address incremented by 0x4 in the next line.
This could be useful to modify big tables or texts.

01 - patch write
01040000 156E8234
12345678 12345678
1234563......

This would write 262144 (0x40000) Bytes at 156E8234

The skip/slider can be used for multiple writes that always have the same address.
Let's take the speed code for all opponents of MK8 as example.
We have 12 vehicle, so the number of additional write will be 11. The offset between each opponent's speed is 0x54000

0202000B 00054000
4658E024 43400000
this code would write 43400000 at 4658E024 and 4658E024 + 54000 for 11 additional times.

Another important code type we need for pointers and conditional code:
20 - Full termination
20000000 00000000

Conditional writes and pointer writes will end after 20000000 00000000


EDIT: but I'm worried about the range check not being fast enough since the destination's range value needs to be sent through network. Maybe freezes would still be possible..
I already had a code that works like the patch code, but I didn't have one for the skip code! I think that could be very useful. Here is my idea for a skip code:

Write a 32-bit Value Multiple Times:

04TVVVVV XXXXXXXX
YYYYYYYY ZZZZZZZZ


T values:

0: 32-bit
1: 16-bit
2: 8-bit

Writes ZZZZZZZZ VVVVV times starting at XXXXXXXX, with YYYYYYYY being offset between each write.

I actually already have the range check working perfectly over the network!
 
Last edited by Mr. Mysterio,

CosmoCortney

i snack raw pasta and chew lollipops
Member
Joined
Apr 18, 2013
Messages
1,768
Trophies
2
Location
on the cool side of the pillow
Website
follow-the-white-rabbit.wtf
XP
3,007
Country
Germany
I already had a code that works like the patch code, but I didn't have one for the skip code! I think that could be very useful. Here is my idea for a skip code:

Write a 32-bit Value Multiple Times:

04TVVVVV XXXXXXXX
YYYYYYYY ZZZZZZZZ


T values:

0: 32-bit
1: 16-bit
2: 8-bit

Writes ZZZZZZZZ VVVVV times starting at XXXXXXXX, with YYYYYYYY being offset between each write.

I actually already have the range check working perfectly over the network!
nice :)
May I suggest to use 04TPVVVV instead? just for the case of pointers and it's very improbably that someone would need to make more than 65635 incremental writes :P
 

Mr. Mysterio

Super Genius
OP
Member
Joined
Sep 16, 2014
Messages
661
Trophies
0
Age
24
Location
Rosalina's Comet Observatory
XP
1,124
Country
United States
nice :)
May I suggest to use 04TPVVVV instead? just for the case of pointers and it's very improbably that someone would need to make more than 65635 incremental writes :P
Good idea! I forgot about pointers for this code. Perhaps this could work: (Even though the user will very likely not use more than 65535, it wouldn't hurt to use one of the remaining bit places in T.)

Write a 32-bit Value Multiple Times:

04TVVVVV XXXXXXXX
YYYYYYYY ZZZZZZZZ


T values:

0: 32-bit
1: 16-bit
2: 8-bit
If Bit Place 8 is set, then use BA + XXXXXXXX instead of XXXXXXXX.

Writes ZZZZZZZZ VVVVV times starting at XXXXXXXX, with YYYYYYYY being offset between each write.
 

Onion_Knight

Well-Known Member
Member
Joined
Feb 6, 2014
Messages
878
Trophies
0
Age
45
XP
997
Country
I'm trying to do exactly the same thing, does anyone know how to do this?
So take the game such as:

games/BobafettLovesChachie

and you have update for game,

name it to: BobafettLovesChachie

and just copy/pasta over the file. If its Linux or Windows just merge the folders. It will automagically overwrite the older files with their updates. If your on a MAC, use a terminal and the "ditto" command.

ditto -v /Volumes/games/BobafettLovesChachie ~/Desktop/BobafettLovesChachie
 
  • Like
Reactions: Razor83

Razor83

Well-Known Member
Member
Joined
Dec 23, 2009
Messages
391
Trophies
1
XP
1,758
Country
So take the game such as:

games/BobafettLovesChachie

and you have update for game,

name it to: BobafettLovesChachie

and just copy/pasta over the file. If its Linux or Windows just merge the folders. It will automagically overwrite the older files with their updates. If your on a MAC, use a terminal and the "ditto" command.

ditto -v /Volumes/games/BobafettLovesChachie ~/Desktop/BobafettLovesChachie
Thanks for your reply :) So on windows I just copy over the 'code', 'content' and 'meta' folders and select "Move and replace" to overwrite any files with the same name? (Didnt think it would be that simple!)
 
Last edited by Razor83,

CosmoCortney

i snack raw pasta and chew lollipops
Member
Joined
Apr 18, 2013
Messages
1,768
Trophies
2
Location
on the cool side of the pillow
Website
follow-the-white-rabbit.wtf
XP
3,007
Country
Germany
I welcome any comments, ideas
What about a tab of data conversion? This may be useful then your TCP Gecko solution is available. It could contain conversion for float-to-hex, ascii-to-hex, unicode-to-hex and vice versa :P
Also a sort of button value generator for jokered cheats like over here.
So the poor end user won't need to use many programs at once or go to a lot of different websites
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • Psionic Roshambo @ Psionic Roshambo:
    Batman joined the Trans Justice League
    +2
  • Sicklyboy @ Sicklyboy:
    based af
    +2
  • Sonic Angel Knight @ Sonic Angel Knight:
    Forget the base, get on the roof.
  • K3Nv2 @ K3Nv2:
    Is that a bat in your buckle or are you just happy to have me
  • Psionic Roshambo @ Psionic Roshambo:
    Wonder "Woman" lol you wonder if they are a woman?
  • Psionic Roshambo @ Psionic Roshambo:
    The Riddler has questions...
  • K3Nv2 @ K3Nv2:
    Played a little of snow day glad I didn't spend $30
  • K3Nv2 @ K3Nv2:
    It's asthetic is okay maybe a good $10 grab
  • Psionic Roshambo @ Psionic Roshambo:
    Lol is it a game about doing cocaine?
  • K3Nv2 @ K3Nv2:
    Probably in pvp
  • Psionic Roshambo @ Psionic Roshambo:
    I tried Balders Gate II on the PS2 a few minutes ago, not bad lol
  • Psionic Roshambo @ Psionic Roshambo:
    My back catalog of games is like that scene at the end of Indiana Jones where the arc of the covenant is being stored in a giant ass warehouse
  • K3Nv2 @ K3Nv2:
    At least I can will my game catalog to family members
    +1
  • K3Nv2 @ K3Nv2:
    It's your problem now bitches
  • Psionic Roshambo @ Psionic Roshambo:
    Put it in your will that in order to receive any money they have to beat certain games, hard games and super shitty games...
  • Psionic Roshambo @ Psionic Roshambo:
    Say 20 bucks per Ninja Gaiden on the NES lol 60 bucks for all 3
  • Psionic Roshambo @ Psionic Roshambo:
    People you like "Beat level 1 of Ms Pacman" lol
  • K3Nv2 @ K3Nv2:
    Hello kitty ds is required
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    Beat Celebrity Death Match on the PS1 omg tried it earlier today .... Absolutely trash
  • Psionic Roshambo @ Psionic Roshambo:
    Like -37 out of 10
  • Psionic Roshambo @ Psionic Roshambo:
    One of the worst games I have ever played
  • K3Nv2 @ K3Nv2:
    Make them rank up every cod game out
  • K3Nv2 @ K3Nv2:
    "Now I know why he took his own life"
    K3Nv2 @ K3Nv2: "Now I know why he took his own life"