Amiibo: Difference between revisions
No edit summary |
No edit summary |
||
| Line 7: | Line 7: | ||
[[File:Amiibonfctaginfo.png|500px]] | [[File:Amiibonfctaginfo.png|500px]] | ||
See here regarding the Amiibo [[Process_Services_PXI|encryption]]. | |||
The NFC tag for Amiibo is NTAG215. | The NFC tag for Amiibo is NTAG215. | ||
=== AUTH_PWD === | |||
The NFC 32bit password for the PWD_AUTH command(for enabling write-access to the encrypted NFC pages / etc), appears to be generated from unknown data that doesn't change when the Amiibo data pages are being updated. | The NFC 32bit password for the PWD_AUTH command(for enabling write-access to the encrypted NFC pages / etc), appears to be generated from unknown data that doesn't change when the Amiibo data pages are being updated. | ||
=== NTAG215 commands === | |||
==== Amiibo reading ==== | |||
* GET_VERSION | * GET_VERSION | ||
* READ, startpage=0x03 | * READ, startpage=0x03 | ||
| Line 23: | Line 25: | ||
Therefore, *all* pages from the Amiibo NFC tag are read, including the configuration pages at the end. | Therefore, *all* pages from the Amiibo NFC tag are read, including the configuration pages at the end. | ||
Each page is 4-bytes, | ==== Amiibo writing ==== | ||
* Use the same commands under the above reading section, then use those first 3 commands again. | |||
* Multiple WRITE commands for writing to pages 0x04..0x0C. The first byte for page[4] is zero here. | |||
* Multiple WRITE commands for writing to pages 0x20..0x81. | |||
* Use the last 3 commands from the above reading section. | |||
* WRITE: page=0x04, same data as before except first byte is 0xA5 this time. | |||
* FAST_READ: startpage=0x04, endpage=0x04 | |||
=== NFC pages === | |||
Each page is 4-bytes, there is a total of 0x87/135 pages. The following is the structure of the NFC pages: | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
| Line 44: | Line 55: | ||
| SHA256-HMAC over 0x1DF-bytes: first 3-bytes are from the last 3-bytes of page[12], the rest is over the first 0x1DC-bytes of the plaintext data following this hash(see page[13]). | | SHA256-HMAC over 0x1DF-bytes: first 3-bytes are from the last 3-bytes of page[12], the rest is over the first 0x1DC-bytes of the plaintext data following this hash(see page[13]). | ||
|- | |- | ||
| 12 | | 12/0x0C | ||
| 1 | | 1 | ||
| 0x30 | | 0x30 | ||
| Line 50: | Line 61: | ||
| Unknown. Last 3-bytes here are used with the above HMAC. | | Unknown. Last 3-bytes here are used with the above HMAC. | ||
|- | |- | ||
| 13 | | 13/0x0D | ||
| | | | ||
| 0x34 | | 0x34 | ||
| Line 57: | Line 68: | ||
|} | |} | ||
=== Structure of plaintext data from page13 === | ==== Structure of plaintext data from page13 ==== | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
| Line 77: | Line 88: | ||
|} | |} | ||
=== Structure of Amiibo settings === | ==== Structure of Amiibo settings ==== | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||