Hacking 5.4.0 progress

  • Thread starter Thread starter BootsLoader
  • Start date Start date
  • Views Views 477,963
  • Replies Replies 3,092
  • Likes Likes 13
5.4U: Is SSB (or any game) required to run the exploit and loadiine? Also, are these the correct (and only) steps:

Run Exploit
Return to home
Run Loadiine

Appreciate the help. Thank you.

Well it was confirmed that Loadiine V1 worked on 5.4.0 and since that's an early version of loadiine that only support loading games with SSB, then that's what you can do for now.
wj44 is updating his links, you could try Loadiine v4 there which doesn't requir SSB.
 
Last edited by oumoumad,
  • Like
Reactions: Masterwin
I'm just going to post this this here. Don't bother Dimok about it.
Hi,

there are several reasons why loadiine 4.0 would fail before even accessing the ELF file. For instance it is written only for 5.3.2 with many many hard coded addresses and very little dynamic address getters. I dont know what you already did change on the installer code but there are several things that need to be done. For example the following functions have their address hardcoded in there for 532 and there are none compiled in for 5.4.0.
#define SYSLaunchMiiStudio ((void (*)(void))0xDEAAEB8)
#define _Exit ((void (*)(void))0x0101cd70)
#define OSEffectiveToPhysical ((void* (*)(const void*))0x0101f510)
#define memcpy ((void * (*)(void * dest, const void * src, int num))0x1035a6c)
#define DCFlushRange ((void (*)(const void *addr, uint length))0x1023ee8)
#define ICInvalidateRange ((void (*)(const void *addr, uint length))0x1024010)
Additionally it has to be build against the new addresses for the Lib acquire and export find functions of 5.4 (if they changed, i dont know as I never looked into the libs of 5.4). I would suggest you to not try to port it for now, if that is your target. As it will be much much easier to port it with the next release. You need to change only 5 lib code addresses and 2 kernel code addresses instead of about 40-50 (or more). This of course can be done with a macro "#ifdef VER == ..." method to make it load the right content depending on the version of the system. It is the planned but I dont have the required addresses for the other firmware version. I could probably find them by searching for the opcodes of the functions but that method is not very efficient and there is no guarantee that the opcode are the same over all versions.

Another thing is that even if you manage to port the current installer part of loadiine (which is only a very small part and pretty easy to port) then loadiine itself still wont work as there are a lot of other parts that need to be ported which are way more complicated to port, especially the kernel code manipulation part. It really depends on how good your assembly in PPC is and how good you are in disassembling the kernel code. Anyway, the only thing you will achieve by reworking the installer alone is that the download of the ELF will work and it will freeze later on.

Since I dont have the libraries of 5.4.0 SDK I am not going to implement the support for 5.4.0. I prepared the code (that is not yet released) to make it easy porting it but unless someone is going to give me the SDK libs and kernel dump of 5.4.0 or even better, the needed addresses, I wont be doing it. The same goes for any other version than 5.3.2. Since 5.3.2 is the firmware I am on and the only firmware where I have the kernel dump and the libs of, that is what I support. Again it doesnt mean I dont want to support other firmwares. It only means I dont have the necessary files/resources for it and that I am not going to look around the internet for them just to add some support to a firmware I dont have and I can't even test against. Sorry.

Regards,
Dimok
 
  • Like
Reactions: Net-KILLER
I'm just going to post this this here. Don't bother Dimok about it.
Hi,

there are several reasons why loadiine 4.0 would fail before even accessing the ELF file. For instance it is written only for 5.3.2 with many many hard coded addresses and very little dynamic address getters. I dont know what you already did change on the installer code but there are several things that need to be done. For example the following functions have their address hardcoded in there for 532 and there are none compiled in for 5.4.0.
#define SYSLaunchMiiStudio ((void (*)(void))0xDEAAEB8)
#define _Exit ((void (*)(void))0x0101cd70)
#define OSEffectiveToPhysical ((void* (*)(const void*))0x0101f510)
#define memcpy ((void * (*)(void * dest, const void * src, int num))0x1035a6c)
#define DCFlushRange ((void (*)(const void *addr, uint length))0x1023ee8)
#define ICInvalidateRange ((void (*)(const void *addr, uint length))0x1024010)
Additionally it has to be build against the new addresses for the Lib acquire and export find functions of 5.4 (if they changed, i dont know as I never looked into the libs of 5.4). I would suggest you to not try to port it for now, if that is your target. As it will be much much easier to port it with the next release. You need to change only 5 lib code addresses and 2 kernel code addresses instead of about 40-50 (or more). This of course can be done with a macro "#ifdef VER == ..." method to make it load the right content depending on the version of the system. It is the planned but I dont have the required addresses for the other firmware version. I could probably find them by searching for the opcodes of the functions but that method is not very efficient and there is no guarantee that the opcode are the same over all versions.

