Talk:MK8 Network Protocol
Searching network dumps & videos
As I do not have a WiiU, I'm searching for Mario Kart 8 network dumps. Best is to make a network dump and a video the same time so I can see what happens. If you are able to dump MK8 network data and make a video, please do so, upload the dump and the video and post the download link here. -- Leseratte (talk) 06:50, 29 May 2014 (UTC)
- Leserratte, I think this will help you for sure. [1] --TheMetaPirate (talk) 08:55, 17 August 2014 (UTC)
- Leserratte, do you hang out in some IRC server/channel? I hace become interested in reverse engineering the mk8 network protocol and I am able to record network dumps of me playing mk8. Mgrandi (talk) 20:00, 18 September 2014 (UTC)
mgrandi's research
wireshark capture + videos
urls
In addition to the one URL that the wii u contacts when starting mario kart 8 / connecting online, it seems to contact all of these urls (some of them are just redirects to an amazon AWS instance it seems)
- mii-secure.account.nintendo.net
- 54.225.148.154 mii-secure-proxy-prod-lb-12465627.us-east-1.elb.amazonaws.com
- 69.25.139.186 ias.wup.shop.nintendo.net
- 111.168.21.82 nppl.app.nintendo.net
- 202.32.117.142 nncs1.app.nintendowifi.net
- 107.23.139.110 discovery.olv.nintendo.net
- 192.195.204.136 account.nintendo.net
- 202.32.117.143 nncs2.app.nintendowifi.net
- 69.25.139.194 tagaya.wup.shop.nintendo.net
- npvk.app.nintendo.net
- front-p01-1453423078.us-west-2.elb.amazonaws.com
- 69.25.139.185 ecs.wup.shop.nintendo.net
- api-us.olv.nintendo.net
certificates
In my wireshark capture the wii downloads 6 certificates, 5 of which are signed by the 6th, the nintendo CA root certificate Here is a zip of them (exported from a wiresharp capture), which includes
- account.nintendo.net
- *.app.nintendo.net
- *.olv.nintendo.net
- Nintendo CA - G3 (root certificate)
- Wii U Common Prod 1
- *.wup.shop.nintendo.net
string encoding
It seems that the game uses utf-16-be as its string encoding, as I noticed when racing, at the beginning, my wii u seems to send something like this to every racer i'm facing against: (Mark is my wii character's name )
000004A8 32 ab 98 64 01 00 00 00 1f de 16 5d 00 02 00 4c 2..d.... ...]...L 000004B8 00 00 00 00 01 15 44 0c 01 00 00 00 00 00 00 00 ......D. ........ 000004C8 02 00 03 03 30 5f 37 36 32 30 30 33 39 5f 31 00 ....0_76 20039_1. 000004D8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000004E8 00 00 00 00 00 4d 00 61 00 72 00 6b 00 00 00 00 .....M.a .r.k.... 000004F8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000508 00 00 00 00 04 00 00 00 19 8f 1e f8 7c b9 2b bd ........ ....|.+. 00000518 18 66 98 21 df 33 0d 73 a2 17 e1 a6 .f.!.3.s ....
>>> x="00 4d 00 61 00 72 00 6b".replace(" ", "")
>>> x
'004d00610072006b'
>>> import binascii
>>> y = binascii.unhexlify(x)
b'\x00M\x00a\x00r\x00k'
>>> y.decode("utf_16_be")
'Mark'