Secure Loader: Difference between revisions

From PS5 Developer wiki
Jump to navigation Jump to search
m (CelesteBlue moved page Oberon Secure Loader to Secure Loader: Coherence with PS4 and PS Vita wiki)
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Header Info =
The PS5 Secure Loader is the Initial Program Loader running on the [[AMD Platform Security Processor]].
 
See also the [https://www.psdevwiki.com/ps4/Secure_Loader PS4 Secure Loader].
 
= Structure =
 
== Header ==


{| class="wikitable"
{| class="wikitable"
Line 10: Line 16:
| 0x8 || 4 || Entry Point || Little Endian (0xB0)
| 0x8 || 4 || Entry Point || Little Endian (0xB0)
|-
|-
| 0xC || 4 || Payload Size || Little Endian (e.g 0x631D0)
| 0xC || 4 || Body Size || Little Endian (e.g 0x631D0)
|-
|-
| 0x10 || 0x10 || Padding || Zeroes
| 0x10 || 0x10 || Padding || Zeroes
|-
|-
| 0x20 || 0x20 || SHA256 of the decrypted payload || Verified from 0x400 to 0x635D0
| 0x20 || 0x20 || SHA256 of the decrypted body || Verified from 0x400 to 0x635D0
|-
|-
| 0x40 || 0xB0 || Padding || Ascii Quoted Numbers And Zeroes
| 0x40 || 0xB0 || Padding || ASCII Quoted Numbers And Zeroes
|-
|-
| 0xF0 || 1 || Flag? || 0x80
| 0xF0 || 1 || Flag? || 0x80
Line 22: Line 28:
| 0xF1 || 0x2D || Padding ||
| 0xF1 || 0x2D || Padding ||
|-
|-
| 0x11E || 2 || Security Revision? || 00 07 (1.05-6.02) / 00 FF (6.50) / 03 FF (7.00-7-61) / 0F FF (8.00-9.00) / 3F FF (9.20-9.XX)
| 0x11E || 2 || Security Revision? || 00 07 (1.05-6.02) / 00 FF (6.50) / 03 FF (7.00-7-61) / 0F FF (8.00-8.60) / 3F FF (9.00-9.60) / FF FF (10.00-10.XX)
|-
|-
| 0x120 || 0x20 || Revision Nonce || (Likely) SHA256 of the IPL's revision, from this point onward, Oberon IPL is encrypted with two layers of CBC crypto
| 0x120 || 0x20 || Revision Nonce || (Likely) SHA256 of the IPL's revision, from this point onward, IPL is encrypted with two layers of AES-CBC crypto
|-
|-
| 0x140 || 0xC0 || Metadata? ||
| 0x140 || 0xC0 || MetaData? || May contain MetaData body (keyrings) and MetaData digest
|-
|-
| 0x200 || 0x200 || RSA4096 Header Signature? ||
| 0x200 || 0x200 || RSA4096 Header Signature? ||
|-
|-
| 0x400 || 0x631D0 || Ipl body ||
| 0x400 || 0x631D0 || Body ||
|-
|-
|}
|}


= Table of Nonces =
= Revision Nonce Collection =


{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
! Version !! Hash !! Notes
! Revision !! Hash !! Versions Supported !! Notes
|-
|-
| F0 || {{hex|6F 20 B4 5B 4F CB 66 67 71 5F 4B 0E E4 90 7C C2 CB 41 47 0A 59 B2 26 E0 D4 F0 D0 1B 67 E8 80 50}} ||
| F0 || {{hex|6F 20 B4 5B 4F CB 66 67 71 5F 4B 0E E4 90 7C C2 CB 41 47 0A 59 B2 26 E0 D4 F0 D0 1B 67 E8 80 50}} || ||
|-
|-
| E0 || {{hex|FD 50 C2 9C C4 AE 88 21 1B CA 0B C5 09 1C 1D BF D6 A4 DC 07 DB F8 C0 B2 A6 17 FD 1D BE E0 3A 3B}} ||
| E0 || {{hex|FD 50 C2 9C C4 AE 88 21 1B CA 0B C5 09 1C 1D BF D6 A4 DC 07 DB F8 C0 B2 A6 17 FD 1D BE E0 3A 3B}} || ||
|-
|-
| D0 || {{hex|1C B3 91 12 79 BA 5E 83 42 C9 C9 6B 2F C5 49 B3 DE BF D7 3D D6 B6 97 4E 07 84 DF 7B E8 BD 21 39}} ||
| D0 || {{hex|1C B3 91 12 79 BA 5E 83 42 C9 C9 6B 2F C5 49 B3 DE BF D7 3D D6 B6 97 4E 07 84 DF 7B E8 BD 21 39}} || ||
|-
|-
| C0 || {{hex|B3 59 79 B6 23 19 7C 34 6E E6 B1 62 8E 18 98 96 8C 66 DC DF 1C 96 5F 4C 77 07 30 07 78 4C 4E 6A}} ||
| C0 || {{hex|B3 59 79 B6 23 19 7C 34 6E E6 B1 62 8E 18 98 96 8C 66 DC DF 1C 96 5F 4C 77 07 30 07 78 4C 4E 6A}} || ||
|-
|-
| B0 || {{hex|55 18 14 A6 79 F1 4D 09 31 8B EC 56 DD EA 43 44 55 27 9A C4 7D 0C 5C 7E 14 91 D6 EF B2 1F 2B 48}} ||
| B0 || {{hex|55 18 14 A6 79 F1 4D 09 31 8B EC 56 DD EA 43 44 55 27 9A C4 7D 0C 5C 7E 14 91 D6 EF B2 1F 2B 48}} || ||
|-
|-
|}
|}

