The main loader of the Secure Kernel.
The header contained in it contains the following information:
Offset |
Size |
Description |
Notes
|
0x0 |
4 |
Magic |
E5 C8 B2 64
|
0x4 |
4 |
Header Size |
Little Endian (0x2C0)
|
0x8 |
4 |
Entry Point |
Little Endian (0x100)
|
0xC |
4 |
Padding |
Zeroes
|
0x10 |
0x10 |
Payload Size |
Little Endian (e.g 0xCE00)
|
0x20 |
0x20 |
SHA256 of the decrypted payload |
|
0x40 |
0x10 |
Versioning |
Ascii 0000360000000000
|
0x50 |
0x90 |
Padding |
Zeroes
|
0xE0 |
0xE0 |
MetaData |
|
0x1C0 |
0x100 |
RSA Header Signature |
|
0x2C0 |
0xCE00 |
Payload |
|
0xD0C0 |
0x100 |
RSA Footer Signature |
|
0xD1C0 |
0x140 |
Random Padding |
Must be filled to multiple of 0x200 bytes
|
MetaData Info
Offset |
Size |
Description |
Notes
|
0x0 |
0xC0 |
MetaData Body |
Contains Keyslot Fail Keys up to certain point (3.69), Non Fail Keys afterwards (3.70+)
|
0xC0 |
0x20 |
HDR+ MetaData SHA256HMAC |
SHA256 of hdr plus metadata (HMAC)
|
MetaData Body
Offset |
Size |
Description |
Notes
|
0x0 |
0x20 |
KeySlot 1 |
|
0x20 |
0x20 |
Keyslot 2 |
|
0x40 |
0x20 |
Keyslot 3 |
|
0x60 |
0x20 |
Keyslot 4 |
|
0x80 |
0x20 |
Keyslot 5 |
|
0xA0 |
0x20 |
Keyslot 6 |
|