Hacking Wii U Hacking & Homebrew Discussion

  • Thread starter Thread starter filfat
  • Start date Start date
  • Views Views 5,122,192
  • Replies Replies 21,104
  • Likes Likes 29
Guys, I've got a little problem, I hope someone has an idea how to fix it!
I installed ipython for testing out the RPC commands but unfortunately I didin't get ipython to run, so I uninstalled it.
After that I wasn't able to compile the code anymore, so I:
- Reinstalled Python
- Redownloaded libwiiu
Still no success. This is the error msg, thanks in advance :) :
Edit: (I use cygwin, forgot to mention that ^^)

Code:
$ python build.py examples/helloworld/
mkdir -p ./bin
# Build findcode
powerpc-eabi-gcc -nostdinc -fno-builtin -c -DVER=532+ ./src/findcode532.c
./src/findcode532.c: In function 'start':
./src/findcode532.c:32:14: warning: comparison between pointer and integer [enabled by default]
  if (codebuf == 0x20000000) OSFatal("Code not found");
              ^
./src/findcode532.c:35:18: warning: assignment makes integer from pointer without a cast [enabled by default]
  ropbuf[0x318/4] = &ropbuf[0xa0/4];
                  ^
./src/findcode532.c:36:17: warning: assignment makes integer from pointer without a cast [enabled by default]
  ropbuf[0xdc/4] = codebuf + 1;
                 ^
