Line 30: |
Line 30: |
| ===Part A: Encrypted header=== | | ===Part A: Encrypted header=== |
| The header is encrypted by the SD key and SD IV. When decrypted, it contains the following structure: | | The header is encrypted by the SD key and SD IV. When decrypted, it contains the following structure: |
| + | (* means the field is discussed below) |
| + | |
| {| style="border-collapse: collapse; padding: 0.2em 0.2em 0.2em 0.2em;" | | {| style="border-collapse: collapse; padding: 0.2em 0.2em 0.2em 0.2em;" |
| |- style="background-color: #ddd;" | | |- style="background-color: #ddd;" |
Line 48: |
Line 50: |
| |- style="background-color: #ddd;" | | |- style="background-color: #ddd;" |
| | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x00C | | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x00C |
− | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x01D | + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x01B |
| | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 16 | | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 16 |
| | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | MD5 Hash of header | | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | MD5 Hash of header |
| |- style="background-color: #ddd;" | | |- style="background-color: #ddd;" |
| | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x01C | | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x01C |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x02B |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 16 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | unknown_1 (crypto usage, md5 hash of something?) |
| + | |- style="background-color: #ddd;" |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x02C |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x02F |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 4 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | * unknown_2 |
| + | |- style="background-color: #ddd;" |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x030 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x037 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 8 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | * Title-ID-reference_1 |
| + | |- style="background-color: #ddd;" |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x038 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x03F |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 8 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | * Title-ID-reference_2 |
| + | |- style="background-color: #ddd;" |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x040 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x07F |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 64 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | * Zeroes_1 |
| + | |- style="background-color: #ddd;" |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x080 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x09B |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 28 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | * IMET data |
| + | |- style="background-color: #ddd;" |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x09C |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x0EF |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 42 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Channel name in Unicode, padded with 00 (Japanse version -- can be empty). |
| + | |- style="background-color: #ddd;" |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x0F0 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x143 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 42 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Channel name in Unicode, padded with 00 (English version). |
| + | |- style="background-color: #ddd;" |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x144 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x197 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 42 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Channel name in Unicode, padded with 00 (German version). |
| + | |- style="background-color: #ddd;" |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x198 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x1EB |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 42 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Channel name in Unicode, padded with 00 (French version). |
| + | |- style="background-color: #ddd;" |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x1EC |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x23F |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 42 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Channel name in Unicode, padded with 00 (Spanish version). |
| + | |- style="background-color: #ddd;" |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x240 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x293 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 42 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Channel name in Unicode, padded with 00 (Italian version). |
| + | |- style="background-color: #ddd;" |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x294 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x2E7 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 42 |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Channel name in Unicode, padded with 00 (Dutch version). |
| + | |- style="background-color: #ddd;" |
| + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x2E8 |
| | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x63F | | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x63F |
− | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 0x624 | + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 0x358 |
− | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | As of yet un-analyzed data | + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | * Padding (normally zero) |
| |} | | |} |
| | | |