Another thing is that even if you manage to port the current installer part of loadiine (which is only a very small part and pretty easy to port) then loadiine itself still wont work as there are a lot of other parts that need to be ported which are way more complicated to port, especially the kernel code manipulation part. It really depends on how good your assembly in PPC is and how good you are in disassembling the kernel code. Anyway, the only thing you will achieve by reworking the installer alone is that the download of the ELF will work and it will freeze later on.

Since I dont have the libraries of 5.4.0 SDK I am not going to implement the support for 5.4.0. I prepared the code (that is not yet released) to make it easy porting it but unless someone is going to give me the SDK libs and kernel dump of 5.4.0 or even better, the needed addresses, I wont be doing it. The same goes for any other version than 5.3.2. Since 5.3.2 is the firmware I am on and the only firmware where I have the kernel dump and the libs of, that is what I support. Again it doesnt mean I dont want to support other firmwares. It only means I dont have the necessary files/resources for it and that I am not going to look around the internet for them just to add some support to a firmware I dont have and I can't even test against. Sorry.

Regards,
Dimok
There are no changes in OSv11 between 5.4.0 and 5.3.2
 
I'm just going to post this this here. Don't bother Dimok about it.
Hi,

there are several reasons why loadiine 4.0 would fail before even accessing the ELF file. For instance it is written only for 5.3.2 with many many hard coded addresses and very little dynamic address getters. I dont know what you already did change on the installer code but there are several things that need to be done. For example the following functions have their address hardcoded in there for 532 and there are none compiled in for 5.4.0.
#define SYSLaunchMiiStudio ((void (*)(void))0xDEAAEB8)
#define _Exit ((void (*)(void))0x0101cd70)
#define OSEffectiveToPhysical ((void* (*)(const void*))0x0101f510)
#define memcpy ((void * (*)(void * dest, const void * src, int num))0x1035a6c)
#define DCFlushRange ((void (*)(const void *addr, uint length))0x1023ee8)
#define ICInvalidateRange ((void (*)(const void *addr, uint length))0x1024010)
Additionally it has to be build against the new addresses for the Lib acquire and export find functions of 5.4 (if they changed, i dont know as I never looked into the libs of 5.4). I would suggest you to not try to port it for now, if that is your target. As it will be much much easier to port it with the next release. You need to change only 5 lib code addresses and 2 kernel code addresses instead of about 40-50 (or more). This of course can be done with a macro "#ifdef VER == ..." method to make it load the right content depending on the version of the system. It is the planned but I dont have the required addresses for the other firmware version. I could probably find them by searching for the opcodes of the functions but that method is not very efficient and there is no guarantee that the opcode are the same over all versions.

Another thing is that even if you manage to port the current installer part of loadiine (which is only a very small part and pretty easy to port) then loadiine itself still wont work as there are a lot of other parts that need to be ported which are way more complicated to port, especially the kernel code manipulation part. It really depends on how good your assembly in PPC is and how good you are in disassembling the kernel code. Anyway, the only thing you will achieve by reworking the installer alone is that the download of the ELF will work and it will freeze later on.

Since I dont have the libraries of 5.4.0 SDK I am not going to implement the support for 5.4.0. I prepared the code (that is not yet released) to make it easy porting it but unless someone is going to give me the SDK libs and kernel dump of 5.4.0 or even better, the needed addresses, I wont be doing it. The same goes for any other version than 5.3.2. Since 5.3.2 is the firmware I am on and the only firmware where I have the kernel dump and the libs of, that is what I support. Again it doesnt mean I dont want to support other firmwares. It only means I dont have the necessary files/resources for it and that I am not going to look around the internet for them just to add some support to a firmware I dont have and I can't even test against. Sorry.

