Super dumb account server returning static data, just enough to satisfy Cemu.
Related repositories:
- https://github.com/mrexodia/SMMNEX
- https://github.com/mrexodia/NintendoClients/tree/friends-server
- https://github.com/Stary2001/nex-dissector
Here is an example Pretendo++.ini
:
[OAuth20]
access_token=1234567890abcdef1234567890abcdef
refresh_token=fedcba0987654321fedcba0987654321fedcba12
expires_in=3600
; Friends
[00003200]
host=127.0.0.1
port=60000
pid=1337
password=password
token=RlJJRU5EU0ZSSUVORFNGUklFTkRTRlJJRU5EU0ZSSUVORFNGUklFTkRTRlJJRU5EU0ZSSUVORFNGUklFTkRTRlJJRU5EU0ZSSUVORFNGUklFTkRTRlJJRU5EU0ZSSUVORFNGUklFTkRTRlJJRU5EU0ZSSUVORFNGUklFTkRTRlI=
; SMM
[1018DB00]
host=127.0.0.1
port=59900
pid=1337
password=password
token=U01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU01NU00=
Rules -> Customize Rules... at the end of the OnBeforeRequest
method add the following:
if (oSession.HostnameIs("account.nintendo.net"))
{
if (oSession.HTTPMethodIs("CONNECT"))
{
// This is just a fake tunnel for CONNECT requests
oSession["x-replywithtunnel"] = "PretendoTunnel";
return;
}
oSession.fullUrl = "http://127.0.0.1:8383" + oSession.PathAndQuery;
}
else if(oSession.HostnameIs("wup-ama.app.nintendo.net"))
{
if (oSession.HTTPMethodIs("CONNECT"))
{
// This is just a fake tunnel for CONNECT requests
oSession["x-replywithtunnel"] = "PretendoTunnel";
return;
}
oSession.fullUrl = "http://127.0.0.1:8383" + oSession.PathAndQuery;
}
Next up, export the Fiddler root certificate:
- In Fiddler, open Tools > Options
- In the HTTPS tab turn on HTTPS Connects
- Enable HTTPS decrypting
- Ignore server certificate errors
- In the Connections tab tick Allow remote computers to connect
- Turn off Act as system proxy on startup
- Back in the HTTPS tab click Actions > Export Root Certificate to Desktop, which will give you
FiddlerRoot.cer
As long as you don't force Cemu/WiiU to connect to Fiddler as a proxy you will not interfere with online services.
You can use the CemuMagic
module on Cemu 1.15.8 from this repository: https://github.com/mrexodia/AppInitHook/tree/cemu
Inject CemuMagic.dll into Cemu.exe before startup (either by using the AppInitHook framework, or by other methods).
You need to copy your FiddlerRoot.cer
into Cemu\BIN\mlc01\sys\title\0005001b\10054000\content\scerts\
with the following names:
CACERT_NINTENDO_CA.der.proxy
CACERT_NINTENDO_CA_G2.der.proxy
CACERT_NINTENDO_CA_G3.der.proxy
CACERT_NINTENDO_CLASS2_CA.der.proxy
CACERT_NINTENDO_CLASS2_CA_G2.der.proxy
CACERT_NINTENDO_CLASS2_CA_G3.der.proxy
You also have to set Cemu up to work online. This method will not interfere with online services if you are not injecting CemuMagic.dll
.
You can use DebugView to see the logs for CemuMagic
.