Homebrew [WIP] fully functioning custom eShop

RedDucks

Well-Known Member
OP
Member
Joined
Apr 28, 2017
Messages
103
Trophies
0
Age
26
XP
799
Country
United States
Overview:

Over the past week or so I have been doing research on the WiiU eShop, and it's associated servers, and I now have a working SOAP (NUS), eShop, and CDN replacement. This works with the built-in eShop title on the WiiU and can serve any type of title. This includes legitimate titles from NUS, modded titles, homebrew apps (assuming they are titles), etc.

This replacement server is part of a larger project, named Pretendo, which has been on hiatus until now. The project is now back in full swing and we have begun work on a full Nintendo Network replacement again.

At the moment the servers are not publicly accessible, as I must do a rewrite of the account servers to support SOAP accounts. There is also no IDBE server replacement yet, so titles with non-legitimate title IDs will show up in "Download Management" with an icon of "?" and a name of "Could not get title information", however this is just visual and the title is fine.

This is still very much a WIP, and will continue to be updated to make the UI better and add more titles to the database

Demo:



Disclaimer:

While this does technically mean that pirated content can be served through this server, it was not designed with this in mind. Eventually this will be open source, and then anyone can setup a server to serve whatever they want. I am not responsible for anything anyone does with this once it's open source
 

CatmanFan

Anxious and regretful
Member
Joined
Aug 14, 2016
Messages
1,966
Trophies
0
Website
www.youtube.com
XP
2,665
Country
Morocco
Wow, this is mind-blowing! Can't wait to see what people can do with this, perhaps servers to host homebrew or injected VC titles, or GC forwarders even. Great work! :)
 

Zense

Well-Known Member
Member
Joined
Apr 20, 2008
Messages
1,975
Trophies
3
XP
4,567
Country
Italy
I appreciate this as a replacement and preservation for when Nintendo sadly closes the Wii U eShop.
 

RedDucks

Well-Known Member
OP
Member
Joined
Apr 28, 2017
Messages
103
Trophies
0
Age
26
XP
799
Country
United States
I appreciate this as a replacement and preservation for when Nintendo sadly closes the Wii U eShop.

To be clear; while this will preserve the functionality of the eShop in general, it will not preserve the titles from the eShop. We will not be hosting any kind of pirated content. I will be open sourcing these servers, and what someone does with them after that is out of my control. But know that we will not be hosting anything besides homebrew and possibly mods

Wow, this is mind-blowing! Can't wait to see what people can do with this, perhaps servers to host homebrew or injected VC titles, or GC forwarders even. Great work! :)

This looks amazing!

Thanks!
 
  • Like
Reactions: Zense

Zense

Well-Known Member
Member
Joined
Apr 20, 2008
Messages
1,975
Trophies
3
XP
4,567
Country
Italy
To be clear; while this will preserve the functionality of the eShop in general, it will not preserve the titles from the eShop. We will not be hosting any kind of pirated content. I will be open sourcing these servers, and what someone does with them after that is out of my control. But know that we will not be hosting anything besides homebrew and possibly mods
Thanks!
Yeah, I was more refering to having the functionality there as a sort of esthetic, even if it "just" would serve to host homebrew. It'll be nice to have 5-10 years down the line when you want to visit and see how the wii u eshop was.

Will you use your own graphics and will it be possible to add the official nintendo one by getting the files off your own wii u? The same question goes for wii u eshop music too. Personally I just want the experience to be as authentic as it can be.
 

RedDucks

Well-Known Member
OP
Member
Joined
Apr 28, 2017
Messages
103
Trophies
0
Age
26
XP
799
Country
United States
Yeah, I was more refering to having the functionality there as a sort of esthetic, even if it "just" would serve to host homebrew. It'll be nice to have 5-10 years down the line when you want to visit and see how the wii u eshop was.

Will you use your own graphics and will it be possible to add the official nintendo one by getting the files off your own wii u? The same question goes for wii u eshop music too. Personally I just want the experience to be as authentic as it can be.

To avoid any issues with Nintendo's branding or the use of any code written by Nintendo (even though the eShop is just a glorified web browser so the UI is just html/css/js), we will almost certainly be using our own design. Though I have dumped the assets for the official UI, so I suppose in the future it's possible to replicate it. But atm we have no plans of using the original design. As for the music, that is actually built in to the eShop app itself. For now that will stay, because we see no reason to replace it and no issues with not doing so.

Edit: spelling
 
Last edited by RedDucks,
  • Like
Reactions: CatmanFan and Zense

RedDucks

Well-Known Member
OP
Member
Joined
Apr 28, 2017
Messages
103
Trophies
0
Age
26
XP
799
Country
United States

dojafoja

life elevated
Member
Joined
Jan 2, 2014
Messages
695
Trophies
1
XP
2,637
Country
So I'm assuming that we just set up a debugging proxy like Charles or Fiddler and remap all requests going to the eshop servers and point them to the root of the custom Grove server? Then I set the WiiU to use a proxy connection that points to the IP and port of my debugging proxy. I tried playing around last night but couldn't get it working, probably because I was too tired and only played with it for 10 or 15 minutes. Is there something more I need to do? I remapped requests going to the URL beginning with geish or something like that. I assumed that was the server that handles the GUI since it was one of the first requests. I also know that I need to setup the SOAP server but I was just trying to get the UI to load
 