Regards,
Dimok
THX for sharing
 
Okay let's try to talk about something else than a backup loader, for example, how did you found a coreinit.h that support system up de 5.5.0 ? Because I did not found it and I tried to look well.

Is the interrest is only about backup loader here? :( I read about it absolutely everywhere...
 
Last edited by ,
We can acces the socket;rpl Dynamic Librairies, so we can pretty much do a port of TCPGecko or something like that.

A no GUI version of Loadiine that automaticallly launch a title.

1) It loads the "Loadiine" homebrew
2) This version of "Loadiine" contains a version title checker
3) If the title id is in the sdcard or usb hdd it launch the title (SYSLaunchTitle)
4) Enjoy !

This is an idea, a concept, calm down.
5.4.0 ou 5.5.0?
 
There are no changes in OSv11 between 5.4.0 and 5.3.2
Exactly. @dimok the only thing apparently broken seems to be the elf loading part, all of the kernel/library/sdk addresses are exactly the same. The problem seems to have been observed on earlier versions, too (https://gbatemp.net/threads/beta-loadiine-v3-for-wiiu-4-1-0-5-0-0-only.405822/page-4 , thanks Net-KILLER for pointing that out), but unfortunately the solution does not seem to be as simple or I am missing something, as the proposed fixes did not work for me. Could you help us out here please?

@romain337 The reason I am so keen on getting Loadiine to work is because it is a great homebrew launcher that could be used with wut(https://github.com/decaf-emu/wut). Developing homebrew the way that libwiiu allows us to currently is extremely limiting and frustrating.
 
  • Like
Reactions: wj44
Okay let's try to talk about something else than a backup loader, for example, how did you found a coreinit.h that support system up de 5.5.0 ? Because I did not found it and I tried to look well.

Is the interrest is only about backup loader here? :( I read about it absolutely everywhere...
Exactly, backups are the last thing we need to worry about. A decent homebrew launcher is what we need. Everything else will fall into place.
 
Okay let's try to talk about something else than a backup loader, for example, how did you found a coreinit.h that support system up de 5.5.0 ? Because I did not found it and I tried to look well.

Is the interrest is only about backup loader here? :( I read about it absolutely everywhere...
Use the one from the ZIP in the mp4 exploit thread from yesterday.
 
Sorry to bother again. It might be a question that'll completely fly across your head. :P
Where can I find a good tutorial or snippet of code to draw a targa-format image onto the screen? That is if the method has been made public?
 
You got run SSB in order to use loadiine v1 right? I got that game. I need the loadiine V1 mp4 in order to try this out and confirm it. Btw good job everyone guys. You made a very big progress for one day. I can't believe it :D :D :D
 
You got run SSB in order to use loadiine v1 right? I got that game. I need the loadiine V1 mp4 in order to try this out and confirm it. Btw good job everyone guys. You made a very big progress for one day. I can't believe it :D :D :D
Well, yeah, there has been a significant progress so far, but, i'm still waiting for Hykem to actually say something about this, it kinda worries me seeing how much time he hasn't been active in here...
 
Well, yeah, there has been a significant progress so far, but, i'm still waiting for Hykem to actually say something about this, it kinda worries me seeing how much time he hasn't been active in here...

Yeah but you can't always wait for other people to do work for you. Hykem may release his job but later. you got to be patient.
 
  • Like
Reactions: josh87402
Well, yeah, there has been a significant progress so far, but, i'm still waiting for Hykem to actually say something about this, it kinda worries me seeing how much time he hasn't been active in here...
Lol you definitely don't know Hykem, he has been absent for WAY longer than this in the past, and even developpers wouldn't hear from him for weeks ^^. Maybe you'll get a word from him this weekend, that's mostly when he's active in the forum.

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

Sorry to bother again. It might be a question that'll completely fly across your head. :P
Where can I find a good tutorial or snippet of code to draw a targa-format image onto the screen? That is if the method has been made public?
Trying to make a fake backup Loader? XD

Anyway lookup kasai07's source for his "loadiine flow" where he done exactly that :).
 

Site & Scene News

Popular threads in this forum