Second Loader: Difference between revisions

From Vita Developer wiki
Jump to navigation Jump to search
 
(4 intermediate revisions by the same user not shown)
Line 32: Line 32:
|-
|-
| 0xD1C0 || 0x140 || Random Padding || Must be filled to multiple of 0x200 bytes
| 0xD1C0 || 0x140 || Random Padding || Must be filled to multiple of 0x200 bytes
|-
|}
= MetaData Info =
{| class="wikitable"
! 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 =
{| class="wikitable"
! 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 ||
|-
|-
|}
|}

Latest revision as of 15:16, 27 October 2020

The main loader of the Secure Kernel. The header contained in it contains the following information:

Header Info[edit | edit source]

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[edit | edit source]

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[edit | edit source]

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