Last edited by dojafoja,

RedDucks

Well-Known Member
OP
Member
Joined
Apr 28, 2017
Messages
103
Trophies
0
Age
26
XP
799
Country
United States
So I'm assuming that we just set up a debugging proxy like Charles or Fiddler and remap all requests going to the eshop servers and point them to the root of the custom Grove server? Then I set the WiiU to use a proxy connection that points to the IP and port of my debugging proxy. I tried playing around last night but couldn't get it working, probably because I was too tired and only played with it for 10 or 15 minutes. Is there something more I need to do? I remapped requests going to the URL beginning with geish or something like that. I assumed that was the server that handles the GUI since it was one of the first requests. I also know that I need to setup the SOAP server but I was just trying to get the UI to load

You can connect to the custom servers in multiple ways. You can either use a proxy or patch the URLs with homebrew. Using a proxy is probably the easiest way, so I'll just give a step-by-step guide on how to use Fiddler to connect to the custom servers, though you might be able to apply these steps to Charles as well with some tweaking. An important note though, that when Pretendo fully launches we will be using SSL+URL patches via homebrew to remove the need for a proxy, so these steps are really only used for development purposes

  1. Setup Fiddler and your WiiU to allow for MITMing. You can find steps to set things up here https://github.com/PretendoNetwork/Pretendo/blob/master/CONTRIBUTING.md#getting-started
  2. In the above steps, change account.nintendo.net to geisha-wup.cdn.nintendo.net
  3. In the above steps, change address.of.account.server to http://eshop.pretendo.cc
  4. Edit your systems hosts file (For Windows this is located at C:\Windows\System32\drivers\etc and most be opened with admin perms to save changes) and add the following line: 192.168.0.12 eshop.pretendo.cc
  5. Change 192.168.0.12 to whatever the IP address is that hosts the Grove server (192.168.0.12 is just my local IP)
What this basically did was allow your console to send traffic to Fiddler that it can fully understand. Fiddler is then told "hey, if the address is geisha-wup.cdn.nintendo.net then set the address to http://eshop.pretendo.cc". Editing your hosts file then told your computer "hey, if you get a request to eshop.pretendo.cc then use this IP address"

It is important that the servers are requested with domains that they understand. Each server is designed to only handle certain subdomains (meaning, the Grove server will only return the eShop UI when requested with a domain with the subdomain "eshop", hence changing the hosts file)

When you connect your WiiU to the Fiddler server and open the eShop, it should try to request geisha-wup.cdn.nintendo.net but it should then get redirected to http://eshop.pretendo.cc which in turn uses the IP address you set earlier to point to your local Grove server

It's important to note though that you must pack your homebrew apps to use title IDs of legitimate titles, at the moment. This is because of a required request made to the IDBE server which will fail when using a non-legitimate title ID. A patch was made for this by one of our developers but it is still in development and has not been released yet. Until then, you can use NUSPacker to pack your homebrew using a title ID of a legitimate title and it should work fine

If you, or anyone else, needs further help setting up any of these servers you can reach us on the Pretendo Discord server :)

 

dojafoja

life elevated
Member
Joined
Jan 2, 2014
Messages
695
Trophies
1
XP
2,637
Country
Thanks for the write-up! The issue I was having was definitely with the SSL certificates, definitely not my strong point. After reading the guide you linked, I see that we would need to install the proxies root certificate on the console. There's obviously a risk of brick doing stuff like that and I've also had ftpiiu do some wonky stuff to me in the past and i only trust it about 99% Would CBHC be able to recover from such a brick? I'm thinking it wouldsince it would probably lock up well after CBHC autoboots but I'm not sure.

THANKS for your hard work and efforts on this one. This is cool and opens the door for things like installing titles on the console without needing an SD card, hosting custom mods and homebrew, etc. I can't imagine how much fun it was though sniffing all that network traffic and breaking it down to the point of writing a custom server and API to work with the eshop client. Very nice work!
 
Last edited by dojafoja,

RedDucks

Well-Known Member
OP
Member
Joined
Apr 28, 2017
Messages
103
Trophies
0
Age
26
XP
799
Country
United States
Thanks for the write-up! The issue I was having was definitely with the SSL certificates, definitely not my strong point. After reading the guide you linked, I see that we would need to install the proxies root certificate on the console. There's obviously a risk of brick doing stuff like that and I've also had ftpiiu do some wonky stuff to me in the past and i only trust it about 99% Would CBHC be able to recover from such a brick? I'm thinking it wouldsince it would probably lock up well after CBHC autoboots but I'm not sure.

THANKS for your hard work and efforts on this one. This is cool and opens the door for things like installing titles on the console without needing an SD card, hosting custom mods and homebrew, etc. I can't imagine how much fun it was though sniffing all that network traffic and breaking it down to the point of writing a custom server and API to work with the eshop client. Very nice work!

There is definitely always a brick risk when you start poking around the console. However, so long as you are careful there shouldn't be any problems. I have been using replaced certificates for around a year now and haven't had any issues. If you are really, really, worried I suppose you could always use redNAND. Or you can modify our SSL+URL patch homebrew to patch whatever URL you want and not bother with certificates at all, but that requires you to compile the homebrew yourself
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    DinohScene @ DinohScene: I'll give you the D