SLB2: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
SLB2 is the format used to store the encrypted bootloaders on the device.
SLB2 is the format used to store the encrypted bootloaders on the device. See also [[SLSK]].


== Structure ==
== Structure ==


See [[http://www.psdevwiki.com/ps4/SLB2_structure SLB2 structure]]
See [http://www.psdevwiki.com/ps4/SLB2#Structure|SLB2 structure].


== SLB2 embedded ENC Files ==
== SLB2 embedded files in PS Vita PUP SPKG ==


On 3.50 reset, 3.60 retail:
* second_loader.enc
* second_loader.enp_, size: 0xD400 bytes
* second_loader.enp
* second_loader.enp, size: 0xD400 bytes
* secure_kernel.enc
* secure_kernel.enp_, size: 0x8400 bytes
* secure_kernel.enp
* secure_kernel.enp, size: 0x8400 bytes
* secure_kernel.xxx (FW 0.931.010 only, and maybe earlier)
* kernel_boot_loader.self
* kprx_auth_sm.self
* prog_rvk.srvk


=== ENC file structure ===
== SLB2 embedded files in PS Vita eMMC sloader partition ==
 
* second_loader.enp_
* second_loader.enp
* secure_kernel.enp_
* secure_kernel.enp
* secure_kernel.xxx (FW 0.931.010 only, and maybe earlier)
* kernel_boot_loader.self
* kprx_auth_sm.self
* prog_rvk.srvk


{| class="wikitable"
{| class="wikitable"
|-
|-
! Offset !! Size !! Description
! Name
|-
! Earliest Known Version
| 0x0 || 0x4 || <code>0x64B2C8E5</code> Magic
! Comments
|-
| 0x4 || 0x4 || Data segment location
|-
|-
| 0x8 || 0x4 || Unknown
| kernel_boot_loader.self
| 0.931.010
| [[SELF]] that contains ARM [[SKBL]] and [[ARZL]]-compressed ARM [[NSKBL]] as ELF segments
|-
|-
| 0xC || 0x4 || Unknown/Zero
| kprx_auth_sm.self
| 0.931.010
| [[Secure Modules|Secure Module]] ran on the [[Cmep|cmep processor]] to decrypt SELFs
|-
|-
| 0x10 || 0x4 || Data size
| prog_rvk.srvk
| 0.931.010
| [[Certified File]] that contains a [[SELF]] revocation list
|-
|-
| 0x14 || 0xC || Unknown
| second_loader.enp
| 0.931.010
| [[Second Loader]]
|-
|-
| 0x20 || 0x20 || Data segment SHA256
| second_loader.enp_
| 0.931.010
| Related to second_loader.enp in some way, likely for personalization
|-
|-
| 0x40 || 0x10 || System Software version in ASCII (ex: "0000360000000000")
| secure_kernel.enp
| 0.931.010
| [[Secure Kernel]]
|-
|-
| 0x50 || 0x90 || Zero
| secure_kernel.enp_
| 0.931.010
| Related to secure_kernel.enp in some way, likely for personalization
|-
|-
| 0xE0 || 0x1E0 || Encrypted Header
| secure_kernel.xxx
| 0.931.010
| Prototype [[Secure Kernel]] encrypted differently than secure_kernel.enc
|}
|}


The last 0x340 bytes is a footer that likely contains a signed MAC of the plaintext data.


[[Category:Formats]]
[[Category:Formats]]

Latest revision as of 04:46, 10 November 2024

SLB2 is the format used to store the encrypted bootloaders on the device. See also SLSK.

Structure

See structure.

SLB2 embedded files in PS Vita PUP SPKG

  • second_loader.enc
  • second_loader.enp
  • secure_kernel.enc
  • secure_kernel.enp
  • secure_kernel.xxx (FW 0.931.010 only, and maybe earlier)
  • kernel_boot_loader.self
  • kprx_auth_sm.self
  • prog_rvk.srvk

SLB2 embedded files in PS Vita eMMC sloader partition

  • second_loader.enp_
  • second_loader.enp
  • secure_kernel.enp_
  • secure_kernel.enp
  • secure_kernel.xxx (FW 0.931.010 only, and maybe earlier)
  • kernel_boot_loader.self
  • kprx_auth_sm.self
  • prog_rvk.srvk
Name Earliest Known Version Comments
kernel_boot_loader.self 0.931.010 SELF that contains ARM SKBL and ARZL-compressed ARM NSKBL as ELF segments
kprx_auth_sm.self 0.931.010 Secure Module ran on the cmep processor to decrypt SELFs
prog_rvk.srvk 0.931.010 Certified File that contains a SELF revocation list
second_loader.enp 0.931.010 Second Loader
second_loader.enp_ 0.931.010 Related to second_loader.enp in some way, likely for personalization
secure_kernel.enp 0.931.010 Secure Kernel
secure_kernel.enp_ 0.931.010 Related to secure_kernel.enp in some way, likely for personalization
secure_kernel.xxx 0.931.010 Prototype Secure Kernel encrypted differently than secure_kernel.enc