Editing Loaders
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 8: | Line 8: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Loader !! Location !! Type | ! Loader !! Location !! Type !! Remarks | ||
|- | |- | ||
| bootldr || [[Flash]] || Boot Loader | | bootldr || [[Flash]] || Boot Loader || primary loader from chain of trust | ||
|- | |- | ||
| metldr || [[Flash]] || Meta Loader | | metldr || [[Flash]] || Meta Loader || aka asecure_loader. Loads other loaders | ||
|- | |- | ||
| appldr || [[Boot_Order#CoreOS_PKG_Filelisting|CoreOS]] || Application Loader | | appldr || [[Boot_Order#CoreOS_PKG_Filelisting|CoreOS]] || Application Loader || loads userspace [f]selfs e.g. [[VSH|vsh.self]], videoplayer_plugin.sprx, disc EBOOT.BINs, NPDRM EBOOT.BINs | ||
|- | |- | ||
| isoldr || [[Boot_Order#CoreOS_PKG_Filelisting|CoreOS]] || Isolation Loader | | isoldr || [[Boot_Order#CoreOS_PKG_Filelisting|CoreOS]] || Isolation Loader || loading [[Iso module|isolated SPU modules]] | ||
|- | |- | ||
| lv1ldr || [[Boot_Order#CoreOS_PKG_Filelisting|CoreOS]] || Hypervisor Loader | | lv1ldr || [[Boot_Order#CoreOS_PKG_Filelisting|CoreOS]] || Hypervisor Loader || loads [[lv1.self]] ([[Hypervisor_Reverse_Engineering|Hypervisor]]) | ||
|- | |- | ||
| lv2ldr || [[Boot_Order#CoreOS_PKG_Filelisting|CoreOS]] || Supervisor Loader | | lv2ldr || [[Boot_Order#CoreOS_PKG_Filelisting|CoreOS]] || Supervisor Loader || loads lv2_kernel.self (Supervisor kernel) | ||
|- | |- | ||
|} | |} | ||
Line 156: | Line 156: | ||
=== appldr === | === appldr === | ||
Used to verify and decrypt | Used to verify and decrypt userland program/data segments (system libraries, vsh and its modules, games, edat and sdat files)<BR> | ||
Allows to authenticate fselfs by following Target_ids from EID0: 0x81, 0x82, 0xA0. | Allows to authenticate fselfs by following Target_ids from EID0: 0x81, 0x82, 0xA0. | ||
Line 166: | Line 166: | ||
| 0x3E000 || Wait flag || If (flag==0){wait;} // use 0xFF00000000ULL | | 0x3E000 || Wait flag || If (flag==0){wait;} // use 0xFF00000000ULL | ||
|- | |- | ||
| 0x3E400 || EID0 || | | 0x3E400 || EID0 || | ||
|- | |- | ||
| 0x3E800 || Arguments || | | 0x3E800 || Arguments || | ||
|- | |- | ||
| 0x3EC00 || QA-Flag Info|| u64 qaflag_exist_flag //If existed, set to 0, otherwise -1<BR>u64 unk0 //always 0<BR>u8[0x50] qa_token<BR>u8[0x2A] qa_token_signature<BR>u8[0x6] padding | | 0x3EC00 || QA-Flag Info|| u64 qaflag_exist_flag //If existed, set to 0, otherwise -1<BR>u64 unk0 //always 0<BR>u8[0x50] qa_token<BR>u8[0x2A] qa_token_signature<BR>u8[0x6] padding | ||
Line 231: | Line 231: | ||
| u64 || self_header_addr || | | u64 || self_header_addr || | ||
|- | |- | ||
| u64 || program_segment_addr | | u64 || program_segment_addr || | ||
|- | |- | ||
| | | u64 || program_segment_index || | ||
|- | |- | ||
| u64 || destination_addr || | | u64 || destination_addr || | ||
Line 242: | Line 240: | ||
|- | |- | ||
| u64 || flag || some flags // flag & 0xFFFF must be <=2 for APP, 3 for UNK7/seven, 4 for NPDRM_APP, 5 for EDAT | | u64 || flag || some flags // flag & 0xFFFF must be <=2 for APP, 3 for UNK7/seven, 4 for NPDRM_APP, 5 for EDAT | ||
|} | |} | ||