Difference between revisions of "Mii Maker"

From 3dbrew
Jump to navigation Jump to search
(added link to expalin about Mii ID)
Line 7: Line 7:
 
== Mii QR Code format ==
 
== Mii QR Code format ==
  
3DS Mii QR is a standard 57x57 pixel Level 10 High ECC QR code with 'Mii' logo in center (refer to [http://www.denso-wave.com/qrcode Denso-Wave Inc] web site for QR Code format specifications). It contain 112 byte of binary data. 3DS seems to have fully implemented QR-code decoder, as it can interpret such Mii binary data being encoded even in the smallest possible for that data size Level 6 Low ECC QR code. The data itself is ciphered, algorithm is unknown yet.
+
3DS Mii QR is a standard 57x57 pixel Level 10 High ECC QR code with 'Mii' logo in center (refer to [http://www.denso-wave.com/qrcode Denso-Wave Inc] web site for QR Code format specifications). It contain 112 byte of binary data. 3DS seems to have fully implemented QR-code decoder, as it can interpret such Mii binary data being encoded even in the smallest possible for that data size Level 6 Low ECC QR code. The data itself is encrypted, presumably AES-CTR since some xorpads can be determined from known plaintext here. The CTR might be based on data stored here?
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 33: Line 33:
 
| 0x1A
 
| 0x1A
 
| 0x14
 
| 0x14
| UTF-16 Mii Name
+
| UCS-2 Mii Name
 
|-
 
|-
 
| 0x2E
 
| 0x2E
Line 41: Line 41:
 
| 0x48
 
| 0x48
 
| 0x14
 
| 0x14
| UTF-16 Author Name
+
| UCS-2 Author Name
 
|-
 
|-
 
| 0x5C
 
| 0x5C
Line 53: Line 53:
 
| 0x60
 
| 0x60
 
| 0x10
 
| 0x10
| Checksum (Hash)
+
| AES-CCM MAC?
 
|}
 
|}
  
 
* Codes made from the same 3DS for the same Mii are encrypted with the same xorpad (you can recreate it by xoring with known values from this table).
 
* Codes made from the same 3DS for the same Mii are encrypted with the same xorpad (you can recreate it by xoring with known values from this table).

Revision as of 08:38, 8 February 2012

Mii Maker lets you create Miis, like Wii Mii Channel. Here you can transfer Miis locally from other 3DSes, or from Wii Mii Channel. 3DS Miis can't be transfered to Wii Mii Channel, only from Wii.

Wii Mii Channel transfer protocol

The Wii beacons are similar to the usual multi-cart NDS beacons, except: beacon_type is zero, and payload size is 0x14. The payload data is just the Wii UCS-2 nickname, with some extra unused zero data. The usual multi-cast NDS protocol is used for sending the 3DS nick to the Wii. After many keep-alive frames, it eventually sends a bunch of frames, each containing the whole Mii. There's a 6-byte header, followed by Mii data. At the end of these frames like most NDS frames is the 0200 byte marker.

Mii QR Code format

3DS Mii QR is a standard 57x57 pixel Level 10 High ECC QR code with 'Mii' logo in center (refer to Denso-Wave Inc web site for QR Code format specifications). It contain 112 byte of binary data. 3DS seems to have fully implemented QR-code decoder, as it can interpret such Mii binary data being encoded even in the smallest possible for that data size Level 6 Low ECC QR code. The data itself is encrypted, presumably AES-CTR since some xorpads can be determined from known plaintext here. The CTR might be based on data stored here?

Offset Length
0x0 0x4 MiiID [1]
0x4 0x4 High 4 octets of MAC address [2]
0x8 0x10 unknown
0x18 0x2 Bit-mapped: Birthday (4bit-day,5bit-month), Sex, Shirt, ??
0x1A 0x14 UCS-2 Mii Name
0x2E 0x1A unknown
0x48 0x14 UCS-2 Author Name
0x5C 0x2 unknown
0x5E 0x2 unknown (seems like the start of the checksum)
0x60 0x10 AES-CCM MAC?
  • Codes made from the same 3DS for the same Mii are encrypted with the same xorpad (you can recreate it by xoring with known values from this table).