SLB2: Difference between revisions

From PS4 Developer wiki
Jump to navigation Jump to search
(Created page with "== SLB2 structure == thumb|PS4 SLB PUP container format - SKFU <source lang="c"> /* file structure of SLB goes as following,...")
 
Line 28: Line 28:
[[1.500.000]]:
[[1.500.000]]:
* http://www.mirrorcreator.com/files/056CKD7J/PS4UPDATE.PUP.rar_links
* http://www.mirrorcreator.com/files/056CKD7J/PS4UPDATE.PUP.rar_links
* https://mega.co.nz/#!WE8zUAyb!ZuZy5Vxrd4eCc4bTvFW_ZC7lu7Ub0tcdyE08xbJtrok (Main)
<span style="text-decoration: line-through;">* https://mega.co.nz/#!WE8zUAyb!ZuZy5Vxrd4eCc4bTvFW_ZC7lu7Ub0tcdyE08xbJtrok (Main)</span>
* https://mega.co.nz/#!GEdQkRRR!KSCLLQEGlWfQwsA3yBo3pkZqqqE6w-Jwk-5CvLd4GR0 (Recovery)
* https://mega.co.nz/#!GEdQkRRR!KSCLLQEGlWfQwsA3yBo3pkZqqqE6w-Jwk-5CvLd4GR0 (Recovery)



Revision as of 09:07, 18 December 2013

SLB2 structure

PS4 SLB PUP container format - SKFU
 /* file structure of SLB goes as following, if unpacking make sure you use 64 bits little endian on windows os */
 typedef unsigned char u8;
 typedef unsigned long int u32;
 typedef unsigned long long int u64;
 
 typedef struct{
 	u32 offset; //1 block is headersize (512 padded)
 	u32 cryptSize;
 	u64 reserved; //probably file alignment
 	u8 fileName[32];
 } fileEntry;
 
 typedef struct{
 	u32 magic; //SLB2
 	u64 version; //1
 	u32 fileCount;
 	u32 blockCount;
 	u8 reserved[12];
 	fileEntry files[10];
 } ps4pup;

SLB2 files to play with

1.500.000:

* https://mega.co.nz/#!WE8zUAyb!ZuZy5Vxrd4eCc4bTvFW_ZC7lu7Ub0tcdyE08xbJtrok (Main)

1.501.000 :

Unpacking

SLB PUP Files

These files are contained inside of SLB2 containers. They contain data pertaining to system firmware. All inner pup files begin with the same bytes:

Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000  4F 15 3D 1D 00 01 01 12 04 00 00 00              O.=.........


After that the bytes begin to differentiate. It could be a file count, or a hash used later on to decrypt the inner pup files.