Latest revision as of 12:44, 30 October 2024

The PS5 Secure Loader is the Initial Program Loader running on the AMD Platform Security Processor.

See also the PS4 Secure Loader.

Structure[edit | edit source]

Header[edit | edit source]

Offset Size Description Notes
0x0 4 Magic E4 DB 7C 02
0x4 4 Header Size Little Endian (0x400)
0x8 4 Entry Point Little Endian (0xB0)
0xC 4 Body Size Little Endian (e.g 0x631D0)
0x10 0x10 Padding Zeroes
0x20 0x20 SHA256 of the decrypted body Verified from 0x400 to 0x635D0
0x40 0xB0 Padding ASCII Quoted Numbers And Zeroes
0xF0 1 Flag? 0x80
0xF1 0x2D Padding
0x11E 2 Security Revision? 00 07 (1.05-6.02) / 00 FF (6.50) / 03 FF (7.00-7-61) / 0F FF (8.00-8.60) / 3F FF (9.00-9.60) / FF FF (10.00-10.XX)
0x120 0x20 Revision Nonce (Likely) SHA256 of the IPL's revision, from this point onward, IPL is encrypted with two layers of AES-CBC crypto
0x140 0xC0 MetaData? May contain MetaData body (keyrings) and MetaData digest
0x200 0x200 RSA4096 Header Signature?
0x400 0x631D0 Body

Revision Nonce Collection[edit | edit source]

Revision Hash Versions Supported Notes
F0 6F 20 B4 5B 4F CB 66 67 71 5F 4B 0E E4 90 7C C2 CB 41 47 0A 59 B2 26 E0 D4 F0 D0 1B 67 E8 80 50
E0 FD 50 C2 9C C4 AE 88 21 1B CA 0B C5 09 1C 1D BF D6 A4 DC 07 DB F8 C0 B2 A6 17 FD 1D BE E0 3A 3B
D0 1C B3 91 12 79 BA 5E 83 42 C9 C9 6B 2F C5 49 B3 DE BF D7 3D D6 B6 97 4E 07 84 DF 7B E8 BD 21 39
C0 B3 59 79 B6 23 19 7C 34 6E E6 B1 62 8E 18 98 96 8C 66 DC DF 1C 96 5F 4C 77 07 30 07 78 4C 4E 6A
B0 55 18 14 A6 79 F1 4D 09 31 8B EC 56 DD EA 43 44 55 27 9A C4 7D 0C 5C 7E 14 91 D6 EF B2 1F 2B 48