Editing Secure Loader
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
SAMU IPL, codenamed as 80000001, is the main loader of the Secure Kernel (80010001) <br> | |||
The header contained in it contains the following information: | |||
= Header Info = | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 16: | Line 13: | ||
| 0x8 || 4 || Entry Point || Little Endian (0x100) | | 0x8 || 4 || Entry Point || Little Endian (0x100) | ||
|- | |- | ||
| 0xC || 4 || | | 0xC || 4 || Payload Size || Little Endian (e.g 0x232D0) | ||
|- | |- | ||
| 0x10 || 0x10 || Padding || Zeroes | | 0x10 || 0x10 || Padding || Zeroes | ||
|- | |- | ||
| 0x20 || 0x20 || SHA256 of the decrypted | | 0x20 || 0x20 || SHA256 of the decrypted payload || Verified from 0x280 to 0x23550 | ||
|- | |- | ||
| 0x40 || 0xE0 || Padding || | | 0x40 || 0xE0 || Padding || Ascii Zeroes | ||
|- | |- | ||
| 0x120 || 0x20 || Revision Nonce || (Likely) SHA256 of the IPL's revision, from this point onward, IPL is encrypted with two layers of | | 0x120 || 0x20 || Revision Nonce || (Likely) SHA256 of the IPL's revision, from this point onward, SAM IPL is encrypted with two layers of CBC crypto | ||
|- | |- | ||
| 0x140 || 0x40 || | | 0x140 || 0x40 || Metadata || | ||
|- | |- | ||
| 0x180 || 0x100 || | | 0x180 || 0x100 || RSA Header Signature || Verified with rsa modulus from SAMU BootROM from 0 to 0x180 | ||
|- | |- | ||
| 0x280 || 0x232D0 || | | 0x280 || 0x232D0 || Payload || | ||
|- | |- | ||
| 0x23550 || 0x100 || RSA Footer Signature || Verified from header + body (somewhere else, likely PUP SM Manager) | | 0x23550 || 0x100 || RSA Footer Signature || Verified from header + body (somewhere else, likely PUP SM Manager) | ||
|- | |||
|} | |} | ||
= MetaData Info = | |||
{| class="wikitable" | {| class="wikitable" | ||
! Offset !! Size !! Description !! Notes | ! Offset !! Size !! Description !! Notes | ||
|- | |- | ||
| 0x0 || 0x20 || MetaData Body || Contains | | 0x0 || 0x20 || MetaData Body || Contains Keyslot Keys | ||
|- | |||
| 0x20 || 0x20 || HDR + MetaData SHA256HMAC || SHA256 of hdr plus metadata (HMAC) | |||
|- | |- | ||
|} | |} | ||
= MetaData Body = | |||
{| class="wikitable" | {| class="wikitable" | ||
! Offset !! Size !! Description !! Notes | ! Offset !! Size !! Description !! Notes | ||
|- | |- | ||
| 0x0 || 0x20 || | | 0x0 || 0x20 || KeySlot 1 || | ||
|- | |||
|} | |} | ||
= Revision Nonce Collection = | = Revision Nonce Collection = | ||
* TODO | |||