#-Wa,-a,-ad
cp -r ./findcode532.o ./bin
rm ./findcode532.o
powerpc-eabi-ld -Ttext 1800000 --oformat binary -o ./bin/findcode532.bin ./bin/findcode532.o
c:\devkitPro\devkitPPC\bin\powerpc-eabi-ld.exe: cannot find ./bin/findcode532.o: Permission denied
make: *** [findcode532] Error 1
mkdir -p ./bin/532/
mkdir -p ./bin/500/
mkdir -p ./bin/410/
mkdir -p ./bin/400/
mkdir -p ./bin/310/
mkdir -p ./bin/300/
mkdir -p ./bin/210/
mkdir -p ./bin/200/
powerpc-eabi-gcc -nostdinc -fno-builtin -c -DVER=532  ./src/*.c
#-Wa,-a,-ad
cp -r ./*.o ./bin/532
rm ./*.o
powerpc-eabi-gcc -nostdinc -fno-builtin -c -DVER=500  ./src/*.c
#-Wa,-a,-ad
cp -r ./*.o ./bin/500
rm ./*.o
powerpc-eabi-gcc -nostdinc -fno-builtin -c -DVER=410 ./src/*.c
#-Wa,-a,-ad
cp -r ./*.o ./bin/410
rm ./*.o
powerpc-eabi-gcc -nostdinc -fno-builtin -c -DVER=400 ./src/*.c
#-Wa,-a,-ad
cp -r ./*.o ./bin/400
rm ./*.o
powerpc-eabi-gcc -nostdinc -fno-builtin -c -DVER=310 ./src/*.c
#-Wa,-a,-ad
cp -r ./*.o ./bin/310
rm ./*.o
powerpc-eabi-gcc -nostdinc -fno-builtin -c -DVER=300 ./src/*.c
#-Wa,-a,-ad
cp -r ./*.o ./bin/300
rm ./*.o
powerpc-eabi-gcc -nostdinc -fno-builtin -c -DVER=210 ./src/*.c
#-Wa,-a,-ad
cp -r ./*.o ./bin/210
rm ./*.o
powerpc-eabi-gcc -nostdinc -fno-builtin -c -DVER=200 ./src/*.c
#-Wa,-a,-ad
cp -r ./*.o ./bin/200
rm ./*.o
mkdir -p ./bin/
powerpc-eabi-gcc -nostdinc -fno-builtin -c -DVER=532 src/*.c
#-Wa,-a,-ad
cp -r ./*.o ./bin
rm ./*.o
powerpc-eabi-ld -Ttext 1800000 --oformat binary -o ./bin/code532.bin ./bin/loader.o ./../../libwiiu/bin/532/*.o `find ./bin -name "*.o" ! -name "loader.o"`
c:\devkitPro\devkitPPC\bin\powerpc-eabi-ld.exe: cannot find ./bin/loader.o: Permission denied
c:\devkitPro\devkitPPC\bin\powerpc-eabi-ld.exe: cannot find ./../../libwiiu/bin/532/draw.o: Permission denied
c:\devkitPro\devkitPPC\bin\powerpc-eabi-ld.exe: cannot find ./../../libwiiu/bin/532/math.o: Permission denied
c:\devkitPro\devkitPPC\bin\powerpc-eabi-ld.exe: cannot find ./../../libwiiu/bin/532/string.o: Permission denied
c:\devkitPro\devkitPPC\bin\powerpc-eabi-ld.exe: cannot find ./../../libwiiu/bin/532/uhs.o: Permission denied
make: *** [main532] Error 1
Traceback (most recent call last):
  File "C:\devkitpro\libwiiu\framework\generate_html.py", line 169, in <module>
    main()
  File "C:\devkitpro\libwiiu\framework\generate_html.py", line 68, in main
    code = open(ar1, 'rb').read()
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\devkitpro\\libwiiu\\examples/helloworld/bin\\code532.bin'
Traceback (most recent call last):
  File "C:\devkitpro\libwiiu\framework\generate_html.py", line 169, in <module>
    main()
  File "C:\devkitpro\libwiiu\framework\generate_html.py", line 68, in main
    code = open(ar1, 'rb').read()
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\devkitpro\\libwiiu\\examples/helloworld/bin\\code500.bin'
Traceback (most recent call last):
  File "C:\devkitpro\libwiiu\framework\generate_html.py", line 169, in <module>
    main()
  File "C:\devkitpro\libwiiu\framework\generate_html.py", line 68, in main
    code = open(ar1, 'rb').read()
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\devkitpro\\libwiiu\\examples/helloworld/bin\\code410.bin'
Traceback (most recent call last):
  File "C:\devkitpro\libwiiu\framework\generate_html.py", line 169, in <module>
    main()
  File "C:\devkitpro\libwiiu\framework\generate_html.py", line 68, in main
    code = open(ar1, 'rb').read()
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\devkitpro\\libwiiu\\examples/helloworld/bin\\code400.bin'
Traceback (most recent call last):
  File "C:\devkitpro\libwiiu\framework\generate_html.py", line 169, in <module>
    main()
  File "C:\devkitpro\libwiiu\framework\generate_html.py", line 68, in main
    code = open(ar1, 'rb').read()
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\devkitpro\\libwiiu\\examples/helloworld/bin\\code310.bin'
Traceback (most recent call last):
  File "C:\devkitpro\libwiiu\framework\generate_html.py", line 169, in <module>
    main()
  File "C:\devkitpro\libwiiu\framework\generate_html.py", line 68, in main
    code = open(ar1, 'rb').read()
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\devkitpro\\libwiiu\\examples/helloworld/bin\\code300.bin'
Traceback (most recent call last):
  File "C:\devkitpro\libwiiu\framework\generate_html.py", line 169, in <module>
    main()
  File "C:\devkitpro\libwiiu\framework\generate_html.py", line 68, in main
    code = open(ar1, 'rb').read()
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\devkitpro\\libwiiu\\examples/helloworld/bin\\code210.bin'
Traceback (most recent call last):
  File "C:\devkitpro\libwiiu\framework\generate_html.py", line 169, in <module>
    main()
  File "C:\devkitpro\libwiiu\framework\generate_html.py", line 68, in main
    code = open(ar1, 'rb').read()
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\devkitpro\\libwiiu\\examples/helloworld/bin\\code200.bin'
Building for your windows platform...
 
Guys, I've got a little problem, I hope someone has an idea how to fix it!
I installed ipython for testing out the RPC commands but unfortunately I didin't get ipython to run, so I uninstalled it.
After that I wasn't able to compile the code anymore, so I:
- Reinstalled Python
- Redownloaded libwiiu
Still no success. This is the error msg, thanks in advance :) :
Edit: (I use cygwin, forgot to mention that ^^)

I got that too, I am using Windows 10 Insider Preview 10130. (Maybe because of the update things messed up)
I couldn't fix it no matter what I tried, but luckily I had a Windows 8 VMWare going, on which it worked fine. (For development dotNet stuff that doesn't work on Windows 10 yet :/ ).
(Btw, the Windows 10 10130 update also removed VMWare Workstation for me, actually... I had to reinstall it, so it definitely messes stuff up.)

But a real solution, I don't know yet.
 
I got that too, I am using Windows 10 Insider Preview 10130. (Maybe because of the update things messed up)
I couldn't fix it no matter what I tried, but luckily I had a Windows 8 VMWare going, on which it worked fine. (For development dotNet stuff that doesn't work on Windows 10 yet :/ ).
(Btw, the Windows 10 10130 update also removed VMWare Workstation for me, actually... I had to reinstall it, so it definitely messes stuff up.)

But a real solution, I don't know yet.
Well, I'm using a non-VM Win7, so I don't think it has sth to do with that! :D

The code gets compiled actually, but neither linked nor put into an html file!
(there's a *.o file for every *.c code file)
 
you need to compile it in administrator mode, I'm in windows 10 build 10130 on my main pc too btw.
 
you need to compile it in administrator mode, I'm in windows 10 build 10130 on my main pc too btw.
I didn't do it before...
Whatever, I'll try! :D
Only right-clicking cygwin launcher terminal as admin, right? :D

Edit:
Nope, still doesn't work! :(
 
I need to use the actual CMD for me, also for windows 10 I need to set my python installation to windows 8 compatibility mode to use it at all.
Well cmd gives me all sorts of other weird errors.
The "No permission" error is a little more comfortable to me! :D
 
It turns out that the key expansion algorithm I was following to program my AES tools was broken, so I had to track down the information I needed to fix it. This key expander should work now, for those that want to play with it:

Code:
#include <stdio.h>

unsigned int rotate(char round),rcon(FILE *fp, char num);
void sub(FILE *fp, char round);
unsigned int ek[44];

unsigned int rotate(char round)
{
    unsigned int returnme=(unsigned int)(ek[round]<<8)|(ek[round]>>24);
    return returnme;
}

void sub(FILE *fp, char round)
{
    unsigned char loop,byte[4];
    for(loop=0;loop<4;loop+=1)
    {
        byte[loop]=(ek[round]>>(24-8*loop))&0xff;
        fseek(fp,byte[loop],SEEK_SET);
        byte[loop]=fgetc(fp);
    }
    ek[round]=(unsigned int)((byte[0]<<24)|(byte[1]<<16)|(byte[2]<<8)|byte[3]);
}

unsigned int rcon(FILE *fp, char num)
{
    unsigned int returnme;
    fseek(fp,0x100+4*num,SEEK_SET);
    returnme=(unsigned int)((fgetc(fp)<<24)|(fgetc(fp)<<16)|(fgetc(fp)<<8)|fgetc(fp));
    return returnme;
}

int main(int argc, char **argv)
{
    FILE *data, *k;
    char x,val=0;
    data=fopen("static.bin","rb");
    k=fopen(argv[1],"rb");
    for(x=0;x<44;x+=1)
    {
        if(x<4)
        {
            ek[x]=(unsigned int)((fgetc(k)<<24)|(fgetc(k)<<16)|(fgetc(k)<<8)|fgetc(k));
        }
        else
        {
            if(x&3)
            {
                ek[x]=ek[x-1]^ek[x-4];
            }
            else
            {
                ek[x]=rotate(x-1);
                sub(data, x);
                ek[x]=ek[x]^rcon(data, val)^ek[x-4];
                val+=1;
            }
        }
        if((x+1)%4==0){printf("Round Key %08X%08X%08X%08X",ek[x-3],ek[x-2],ek[x-1],ek[x]);getchar();}
    }
    return 0;
}

You need to paste this data in a hex editor and save it as static.bin and put it in the same folder:

Code:
63 7C 77 7B F2 6B 6F C5 30 01 67 2B FE D7 AB 76
CA 82 C9 7D FA 59 47 F0 AD D4 A2 AF 9C A4 72 C0
B7 FD 93 26 36 3F F7 CC 34 A5 E5 F1 71 D8 31 15
04 C7 23 C3 18 96 05 9A 07 12 80 E2 EB 27 B2 75
09 83 2C 1A 1B 6E 5A A0 52 3B D6 B3 29 E3 2F 84
53 D1 00 ED 20 FC B1 5B 6A CB BE 39 4A 4C 58 CF
D0 EF AA FB 43 4D 33 85 45 F9 02 7F 50 3C 9F A8
51 A3 40 8F 92 9D 38 F5 BC B6 DA 21 10 FF F3 D2
CD 0C 13 EC 5F 97 44 17 C4 A7 7E 3D 64 5D 19 73
60 81 4F DC 22 2A 90 88 46 EE B8 14 DE 5E 0B DB
E0 32 3A 0A 49 06 24 5C C2 D3 AC 62 91 95 E4 79
E7 C8 37 6D 8D D5 4E A9 6C 56 F4 EA 65 7A AE 08
BA 78 25 2E 1C A6 B4 C6 E8 DD 74 1F 4B BD 8B 8A
70 3E B5 66 48 03 F6 0E 61 35 57 B9 86 C1 1D 9E
E1 F8 98 11 69 D9 8E 94 9B 1E 87 E9 CE 55 28 DF
8C A1 89 0D BF E6 42 68 41 99 2D 0F B0 54 BB 16
01 00 00 00 02 00 00 00 04 00 00 00 08 00 00 00
10 00 00 00 20 00 00 00 40 00 00 00 80 00 00 00
1B 00 00 00 36 00 00 00 6C 00 00 00 D8 00 00 00
AB 00 00 00 4D 00 00 00 9A 00 00 00

And paste the key you want to expand in your hex editor and save it to a file as well in that folder. Then, you have to launch the tool from console. So make a batch file if you're on Windows and save it in that folder:

Code:
@echo off
expand key.bin
pause
(Replace "expand" with whatever the executable was compiled as and "key.bin" with whatever the key was saved as.)
Then double-click the batch file. You have to launch it this way so you can copy and paste each Round Key. Hit Enter to be shown the next one. If you're using it correctly, this is what the Wii U common key looks like expanded: (first Round Key omitted, because it looks the same as it)

Code:
Round Key lolno
Round Key ECFEB5D08965177B5BAE1AC9240CAC9F
Round Key 106F6EE6990A799DC2A46354E6A8CFCB
Round Key D6E571684FEF08F58D4B6BA16BE3A46A
Round Key CFAC731780437BE20D08104366EBB429
Round Key 3621D624B662ADC6BB6ABD85DD8109AC
Round Key 1A2047E5AC42EA23172857A6CAA95E0A
Round Key 89782091253ACAB232129D14F8BBC31E
Round Key E35652D0C66C9862F47E05760CC5C668
Round Key 5EE2172E988E8F4C6CF08A3A60354C52
Round Key FECB17FE664598B20AB512886A805EDA
 
I will tell to you my case, I have tried every URL I`ve seen over the issue and does not work any.

When the browser loads "payload" console freezes. I'm in 5.3.2. EU, put the update via internet before Splatoon be released.

The Exploits are region free?

I do not understand why I`cant see the Hello World or load the PONG. Any Ideas? Thanks for the work.
 
I will tell to you my case, I have tried every URL I`ve seen over the issue and does not work any.

When the browser loads "payload" console freezes. I'm in 5.3.2. EU, put the update via internet before Splatoon be released.

The Exploits are region free?

I do not understand why I`cant see the Hello World or load the PONG. Any Ideas? Thanks for the work.
You must have only one tab open and you must write it manually in the URL Bar!
 
  • Like
Reactions: ploggy
I will tell to you my case, I have tried every URL I`ve seen over the issue and does not work any.

When the browser loads "payload" console freezes. I'm in 5.3.2. EU, put the update via internet before Splatoon be released.

The Exploits are region free?

I do not understand why I`cant see the Hello World or load the PONG. Any Ideas? Thanks for the work.
Try what wj44 said, or you can bookmark them. Either works. For some reason, it doesn't like it when you open it from a link.
 
I just tried to run the exploits for 2.1.0 with a local server (XAMPP), but that neither doesn't work.

Can anyone compile the latest libwiiu and host it or test it out on their 2.1.0 WiiU?

I've probably made some mistake on some address. I had to port it blindly, only knowing the base addresses of the binaries.
If you wish to help debug the exploit chain, please send me a PM.
 
  • Like
Reactions: Adr990
I just tested some GX2 functions and most seem to just load forever, GX2Shutdown for example does somewhat succeed as in you see the internet browser picture again which is like in between it loading but it never returns, GX2SetDefaultState and GX2SetupContextStateEx get stuck as well so you cant seem to start a new state. On a sidenote I found simple things like GX2SetTVEnable and GX2SetDRCEnable work just fine, you can toggle the tv and gamepad video being displayed at any time. GX2Invalidate also has no problem preparing your buffers or whatever.
 

Site & Scene News

Popular threads in this forum