4 ms·
Performance is not bad. It's clear they aren't using Nintendo's TCP stack, as it was notoriously terrible on the Wii.
by jandrese 2y ago
Performance is not bad. It's clear they aren't using Nintendo's TCP stack, as it was notoriously terrible on the Wii.
- jkrejcha 2y agoYeah also in general the WFC code is a bit dated and not very secure. This actually reminds me of two very interesting bugs which used together basically make it so that you can play WFC games (basically just Mario Kart Wii, nowadays) as simple as changing the DNS settings on your Wii 1. Firstly, as long as you set a particular field in the certificate, it just is completely happy with an invalid cert. (This was fixed by the NWC library by the time it was released In Korea, notably, although this bug was present in DWC for a long while. (Aside: I actually suspect that this bug was present in the RVL SDK (used by games and such on the PPC), but also is caused by the same cause as the signing/Trucha bug[1]. While the latter is a IOS specific exploit, it wouldn't surprise me if the same code was used in both this and DWC (the networking library). Given that Mario Kart Wii has an associated IOS version of IOS36[2], but DWC code isn't part of IOS, my hunch is that they used either the same or similar validation logic OR both bugs were squashed a part of some security related cleanup. I haven't actually gone through the reverse engineering effort to confirm this yet, but given that this doesn't work on the Korean version of MKW, which notably uses a later version of IOS and other libraries, my hunch is that those bugs are one in the same. The fix timing at least seems interesting to me. Anyway side note over.) 2. The networking library also has an RCE caused by a buffer overrun, basically from the first message it has a length that's unchecked and the DWC library blindly memcpys data from the packet. This is kinda why it's important to have some sort of patchset that fixes these bugs (because the operating system and libraries ship with the game and you can't update those except for in memory). The culmination of this is all you have to do is 1. Change your DNS settings on your unmodified Wii to point to a specified DNS server. 2. Start Mario Kart Wii (probably, although some other games work too), open up WFC So that the game... 3. Does a DNS lookup for the WFC server which intentionally links to a 3rd party server 4. Passes validation of a bad cert which intentionally sets one of the fields to a null value in order to make the Wii accept it 5. Receives a message that contains an exploit which patches the game in memory to fix the known RCEs and setup URLs to resolve to different domains instead of using the old WFC ones among other things (such as cheat reporting that is all client-side based, etc) all so you can play Wii games (probably Mario Kart Wii) online 11 years after WFC shut down for good :) [1]: https://wiibrew.org/wiki/Signing_bug https://wiibrew.org/wiki/Signing_bug [2]: https://wiibrew.org/wiki/IOS36 https://wiibrew.org/wiki/IOS36
- Starlevel004 2y agoNintendo's networking is bad no matter what console somehow
- addisonj 2y agoI had the awesome, yet terrible experience to work on an obscure Nintendo feature. By networking, I am assuming you mean console stack... which I had experience with myself, and yeah... not great. But even more, their web services (more than 10 years ago at this point, hopefully better now) were so, so bad. The thing that struck me then, and continues to seem true, is how much they just don't really seem to care and that they singularly focus at being good at innovating where it matters: games and differentiated hardware. Young me thought they were silly for being so "behind the times". Older me respects it more.
- SuperHeavy256 2y agoI respect the prioritization. It doesn't actually need the best web services, it really only needs enough to play Mario kart online.
- goosedragons 2y agoFor a while they told you open all UDP ports for the Nintendo Switch. Now they just tell you to open 1024 to 65535.
- tom1337 2y agoSource for everybody not believing this: https://en-americas-support.nintendo.com/app/answers/detail/a_id/22272/~/how-to-set-up-a-routers-port-forwarding-for-a-nintendo-switch-console https://en-americas-support.nintendo.com/app/answers/detail/... (Point 4 under "On a PC or smart device")
- hamish-b 2y agoInteresting! Can you perhaps elaborate a bit more on what you saw at the time, in the sense of why it was so bad (Nintendo lawyers, look away)?