Line 46:
Line 46:
== Decrypted icon format ==
== Decrypted icon format ==
−
There's a SHA256 of the data at the beginning of the file. After the sha, there's some stuff that contains UTF-16 text of the game name and publisher, then image data begins.
+
{| class="wikitable"
+
! Offset
+
! Length
+
! Description
+
|-
+
| 0x0
+
| 0x20
+
| SHA256 hash of the rest of the data
+
|-
+
| 0x20
+
| 0x8
+
| Title ID
+
|-
+
| 0x28
+
| 0x18
+
| Unknown (See note 1 below)
+
|-
+
| 0x40
+
| 0x4
+
| Magic (ÀÀÀÀ)
+
|-
+
| 0x44
+
| 0xC
+
| Padding?
+
|-
+
| 0x50
+
| 0x2000
+
| UTF-16 blocks of text for the publisher/title name (See note 2 below)
+
|-
+
| 0x2050
+
| Remainder
+
| Original TGA
+
|}
−
The image data is given as Truevision TGA and usually starts 0x2050 bytes into the decrypted buffer.
+
'''Note 1:'''
+
The first 8 bytes of this section seem to always be relatively empty, where as the last 10 seem to always been some combination of the characters € and À.
−
128x128 pixels.
+
'''Examples:'''
−
Decryptor here: https://github.com/NexoDevelopment/idbe_decrypt/
+
+
# Breath of The Wild: https://i.imgur.com/qI9ehUQ.png
+
# Super Mario Maker: https://i.imgur.com/lNfcAM5.png
+
# Tekken Tag Tournament 2: https://i.imgur.com/8bJeD56.png
+
# Minecraft WiiU: https://i.imgur.com/fiC840J.png
+
+
+
'''Note 2:'''
+
It is only assumed that these string blocks start at offset 0x50. This is assumed because some games have plain-text strings starting here, where others have empty null bytes or seemingly garbage text. There also seems to be a strict format/rule set for how the publisher/title names are supposed to be laid out and structured, but it is not known at the moment.
+
+
'''Examples:'''
+
+
# New SUPER MARIO BROS. U + New SUPER LUIGI U: https://i.imgur.com/IeAAKuZ.png
+
# Super Mario Maker: https://i.imgur.com/Q6yWYiO.png
+
# Tekken Tag Tournament 2: https://i.imgur.com/f4ENuT5.png
+
# Minecraft WiiU: https://i.imgur.com/xZPCbdQ.png
+
+
+
Example decryptor here: https://github.com/NexoDevelopment/idbe_decrypt/