SELF File Format: Difference between revisions
Jump to navigation
Jump to search
Line 39: | Line 39: | ||
typedef struct | typedef struct | ||
{ | { | ||
unsigned | unsigned short unknown_1; | ||
unsigned short unknown_2; | |||
unsigned int padding; | |||
unsigned long long offset; | unsigned long long offset; | ||
unsigned long long encrypted_compressed_size | unsigned long long encrypted_compressed_size |
Revision as of 23:14, 25 February 2019
ORBIS SELFs from PS4 have a somewhat different structure from the ones we see on vita and ps3. The structure is documented as follows:
SELF Header Structure
Offset | Size | Description | Notes |
---|---|---|---|
0 | 4 | Magic | 4F 15 3D 1D |
0x4 | 4 | Unknown | Always 00 01 01 12 |
0x8 | 1 | Unknown | Always 1 |
0x9 | 1 | Key Type | 0xC SK, 0xF SL, 0xE SM, 0x8 EBOOT and ELF and SELF, 0x9 SPRX and SDLL and SEXE |
0xA | 2 | Padding | |
0xC | 2 | MetaData Offset | |
0xE | 2 | MetaData Size | |
0x10 | 4 | Size of SELF | |
0x14 | 4 | Padding | |
0x18 | 2 | Unknown | 1 SK, 2 SL and Modules, 4 SK Elfs, 6 .selfs, 2 .sdll, 6 .sprx, 6 ShellCore, 6 eboot.bin, 2 sexe |
0x1A | 2 | Unknown | Always 0x22 |
0x1C | 4 | Padding |
Self Segment Structure
At 0x20 the following structure follows
typedef struct { unsigned short unknown_1; unsigned short unknown_2; unsigned int padding; unsigned long long offset; unsigned long long encrypted_compressed_size unsigned long long decrypted_decompressed_size ; } SEGMENT_TABLE;