Editing SELF File Format
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: | ||
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 = | = SELF Header Structure = | ||
Line 10: | Line 11: | ||
| 0x4 || 4 || Unknown || Always 00 01 01 12 | | 0x4 || 4 || Unknown || Always 00 01 01 12 | ||
|- | |- | ||
| 0x8 || 1 || | | 0x8 || 1 || Unknown || Always 1 | ||
|- | |- | ||
| 0x9 || 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 || | | 0xA || 2 || Padding || | ||
|- | |- | ||
| 0xC || 2 || | | 0xC || 2 || MetaData Offset || | ||
|- | |- | ||
| 0xE || 2 || | | 0xE || 2 || MetaData Size || | ||
|- | |- | ||
| 0x10 || 4 || | | 0x10 || 4 || Size of SELF || | ||
|- | |- | ||
| 0x14 || 4 || Padding || | | 0x14 || 4 || Padding || | ||
|- | |- | ||
| 0x18 || 2 || | | 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 | | 0x1A || 2 || Unknown || Always 0x22 | ||
|- | |- | ||
| 0x1C || 4 || Padding || | | 0x1C || 4 || Padding || | ||
|- | |||
|} | |} | ||
== | == Self Segment Structure == | ||
At 0x20 the following structure follows | |||
<pre> | <pre> | ||
typedef struct { | typedef struct | ||
unsigned long long | { | ||
unsigned long long unknown; | |||
unsigned long long offset; | unsigned long long offset; | ||
unsigned long long encrypted_compressed_size | unsigned long long encrypted_compressed_size | ||
unsigned long long decrypted_decompressed_size; | unsigned long long decrypted_decompressed_size ; | ||
} SEGMENT_TABLE; | } SEGMENT_TABLE; | ||
</pre> | </pre> | ||