Modules

From Vita Development Wiki
Jump to navigation Jump to search

A PSP/PS3/PS Vita ELF is called a module.

A module is distinctive by its fingerprint (a sort of hash) and in most cases its name, but the same module name can be used in both the non-secure kernel and the secure kernel, for instance SceSysmem.

On PS Vita, most modules are loaded by the SceKernelModulemgr module, itself loaded by the NSKBL.

SceModuleInfo

It contains information on the module, and on its imports/exports.

Location

  • For non-stripped modules, SceModuleInfo structure is located in ".sceModuleInfo.rodata" memory block.
  • For ET_SCE_EXEC modules, when e_entry is not null, SceModuleInfo structure is located in text segment at offset e_entry. Else it is located in text segment (first LOAD segment) at offset Elf32_Phdr[text_seg_id].p_paddr - Elf32_Phdr[text_seg_id].p_offset.
  • For ET_SCE_RELEXEC modules, SceModuleInfo structure is located in the segment indexed by the upper two bits of e_entry of the ELF header. The structure is stored at the base offset of the segment plus the offset defined by the bottom 30 bits of e_entry.

Structure

Some fields are optional and can be set to zero. The other fields determine how this module is loaded and linked. All offset fields are formatted as follows: top 2 bits is an index to the segment to start at and bottom 30 bits is an offset from the segment start. Currently, the segment start index must match the segment that the module information structure is in.

Name Description
modattribute Attributes of the module. See #Module attribute
modversion Major version of the module (usually set to 1) followed by Minor version of the module (usually set to 1).
modname Name of the module. Null-terminated string.
infover SceModuleInfo version. Old name was "terminal" on PSP. Seen values are: 0 on PSP and PS3, 1 never seen, 2 on PS Vita FW 0.902, 3 on PS Vita FW 0.931.010, 6 on PS Vita FWs 0.940-3.740.011.
gp_value global pointer value for MIPS, TOC address (address of .toc) for PowerPC, always 0 for ARM.
ent_top Offset to top of exports array
ent_btm Offset to bottom of exports array
stub_top Offset to top of imports array
stub_btm Offset to bottom of imports array
dbg_fingerprint It was wrongly named module NID. It is a sort of hash to ensure integrity and versioning.
tls_start Offset to start of TLS (Thread Local Storage).
tls_filesz Certainly equals (tls_end - tls_start).
tls_memsz Certainly equals (tls_initialized_data_end - tls_start).
start_entry Offset to module_start function. -1 to disable.
stop_entry Offset to module_stop function. -1 to disable.
arm_exidx_top Offset to top of ARM EXIDX (optional)
arm_exidx_btm Offset to bottom of ARM EXIDX (optional)
arm_extab_top Offset to top of ARM EXTAB (optional)
arm_extab_btm Offset to bottom of ARM EXTAB (optional)
#define MODULE_NAME_MAX_LEN 27

typedef struct SceModuleInfo_common { // size is 0x20
  unsigned short modattribute;
  unsigned char modversion[2];
  char modname[MODULE_NAME_MAX_LEN];
  unsigned char infover;
} SceModuleInfo_common;

typedef struct SceModuleInfo_v0 { // size is 0x34
  SceModuleInfo_common c;
  Elf32_Addr gp_value;
  Elf32_Addr ent_top;
  Elf32_Addr ent_btm;
  Elf32_Addr stub_top;
  Elf32_Addr stub_btm;
} SceModuleInfo_v0;

typedef struct SceModuleInfo_v1 { // size is 0x40
  SceModuleInfo_common c;
  Elf32_Addr gp_value;
  Elf32_Addr ent_top;
  Elf32_Addr ent_btm;
  Elf32_Addr stub_top;
  Elf32_Addr stub_btm;
  Elf32_Word dbg_fingerprint;
  Elf32_Addr start_entry;
  Elf32_Addr stop_entry;
} SceModuleInfo_v1;

typedef struct SceModuleInfo_v2 { // size is 0x48
  SceModuleInfo_common c;
  Elf32_Addr gp_value;
  Elf32_Addr ent_top;
  Elf32_Addr ent_btm;
  Elf32_Addr stub_top;
  Elf32_Addr stub_btm;
  Elf32_Word dbg_fingerprint;
  Elf32_Addr start_entry;
  Elf32_Addr stop_entry;
  Elf32_Addr arm_exidx_top;
  Elf32_Addr arm_exidx_btm;
} SceModuleInfo_v2;

typedef struct SceModuleInfo_v3 { // size is 0x54
  SceModuleInfo_common c;
  Elf32_Addr gp_value;
  Elf32_Addr ent_top;
  Elf32_Addr ent_btm;
  Elf32_Addr stub_top;
  Elf32_Addr stub_btm;
  Elf32_Word dbg_fingerprint;
  Elf32_Addr start_entry;
  Elf32_Addr stop_entry;
  Elf32_Addr arm_exidx_top;
  Elf32_Addr arm_exidx_btm;
  Elf32_Addr tls_start;
  Elf32_Addr tls_filesz;
  Elf32_Addr tls_memsz;
} SceModuleInfo_v3;

typedef struct SceModuleInfo_v6 { // size is 0x5C
  SceModuleInfo_common c;
  Elf32_Addr gp_value;
  Elf32_Addr ent_top;
  Elf32_Addr ent_btm;
  Elf32_Addr stub_top;
  Elf32_Addr stub_btm;
  Elf32_Word dbg_fingerprint;
  Elf32_Addr tls_start;
  Elf32_Addr tls_filesz;
  Elf32_Addr tls_memsz;
  Elf32_Addr start_entry;
  Elf32_Addr stop_entry;
  Elf32_Addr arm_exidx_top;
  Elf32_Addr arm_exidx_btm;
  Elf32_Addr arm_extab_top;
  Elf32_Addr arm_extab_btm;
} SceModuleInfo_v6;

Module attribute

The attributes of a module (PSP, PS Vita, ?PS3 to check?). Bitwise OR'ed values from ::SceModuleAttribute and ::SceModulePrivilegeLevel. Since PS Vita SDK 0.940, SceModulePrivilegeLevel are not set anymore and unused in PS Vita OS.

  • Most usermode modules and a few kernel modules have it set to 0.
  • Most kernel modules have it set to 7.
  • Attribute 0x800 was seen in FW 0.902 cui_update_starter_module.self and FW 0.995 debug comicreader.elf. That attribute was set because these ELFs were compiled with an old PS Vita SDK (<= 0.930) that inherited privilege level attributes from the PSP SDK.
Value Name Comments
?0x20? SCE_MODULE_ATTR_CANT_SHARE
?0x10? SCE_MODULE_ATTR_CAN_RELOCATE
?0x8? SCE_MODULE_ATTR_CAN_RESTART
0x4 SCE_MODULE_ATTR_EXCLUSIVE_START Only one instance of the module can be started. If you want to start another version of that module, you have to stop the currently running version first.
0x2 SCE_MODULE_ATTR_EXCLUSIVE_LOAD Only one instance of the module can be loaded. If you want to load another version of that module, you have to unload the currently loaded version first.
0x1 SCE_MODULE_ATTR_CANT_STOP Resident module i.e. module that stays in memory til poweroff. Such a module cannot be unloaded.
0x0 SCE_MODULE_ATTR_NONE No module attributes.
/** 
 * Module type attributes. 
 */
enum SceModuleAttribute {
    SCE_MODULE_ATTR_NONE             = 0x0000,
    SCE_MODULE_ATTR_CANT_STOP        = 0x0001,
    SCE_MODULE_ATTR_EXCLUSIVE_LOAD   = 0x0002,
    SCE_MODULE_ATTR_EXCLUSIVE_START  = 0x0004,
};

/** 
 * Module Privilege Levels - These levels define the permissions a 
 * module can have.
 */
enum SceModulePrivilegeLevel {
    /** Lowest permission. */
    SCE_MODULE_USER                 = 0x0000,
    /** MS modeul. POPS/Demo. */
    SCE_MODULE_MS                   = 0x0200,
    /** USB WLAN module. Gamesharing */
    SCE_MODULE_USBWLAN              = 0x0400,
    /** Application module. */
    SCE_MODULE_APP                  = 0x0600,
    /** VSH module. */
    SCE_MODULE_VSH                  = 0x0800,
    /** Kernel module. Highest permission. */
    SCE_MODULE_KERNEL               = 0x1000,
    /** The module uses KIRK's memlmd resident library. */
    SCE_MODULE_KIRK_MEMLMD_LIB      = 0x2000,
    /** The module uses KIRK's semaphore resident library. */
    SCE_MODULE_KIRK_SEMAPHORE_LIB   = 0x4000
};

Modules imports-exports

Each module contains zero or more library exports and zero or more library imports. An exported library groups together related functions along with their NID and exports it for SceKernelModulemgr to link with a library import in another module.

Exports

An array of export entries defines all the libraries exported by the module.

Structure

Kernel modules that export syscalls (user accessible libraries) also get entries added to the syscall table. The syscall table is randomized on each boot so the same function will likely get a different syscall number assigned each time.

Name Description
size Size of the structure in bytes (usually 0x1C or 0x20)
auxattribute Unknown. Was added recently.
version Library version (usually 1)
attribute Library attribute flags
nfunc Number of exported functions
nvar Number of exported variables
ntls Number of exported TLS variables
hashinfo hash info (funcinfo + varinfo<<4). See Modules#Hash_Info.
hashinfotls tls hash info. See Modules#Hash_Info.
reserved Reserved.
nidaltsets Unknown. usually 0
libname_nid Library NID
libname Pointer to library name. Set to 0 for NONAME.
nid_table Pointer to array of NIDs of exports
entry_table Pointer to array of pointers of exports
typedef struct _scelibent_psp { // size is 0x10 or 0x14
	Elf32_Addr libname; /* <libname> (0 if NONAME) */
	unsigned short version; /* <version> */
	unsigned short attribute; /* <attribute> */
	unsigned char size; /* struct size in dwords */
	unsigned char nvar; /* number of variables */
	unsigned short nfunc; /* number of functions */
	Elf32_Addr entry_table; /* <entry_table> addr (in .rodata.sceResident) */
	union {
		unsigned int unk_0x10; /* Not always present. Might be alias_table. ex: 0x20000 */
	};
} SceLibEntryTable_psp;

typedef struct _scelibent_common { // size is 0x10
	unsigned char size;
	unsigned char auxattribute;
	unsigned short version;
	unsigned short attribute;
	unsigned short nfunc;
	unsigned short nvar;
	unsigned short ntls;
	unsigned char hashinfo;
	unsigned char hashinfotls;
	unsigned char reserved;
	unsigned char nidaltsets;
} SceLibEntryTable_common;

typedef struct _scelibent_1C { // size is 0x1C
	SceLibEntryTable_common c;
	Elf32_Addr libname;
	Elf32_Addr nid_table;
	Elf32_Addr entry_table;
} SceLibEntryTable_1C;

typedef struct _scelibent_20 { // size is 0x20
	SceLibEntryTable_common c;
	Elf32_Word libname_nid;
	Elf32_Addr libname;
	Elf32_Addr nid_table;
	Elf32_Addr entry_table;
} SceLibEntryTable_20;

Hash Info

Hash info is a number which depends of the number of exports. It can have values: 0, 2, 4 or 6.

It is related to NID Hash Table, which is still a mystery.

#define HASHINFO_LIMIT 0x10
int getHashInfo(uint16_t num) {
	if ((HASHINFO_LIMIT == 0) || (num < HASHINFO_LIMIT))
		return 0;
	else if (num < 0x40)
		return 2;
	else if (num < 0x100)
		return 4;
	else
		return 6;
}

int getHashInfo(SceLibEntryTable_common *table) {
	return getHashInfo(table->nfunc) + getHashInfo(table->nvar) << 4;
}

int getHashInfoTls(SceLibEntryTable_common *table) {
	return getHashInfo(table->ntls);
}

NONAME exports

Old name was "syslib", short name for "system library".

There is a special export entry that always shows up (even when the module exports no libraries) with attribute 0x8000 and NID 0x00000000 that exports the module_start, module_stop, module_exit functions for example.

The NIDs for these exports are common for all modules. See here for NID generation algorithm.

For PS Vita:

Name Type NID Definition
module_start Function 0x935CD196 int module_start(SceSize arglen, const void *argp);
module_stop Function 0x79F8E492 int module_stop(SceSize arglen, const void *argp);
module_exit Function 0x913482A9 int module_exit(SceSize arglen, const void *argp);
module_bootstart Function 0x5C424D40 int module_bootstart(SceSize arglen, const void *argp);
module_suspend Function 0xDD42FA37 int module_suspend(void); Supported in FW 0.990.030, unsupported as of firmware 3.65. Present in FW 0.990.030 SceKernelModulemgr.
module_proc_create Function 0xE640E30C SceInt32 module_proc_create(ScePID pid, void* pParam, void* pCommon); Supported in FW 0.931.010-0.990.030, unsupported as of firmware 3.65. Seemingly never used.
module_proc_exit Function 0x4F0EE5BD SceInt32 module_proc_exit(ScePID pid, void* pParam, void* pCommon); Supported in FW 0.931.010-0.990.030, unsupported as of firmware 3.65. Seemingly never used.
module_proc_kill Function 0xDF0212B9 SceInt32 module_proc_kill(ScePID pid, void* pParam, void* pCommon); Supported in FW 0.931.010-0.990.030, unsupported as of firmware 3.65. Seemingly never used.
module_info Variable 0x6C2224BA SceModuleInfo structure
module_proc_param Variable 0x70FBA1E7 SceProcessParam structure
module_sdk_version Variable 0x936C8A78 SceUInt32 variable - Used in FW 2.10.
module_dtrace_probes_info Variable 0x9318D9DD sdt_probes_info_t structure. Present in SceKernelThreadMgr, SceProcessmgr, SceDisplay. Reserved for kernel modules. Used by SceDeci4pDtracep.
module_dtrace_probes Variable 0x8CE938B1 An array of sdt_probes_info_t.count pointers to sdt_probedesc_t. Present in SceKernelThreadMgr, SceProcessmgr, SceDisplay. Reserved for kernel modules. Used by SceDeci4pDtracep.
sce_module_start_thread_parameter Variable 0x1A9822A4 Pointer to SceModuleThreadParameter. Defines the parameters used to create the thread that runs the module_start function. Reserved for usermode modules.
sce_module_stop_thread_parameter Variable 0xD20886EB Pointer to SceModuleThreadParameter. Defines the parameters used to create the thread that runs the module_stop function. Reserved for usermode modules.

For PSP:

Name Type NID Definition
module_start Function 0xD632ACDB int module_start(int arglen, const void *argp);
module_stop Function 0xCEE8593C int module_stop(int arglen, const void *argp);
module_bootstart Function 0xD3744BE0 int module_bootstart(int arglen, const void *argp);
module_reboot_before Function 0x2F064FA6 int module_reboot_before(void);
module_reboot_phase Function 0xADF12745 int module_reboot_phase(void)
module_info Variable 0xF01D73A7 SceModuleInfo
module_start_thread_parameter Variable 0x0F7C276C SceModuleThreadParameter
module_stop_thread_parameter Variable 0xCF0CC697 SceModuleThreadParameter
module_reboot_before_thread_parameter Variable 0xF4F4299D SceModuleThreadParameter
module_sdk_version Variable 0x11B97506 int
module_linked Variable 0x900DADE1
module_unlinked Variable 0x592743D8
# Temporary name was: SceModuleEntryThread
typedef struct SceModuleThreadParameter { // Size is 0x10 bytes on PSP, 0x14 on Vita
    /* The number of thread parameters. Must be 4 on Vita. */
    SceUInt32 numParams;
    /* The initial priority of the entry thread. Default value is SCE_KERNEL_DEFAULT_PRIORITY. */
    SceUInt32 initPriority;
    /* The stack size of the entry thread. Default value is SCE_KERNEL_THREAD_STACK_SIZE_DEFAULT_USER_MAIN (256KiB). */
    SceSize stackSize;
    /* The attributes of the entry thread. Always ignored on Vita. */
    SceUInt32 attr;
    /* The CPU affinity mask of the entry thread. Only present on Vita. Default value is SCE_KERNEL_THREAD_CPU_AFFINITY_MASK_DEFAULT. */
    SceInt32 cpuAffinityMask;
} SceModuleThreadParameter;

// Temporary names were: SceModuleStaticProbesInfo, SceModuleDTraceProbesInfo 
typedef struct sdt_probes_info { // size is 0x8 bytes on FWs 0.931.010-3.740.011
    unsigned int version; // Always 1
    unsigned int count; // Number of probes. ex: 1, 5, 7, 16
} sdt_probes_info_t;

typedef union {
	void (*handler0)(const struct sdt_probedesc *desc);
	void (*handler1)(const struct sdt_probedesc *desc, uintptr_t arg0);
	void (*handler2)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1);
	void (*handler3)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2);
	void (*handler4)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3);
	void (*handler5)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4);
	void (*handler6)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5);
	void (*handler7)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5, uintptr_t arg6);
	void (*handler8)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5, uintptr_t arg6, uintptr_t arg7);
	void (*handler9)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5, uintptr_t arg6, uintptr_t arg7, uintptr_t arg8);
	void (*handler10)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5, uintptr_t arg6, uintptr_t arg7, uintptr_t arg8, uintptr_t arg9);
} sdpd_handler_t;

// Temporary names were: SceModuleStaticProbe, SceModuleDTraceProbe
typedef struct sdt_probedesc { // size is 0x28 on FWs 0.931.010-3.740.011
	unsigned int *sdpd_id; // probe ID
	const char *sdpd_provider; // name of provider
	const char *sdpd_name; // name of probe
	void *sdpd_offset; // instrumentation point (address)
	sdpd_handler_t *sdpd_handler_fn; // probe handler_fn function (NULL if disabled)
	void *sdpd_private; // probe private data
	void (*sdpd_create_fn)(const struct sdt_probedesc *desc); // probe create helper function (NULL if unused)
	void (*sdpd_enable_fn)(const struct sdt_probedesc *desc); // probe enable helper function (NULL if unused)
	void (*sdpd_disable_fn)(const struct sdt_probedesc *desc); // probe disable helper function (NULL f unused)
	void (*sdpd_destroy_fn)(const struct sdt_probedesc *desc); // probe destroy helper function (NULL if unused)
} sdt_probedesc_t;

typedef struct SceLibcParam { // size is 0x1C on FW 0.930, 0x30 on FWs 1.80-1.81, 0x38 on FWs 2.00-3.740.011
	SceSize size; // Size of this structure
	SceLibEntryTable_1C *_SceLibcParam_0001_ent_head; // Pointer to SceLibcParam library information
	SceSize *sceLibcHeapSize; // Pointer to heap size
	SceSize *__sceLibcHeapSizeDefault; // Pointer to heap size
	SceUInt32 *sceLibcHeapExtendedAlloc; // Pointer to flag to dynamically extend heap size
	SceUInt32 *sceLibcHeapDelayedAlloc; // Pointer to flag to allocate heap on first call to malloc
	SceUInt32 sdk_version; // SDK version
	SceUInt32 unk_1C; // ex: 9
	void *__sce_libc_alloc_replace; // Pointer to replacement functions for Libc memory allocation functions
	void *__sce_libcxx_alloc_replace; // Pointer to replacement functions for Libcxx (C++) memory allocation functions
	SceSize *heap_initial_size; // Pointer to dynamically allocated heap initial size
	SceUInt32 *heap_unit_1mb; // Pointer to flag to change alloc unit size from 64kB to 1MB
	union {
		struct {
			SceUInt32 *heap_detect_overrun; // Pointer to flag to detect heap buffer overruns
			void *__sce_libc_tls_alloc_replace; // Pointer to replacement functions for TLS memory allocation functions
		};
	};
} SceLibcParam;

typedef struct SceProcessParam { // size is 0x20 on FW 0.895, 0x2C on FW 0.931.010, 0x30 on FW 0.945, 0x34 on FW 3.60
	SceSize size; // Size of this structure
	SceUInt32 magic; // "PSP2"
	SceUInt32 version; // Version of this structure. Implies number of extended entries. ex: 1 on FW 0.895, 4 on FW 0.931.010, 5 on FW 0.945, 6 on FW 3.60
	SceUInt32 sdk_version; // ex: 0x00895000 on FW 0.895.000, 0x00931010 on FW 0.931.010
	union {
		struct {
			char *sceUserMainThreadName; // ex: "main_thread"
			SceInt32 sceUserMainThreadPriority; // ex: 0x20, 0xA0, 0x10000100
			SceUInt32 sceUserMainThreadStackSize; // ex: 256 * 1024, 1024 * 1024
			SceUInt32 sceUserMainThreadAttribute;
			char *sceProcessName;
			SceUInt32 sce_process_preload_disabled;
			SceUInt32 sceUserMainThreadCpuAffinityMask;
			SceLibcParam *sce_libcparam;
			SceUInt32 unk_0x30;
		};
	};
} SceProcessParam;

Imports

Each module can import any number of libraries from other modules by specifying the library NID to import along with a list of functions/variables NIDs to import. SceKernelModulemgr does the dynamic linking by either jumping to an address if the two modules are in the same privilege level, or making a syscall if it is usermode module importing a library exported by a kernel module. Kernel modules cannot import user libraries.

Name Description
size Size of the structure (usually 0x24, 0x2C or 0x34)
version Library version (ex: 1, 5)
attribute Library attribute flags
nfunc Number of imported functions
nvar Number of imported variables
ntls Number of imported TLS variables
reserved unk
libname_nid Library NID
libname Pointer to library name
sce_sdk_version usually 0
func_nid_table Pointer to array of imported functions NIDs
func_entry_table Pointer to array of imported functions stubs offsets
var_nid_table Pointer to array of imported variables NIDs
var_entry_table Pointer to array of imported variables offsets
tls_nid_table Pointer to array of imported TLS variables NIDs
tls_entry_table Pointer to array of imported TLS variables offsets
typedef struct _scelibstub_psp { // size is 0x14 or 0x18
	Elf32_Addr libname; /* library name */
	unsigned short version; /* version */
	unsigned short attribute; /* attribute */
	unsigned char size; /* struct size */
	unsigned char nvar; /* number of variables */
	unsigned short nfunc; /* number of function stubs */
	Elf32_Addr nid_table; /* functions/variables NID table */
	Elf32_Addr stub_table; /* functions stub table */
	union {
		Elf32_Addr var_table; /* variables table */
	};
} SceLibStubTable_psp;

typedef struct _scelibstub_common { // size is 0xC
	unsigned short size;
	unsigned short version;
	unsigned short attribute;
	unsigned short nfunc;
	unsigned short nvar;
	unsigned short ntls;
} SceLibStubTable_common;

typedef struct _scelibstub_24 { // size is 0x24
	SceLibStubTable_common c;
	Elf32_Word libname_nid;
	Elf32_Addr libname;
	Elf32_Addr func_nid_table;
	Elf32_Addr func_entry_table;
	Elf32_Addr var_nid_table;
	Elf32_Addr var_entry_table;
} SceLibStubTable_24;

typedef struct _scelibstub_2C { // size is 0x2C
	SceLibStubTable_common c;
	unsigned char reserved[4];
	Elf32_Addr libname;
	Elf32_Addr func_nid_table;
	Elf32_Addr func_entry_table;
	Elf32_Addr var_nid_table;
	Elf32_Addr var_entry_table;
	Elf32_Addr tls_nid_table;
	Elf32_Addr tls_entry_table;
} SceLibStubTable_2C;

typedef struct _scelibstub_34 { // size is 0x34
	SceLibStubTable_common c;
	unsigned char reserved[4];
	Elf32_Word libname_nid;
	Elf32_Addr libname;
	Elf32_Word sce_sdk_version;
	Elf32_Addr func_nid_table;
	Elf32_Addr func_entry_table;
	Elf32_Addr var_nid_table;
	Elf32_Addr var_entry_table;
	Elf32_Addr tls_nid_table;
	Elf32_Addr tls_entry_table;
} SceLibStubTable_34;

Variable imports

Importing variables is a special case of imports. Function import points to the function table, whilst variable import points to the ELF relocation config in text segment.

typedef struct SceRelInfoType1Import {
	SceSize size; // this object size << 4
	SceRelInfoType1Variables info[];
} SceRelInfoType1Import;

Library attribute

Library attribute flags are ORed together and identified as follows:

Bit Name Comments
0x8000 ?MAIN_EXPORT? Set for main NONAME export.
0x4000 SYSCALL_EXPORT In kernel modules only. Allow syscall export to usermode.
0x2000 PLUGIN_LINK Lets the library's exports table be managed on-the-fly by the module itself. If used together with --plugin-header option, switches armlibgen.exe to some special mode, making it generate headers for use with SceLibKernel#sceKernelLinkFunctionTable. It also requires function prototypes to be defined in the EMD file. On PS3, it seems to indicate a non-PRX library (like "stdc" or "allocator") that comes from somewhere else (LV2?).
0x8 LOOSE_IMPORT ?Set when the library has the WEAK_EXPORT flag in its exporting module.?
0x4 NOLINK_EXPORT
0x2 WEAK_EXPORT ?kernel non-driver export?
0x1 AUTO_EXPORT Makes the library importable. Should be set unless it is the main export.

Relocations

See [1] for more information on how PS Vita relocations work.

Relocations are stored within the PT_SCE_RELA segment.

There are 10 relocation entry formats. It is determined by r_format (the first 4 bits of the relocation entry).

Warning! In PS Vita FWs <= 3.00, only relocation entry format 0 is available. Using any other relocation entry format gives error 0x8002D019.

// assuming LSB of bitfield is listed first
union {
	Elf32Word r_format: 4;

	struct {
		Elf32Word r_format : 4;
		Elf32Word r_symbol_segment : 4;
		Elf32Word r_type : 8;
		Elf32Word r_patch_segment : 4;
		Elf32Word r_type2 : 8;
		Elf32Word r_dist2 : 4;

		Elf32Word r_addend;

		Elf32Word r_offset;
	} r_entry_0;

	struct {
		Elf32Word r_format : 4;
		Elf32Word r_symbol_segment : 4;
		Elf32Word r_type : 8;
		Elf32Word r_patch_segment : 4;
		Elf32Word r_offset_lo : 12;

		Elf32Word r_offset_hi : 10;
		Elf32Word r_addend : 22;
	} r_entry_1;

	// Used by var import relocations
	struct {
		Elf32Word r_format : 4;
		Elf32Word r_symbol_segment : 4;
		Elf32Word r_type : 8;
		Elf32Word r_patch_segment : 2;
		Elf32Word r_unk : 2;
		Elf32Word r_pad : 4;

		Elf32Word r_offset;
	} r_entry_1_alt;

	struct {
		Elf32Word r_format : 4;
		Elf32Word r_symbol_segment : 4;
		Elf32Word r_type : 8;
		Elf32Word r_offset : 16;

		Elf32Word r_addend;
	} r_entry_2;

	struct {
		Elf32Word r_format : 4;
		Elf32Word r_symbol_segment : 4;
		Elf32Word r_ins_mode : 1; // ARM = 0, THUMB = 1
		Elf32Word r_offset : 18;
		Elf32Word r_dist2 : 5;

		Elf32Word r_addend : 22;
	} r_entry_3;

	struct {
		Elf32Word r_format : 4;
		Elf32Word r_offset : 23;
		Elf32Word r_dist2 : 5;
	} r_entry_4;

	struct {
		Elf32Word r_format : 4;
		Elf32Word r_dist1 : 9;
		Elf32Word r_dist2 : 5;
		Elf32Word r_dist3 : 9;
		Elf32Word r_dist4 : 5;
	} r_entry_5;

	struct {
		Elf32Word r_format : 4;
		Elf32Word r_offset : 28;
	} r_entry_6;

	struct {
		Elf32Word r_format : 4;
		// r_format 7 has 4 offsets, 7 bits each
		// r_format 8 has 7 offsets, 4 bits each
		// r_format 9 has 14 offsets, 2 bits each
		Elf32Word offsets : 28;
	} r_entry_7_8_9;
} SceRel;

Format 0

Start End Description
0 3 Entry format. Set to 0.
4 7 Symbol segment index
8 15 Relocation type
16 19 Patch segment index
20 26 Second relocation type
27 31 Distance from offset (used for second relocation)
32 63 Addend
64 95 Offset

Format 1

Start End Description
0 3 Entry format. Set to 1.
4 7 Symbol segment index
8 15 Relocation type
16 19 Patch segment index
20 41 Offset
42 63 Addend

Format 2

Start End Description
0 3 Entry format. Set to 2.
4 7 Symbol segment index
8 15 Relocation type
16 31 Offset
32 64 Addend

Format 3

Start End Description
0 3 Entry format. Set to 3
4 7 Symbol segment index
8 8 Mode (ARM = 0, THUMB = 1)
9 26 Offset
27 31 Distance from offset
32 64 Addend

Format 4

Start End Description
0 3 Entry format. Set to 4.
4 26 Offset
27 31 Distance from offset

Format 5

Start End Description
0 3 Entry format. Set to 5.
4 12 Distance 1
13 17 Distance 2
18 26 Distance 3
27 31 Distance 4

Format 6

Start End Description
0 3 Entry format. Set to 6.
4 31 Offset

Format 7

Start End Description
0 3 Entry format. Set to 7.
4 10 Offset 1
11 17 Offset 2
18 24 Offset 3
25 31 Offset 4

Format 8

Start End Description
0 3 Entry format. Set to 8.
4 7 Offset 1
8 11 Offset 2
12 15 Offset 3
16 19 Offset 4
20 23 Offset 5
24 27 Offset 6
28 31 Offset 7

Format 9

Start End Description
0 3 Entry format. Set to 9.
4 5 Offset 1
6 7 Offset 2
8 9 Offset 3
10 11 Offset 4
12 13 Offset 5
14 15 Offset 6
16 17 Offset 7
18 19 Offset 8
20 21 Offset 9
22 23 Offset 10
24 25 Offset 11
26 27 Offset 12
28 29 Offset 13
30 31 Offset 14

Supported Relocation Codes (as of FW 3.60)

Code Name Description
0 R_ARM_NONE No relocation
2 R_ARM_ABS32 Direct 32-bits address
3 R_ARM_REL32 N/A
10 R_ARM_THM_CALL bl/blx on Thumb mode
28 R_ARM_CALL bl/blx on ARM mode
29 R_ARM_JUMP24 N/A
38 R_ARM_TARGET1 same as R_ARM_ABS32
40 R_ARM_V4BX same as R_ARM_NONE
41 R_ARM_TARGET2 same as R_ARM_REL32
42 R_ARM_PREL31 N/A
43 R_ARM_MOVW_ABS_NC movw on ARM mode
44 R_ARM_MOVT_ABS movt on ARM mode
47 R_ARM_THM_MOVW_ABS_NC movw on Thumb mode
48 R_ARM_THM_MOVT_ABS movt on Thumb mode
255 R_ARM_RBASE Ignored

Program Authority Id

See also

Bit mask program-authority-id Description
0xFFF0000000000000 0x2100000000000000 Game
0xFFF0000000000000 0x2200000000000000 ?Non-Game?
0xFFF0000000000000 0x2800000000000000 KBL
0xFFF0000000000000 0x2E00000000000000 Security Module
0xFFFFFFFF00000000 0x2F00000000000000 fSELF
0x20000 0x20000 ?System module?
0xFFF8000000000000 0x2808000000000000 is ThreadAccessLevel::Kernel's next do-anything and has very risky permissions.

System Software Version independant usermode system modules

These system usermode modules can be decrypted on any firmware version and are identified by kprx_auth_sm.self by their program-authority-id.

Name program-authority-id Path
unknown 0x2800800000000001 unknown
ScePsp2Swu 0x2800800000000002 ud0:PSP2UPDATE/psp2swu.self, in PUP files
SceCuiSetUpper 0x2800800000000003 ud0:PSP2UPDATE/cui_setupper.self, in PUP files
unknown 0x2800800000000013 unknown
unknown 0x2800800000000016 unknown
unknown 0x2800000000000032 unknown
SceGameRightPlugin 0x2800000000000030 /sce_sys/about/right.suprx, in PKG files

List of Modules

Below is a list of all known Modules in the system along with the lowest version number it was seen on.

Bootloader modules

Version Name program-authority-id Path Description
1.03-3.74 kernel_boot_loader 0x2E00000000000001 slb0:kernel_boot_loader.self Installed on release

Security modules

Version Name program-authority-id Path Description
1.03-3.74 kprx_auth_sm 0x2E00000000000002 slb0:kprx_auth_sm.self Installed on release
1.03-3.74 update_service_sm 0x2E00000000000004 os0:sm/update_service_sm.self Installed on release
1.03-3.74 qaf_sm 0x2E00000000000005 os0:sm/qaf_sm.self Installed on release
1.03-3.74 pm_sm 0x2E00000000000006 os0:sm/pm_sm.self Installed on release
1.03-3.74 aimgr_sm 0x2E00000000000007 os0:sm/aimgr_sm.self Installed on release
1.03-3.74 compat_sm 0x2E00000000000008 os0:sm/compat_sm.self Installed on release
? applier_sm 0x2E00000000000009 os0:sm/applier_sm.self Installed on release
1.03-3.74 act_sm 0x2E0000000000000A os0:sm/act_sm.self Installed on release
1.03-3.74 mgkm_sm 0x2E0000000000000B os0:sm/mgkm_sm.self Installed on release
1.03-3.74 encdec_w_portability_sm 0x2E0000000000000C os0:sm/encdec_w_portability_sm.self Installed on release
1.03-3.74 gcauthmgr_sm 0x2E0000000000000D os0:sm/gcauthmgr_sm.self Installed on release
1.03-3.74 rmauth_sm 0x2E0000000000000E os0:sm/rmauth_sm.self Installed on release
1.03-3.74 utoken_sm 0x2E0000000000000F os0:sm/utoken_sm.self Installed on release
1.03-3.74 spkg_verifier_sm_w_key 0x2E00000000000010 os0:sm/spkg_verifier_sm_w_key.self Installed on release
? pm_sm ? sd0:sm/pm_sm_sd.self Possibly used in diagnosis

Kernel modules

Version Name program-authority-id Path
2.60 SceDiagBridge 0x2809000000000002 ux0:/kd/diagbridge.skprx
2.60 SceSblFirstImageWriter 0x2809000000000002 ux0:/kd/first_image_writer.skprx
1.04-2.060.011 ScePsp2BootConfig 0x2808000000020059 os0:psp2config.skprx
1.04-3.74 ScePsp2BootConfig 0x280800000002005B os0:psp2bootconfig.skprx
2.100.081-3.74 SceKernelPsp2Config 0x2808000000020059 os0:psp2config_dolce.skprx
2.100.081-3.74 SceKernelPsp2Config 0x2808000000020059 os0:psp2config_vita.skprx
3.60-3.74 SceSblACMgr 0x2808000000020002 os0:kd/acmgr.skprx
3.60-3.74 SceSblAuthMgr 0x2808000000020007 os0:kd/authmgr.skprx
1.04-3.60 SceKernelBootimage 0x2808000000020060 os0:kd/bootimage.skprx
3.60-3.74 SceKernelBusError 0x280800000002000D os0:kd/buserror.skprx
3.60-3.74 SceCrashDump 0x2808000000020064 os0:kd/crashdump.skprx
3.60-3.74 SceDisplay 0x2808000000020014 os0:kd/display.skprx
3.60-3.74 SceKernelDmacMgr 0x2808000000020015 os0:kd/dmacmgr.skprx
3.60-3.74 SceEnumWakeUp 0x280800000002005C os0:kd/enum_wakeup.skprx
3.60-3.74 SceExcpmgr 0x2808000000020017 os0:kd/excpmgr.skprx
3.60-3.74 SceExfatfs 0x2808000000020018 os0:kd/exfatfs.skprx
3.60-3.74 SceSblGcAuthMgr 0x280800000002005E os0:kd/gcauthmgr.skprx
3.60-3.74 SceGpuEs4CoreDump 0x280800000002001F os0:kd/gpucoredump_es4.skprx
3.60-3.74 SceHdmi 0x2808000000020022 os0:kd/hdmi.skprx
3.60-3.74 SceKernelIntrMgr 0x2808000000020025 os0:kd/intrmgr.skprx
3.60-3.74 SceIofilemgr 0x2808000000020026 os0:kd/iofilemgr.skprx
3.60-3.74 SceKrm 0x280800000002006E os0:kd/krm.skprx
3.60-3.74 SceLcd 0x2808000000020066 os0:kd/lcd.skprx
3.60-3.74 SceLowio 0x2808000000020028 os0:kd/lowio.skprx
3.60-3.74 SceMagicGate 0x2808000000000201 os0:kd/magicgate.skprx
3.60-3.74 SceMarlinHci 0x280800000002005F os0:kd/marlin_hci.skprx
3.60-3.74 SceSblMgKeyMgr 0x2808000000000201 os0:kd/mgkeymgr.skprx
3.60-3.74 SceMgVideo 0x2808000000000202 os0:kd/mgvideo.skprx
3.60-3.74 SceKernelModulemgr 0x280800000002002A os0:kd/modulemgr.skprx
3.60-3.74 SceMsif 0x280800000002002C os0:kd/msif.skprx
3.63-3.74 SceNetPs (dev) 0x280800000002002E os0:kd/net_ps_dev.skprx
3.60-3.74 SceOled 0x2808000000020031 os0:kd/oled.skprx
3.60-3.74 SceSblPcbcBin 0x2808000000000100 os0:kd/pcbc.skprx
3.60-3.74 SceProcessmgr 0x2808000000020036 os0:kd/processmgr.skprx
3.60-3.74 SceRtc 0x2808000000020039 os0:kd/rtc.skprx
3.60-3.74 SceSdif 0x280800000002003B os0:kd/sdif.skprx
3.60-3.74 SceSdstor 0x280800000002003C os0:kd/sdstor.skprx
3.60-3.74 SceSblSmschedProxy 0x280800000002003E os0:kd/smsc_proxy.skprx
3.60-3.74 SceSblSsSmComm 0x280800000002003D os0:kd/sm_comm.skprx
3.60-3.74 SceSblSsMgr 0x280800000002003F os0:kd/ss_mgr.skprx
3.60-3.74 SceSyscon 0x2808000000020043 os0:kd/syscon.skprx
3.60-3.74 SceSysmem 0x2808000000020044 os0:kd/sysmem.skprx
3.60-3.74 SceSysStateMgr 0x2808000000020046 os0:kd/sysstatemgr.skprx
3.60-3.74 SceSystimer 0x2808000000020047 os0:kd/systimer.skprx
3.60-3.74 SceKernelThreadMgr 0x2808000000020048 os0:kd/threadmgr.skprx
3.60-3.74 SceUsbPspcm 0x2808000000020063 os0:kd/usbpspcm.skprx
3.60-3.74 SceUsbstorDriver 0x2808000000020061 os0:kd/usbstor.skprx
3.60-3.74 SceUsbstorMg 0x2808000000000203 os0:kd/usbstormg.skprx
3.60-3.74 SceUsbstorVStorDriver 0x2808000000020062 os0:kd/usbstorvstor.skprx
3.60-3.74 SceVipImage 0x2808000000020052 os0:kd/vipimg.skprx
3.60-3.74 SceVeneziaImage 0x2808000000020054 os0:kd/vnzimg.skprx
3.60-3.74 SceWlanBtRobinImageAx 0x2808000000020057 os0:kd/wlanbt_robin_img_ax.skprx
3.60-3.74 SceDeci4pCpup 0x280800000001000C os0:kd/deci4p_cpup.skprx
3.60-3.74 SceDeci4pCtrlp 0x2808000000010016 os0:kd/deci4p_ctrlp.skprx
3.60-3.74 SceDeci4pDbgp 0x2808000000010001 os0:kd/deci4p_dbgp.skprx
3.60-3.74 SceDeci4pDfMgr 0x2808000000010008 os0:kd/deci4p_dfmgr.skprx
3.60-3.74 SceDeci4pDrfp 0x2808000000010000 os0:kd/deci4p_drfp.skprx
3.60-3.74 SceDeci4pDtracep 0x2808000000010010 os0:kd/deci4p_dtracep.skprx
3.60-3.74 SceDeci4pLoadp 0x280800000001000A os0:kd/deci4p_loadp.skprx
3.60-3.74 SceDeci4pPamp 0x280800000001000B os0:kd/deci4p_pamp.skprx
3.60-3.74 SceDeci4pRDrfp 0x2808000000010014 os0:kd/deci4p_rdrfp.skprx
3.60-3.74 SceDeci4pSCTtyp 0x2808000000010097 os0:kd/deci4p_scttyp.skprx
3.60-3.74 SceDeci4pSDbgp 0x2808000000010081 os0:kd/deci4p_sdbgp.skprx
3.60-3.74 SceDeci4pSDeci2p 0x2808000000010083 os0:kd/deci4p_sdeci2p.skprx
3.60-3.74 SceDeci4pSDfCtl 0x2808000000010093 os0:kd/deci4p_sdfctl.skprx
3.60-3.74 SceDeci4pSDfMgr 0x2808000000010088 os0:kd/deci4p_sdfmgr.skprx
3.60-3.74 SceDeci4pSDrfp 0x2808000000010080 os0:kd/deci4p_sdrfp.skprx
3.60-3.74 SceDeci4pSTtyp 0x2808000000010089 os0:kd/deci4p_sttyp.skprx
3.60-3.74 SceDeci4pTmcp 0x2808000000010017 os0:kd/deci4p_tmcp.skprx
3.60-3.74 SceDeci4pTsmp 0x280800000001000F os0:kd/deci4p_tsmp.skprx
3.60-3.74 SceDeci4pTtyp 0x2808000000010009 os0:kd/deci4p_ttyp.skprx
3.60-3.74 SceDeci4pUserp 0x2808000000010011 os0:kd/deci4p_userp.skprx
3.60-3.74 SceDeci4pVcp 0x2808000000010012 os0:kd/deci4p_vcp.skprx
3.60-3.74 SceSblPcffBin 0x2808000000000101 vs0:app/NPXS10028_pcff.skprx
3.60 SceAppMgr None bootfs:appmgr.skprx
3.60 SceAudio None bootfs:audio.skprx
3.60 SceAudioin None bootfs:audioin.skprx
3.60 SceAVConfig None bootfs:av_config.skprx
3.60 SceAvcodec None bootfs:avcodec.skprx
3.60 SceBbmc None bootfs:bbmc.skprx
3.60 SceBt None bootfs:bt.skprx
3.60 SceCamera None bootfs:camera.skprx
3.60 SceCameraDummy None bootfs:camera_dummy.skprx
3.60 SceClockgen None bootfs:clockgen.skprx
3.60 SceCodec None bootfs:codec.skprx
3.60 SceCodec None bootfs:codec_cx.skprx
3.60 SceCompat None bootfs:compat.skprx
3.60 SceCoredump None bootfs:coredump.skprx
3.60 SceCtrl None bootfs:ctrl.skprx
3.60 SceDs3 None bootfs:ds3.skprx
3.60 SceError None bootfs:error.skprx
3.60 SceFios2Kernel None bootfs:fios2.skprx
3.60 SceGps None bootfs:gps.skprx
3.60 SceGpuEs4 None bootfs:gpu_es4.skprx
3.60 SceGpuEs4Init None bootfs:gpuinit_es4.skprx
3.60 SceHid None bootfs:hid.skprx
3.60 SceHpremote None bootfs:hpremote.skprx
3.60 SceIdStorage None bootfs:idstorage.skprx
3.60 SceKrm None bootfs:krm.skprx
3.60 SceMotionDev None bootfs:motion.skprx
3.60 SceMotionDevDummy None bootfs:motion_dummy.skprx
3.60 SceMtpIfDriver None bootfs:mtpif.skprx
3.60 SceNetPs None bootfs:net_ps.skprx
3.60 SceNgs None bootfs:ngs.skprx
3.60 SceNpDrm None bootfs:npdrm.skprx
3.60 ScePfsMgr None bootfs:pfsmgr.skprx
3.60 SceSblPostSsMgr None bootfs:post_ss_mgr.skprx
3.60 ScePower None bootfs:power.skprx
3.60 SceRegistryMgr None bootfs:regmgr.skprx
3.60 SceSysmodule None bootfs:sysmodule.skprx
3.60 SceTouch None bootfs:touch.skprx
3.60 SceTouchDummy None bootfs:touch_dummy.skprx
3.60 SceTty2uart None bootfs:tty2uart.skprx
3.60 SceUdcd None bootfs:udcd.skprx
3.60 SceUlobjMgr None bootfs:ulobjmgr.skprx
3.60 SceUsbMass None bootfs:umass.skprx
3.60 SceSblUpdateMgr None bootfs:update_mgr.skprx
3.60 SceUsbEtherRtl None bootfs:usb_ether_rtl.skprx
3.60 SceUsbEtherSmsc None bootfs:usb_ether_smsc.skprx
3.60 SceUsbAudio None bootfs:usbaudio.skprx
3.60 SceUsbd None bootfs:usbd.skprx
3.60 SceUsbMtp None bootfs:usbmtp.skprx
3.60 SceUsbPspcm None bootfs:usbpspcm.skprx
3.60 SceUsbSerial None bootfs:usbserial.skprx
3.60 SceUsbServ None bootfs:usbserv.skprx
3.60 SceUsbstorDriver None bootfs:usbstor.skprx
3.60 SceUsbstorVStorDriver None bootfs:usbstorvstor.skprx
3.60 SceCodecEngineWrapper None bootfs:vnz_wrapper.skprx
3.60 SceVshBridge None bootfs:vshbridge.skprx
3.60 SceWlanBt None bootfs:wlanbt.skprx

User modules and apps

Version Name program-authority-id Path
3.60 ScePsp2Swu 0x2800800000000002 ud0:PSP2UPDATE/psp2swu.self
3.60 SceSafeMode 0x2800000000000015 os0:ue/safemode.self
3.60 SceCuiSetUpper 0x2800800000000003 os0:ue/cui_setupper.self
3.60 SceAvcodecUser 0x2800000000028005 os0:us/avcodec_us.suprx
3.60 SceDriverUser 0x280000000002800A os0:us/driver_us.suprx
3.60 SceGpuEs4User 0x280000000002802A os0:us/libgpu_es4.suprx
3.60 SceGxm 0x2800000000028030 os0:us/libgxm_es4.suprx
3.60 SceLibKernel 0x2800000000028034 os0:us/libkernel.suprx
3.60 SceNear 0x2800000000000027 vs0:app/NPXS10000/eboot.bin
3.60 SceParty 0x2800000000000026 vs0:app/NPXS10001/eboot.bin
3.60 SceNpPartyAppUtil 0x280000000002001F vs0:app/NPXS10001/np_party_app.suprx
3.60 SceStoreBrowser 0x280000000000001C vs0:app/NPXS10002/eboot.bin
3.60 SceWebBrowser 0x2800000000000025 vs0:app/NPXS10003/eboot.bin
3.60 ScePhotoCam 0x2800000000000018 vs0:app/NPXS10004/eboot.bin
3.60 SceFriend 0x280000000000001A vs0:app/NPXS10006/eboot.bin
3.60 SceTrophy 0x280000000000001B vs0:app/NPXS10008/eboot.bin
3.60 SceMusicBrowser 0x2800000000000011 vs0:app/NPXS10009/eboot.bin
3.60 SceVideoPlayer 0x280000000000001E vs0:app/NPXS10010/eboot.bin
3.60 SceRemotePlay 0x2800000000000012 vs0:app/NPXS10012/eboot.bin
3.60 ScePS4Link 0x280000000000700A vs0:app/NPXS10013/eboot.bin
3.60 gaikai_player 0x2800000000020045 vs0:app/NPXS10013/gaikai-player.suprx
3.60 SceSecondScreen 0x2800000000020046 vs0:app/NPXS10013/libSceSecondScreen.suprx
3.60 ScePsnMail 0x2800000000000020 vs0:app/NPXS10014/eboot.bin
3.60 SceSettings 0x2800000000000010 vs0:app/NPXS10015/eboot.bin
3.60 SceSystemSettingsCore 0x2800000000020024 vs0:app/NPXS10015/system_settings_core.suprx
3.60 SceSignup 0x2800000000000019 vs0:app/NPXS10018/eboot.bin
3.60 SceTelRegMain 0x2800000000000029 vs0:app/NPXS10021/eboot.bin
3.60 SceTelReg 0x2800000000020026 vs0:app/NPXS10021/tel_reg.suprx
3.60 ScePhotoExport 0x2800000000000016 vs0:app/NPXS10023/eboot.bin
3.60 SceNearAutoLocation 0x280000000000002B vs0:app/NPXS10024/eboot.bin
3.60 SceNearAutoCheckin 0x280000000000002C vs0:app/NPXS10025/eboot.bin
3.60 SceContentManager 0x280000000000002D vs0:app/NPXS10026/eboot.bin
3.60 SceGameManual 0x2800000000000022 vs0:app/NPXS10027/eboot.bin
3.60 ScePspemu 0x2800000000000013 vs0:app/NPXS10028/eboot.bin
3.60 SceMarlinBgMtp 0x280000000000002A vs0:app/NPXS10029/eboot.bin
3.60 fake_package_installer 0x280000000000002E vs0:app/NPXS10031/eboot.bin
3.60 SceNearUtilService 0x280000000000002F vs0:app/NPXS10032/eboot.bin
3.60 SceAvMediaService 0x2800000000000031 vs0:app/NPXS10036/eboot.bin
3.60 SceMsgMiddleWare 0x2800000000000021 vs0:app/NPXS10063/eboot.bin
3.60 SceGriefReportDialogApp 0x2800000000000034 vs0:app/NPXS10065/eboot.bin
3.60 SceGriefReportDialog 0x2800000000020030 vs0:app/NPXS10065/grief_report_dialog.suprx
3.60 SceEmailApp 0x2800000000000035 vs0:app/NPXS10072/eboot.bin
3.60 SceEmailEngine 0x2800000000020035 vs0:app/NPXS10072/email_engine.suprx
3.60 SceEmailBg 0x2800000000000037 vs0:app/NPXS10073/eboot.bin
3.60 SceCrashReport 0x2800000000000036 vs0:app/NPXS10077/eboot.bin
3.60 SceComboPlay 0x2800000000000040 vs0:app/NPXS10078/eboot.bin
3.60 SceDailyCheckerBg 0x2800000000000039 vs0:app/NPXS10079/eboot.bin
3.60 swagner 0x2800000000000041 vs0:app/NPXS10080/eboot.bin
3.60 ScePsmManual 0x2800000000000038 vs0:app/NPXS10081/eboot.bin
3.60 SceWebKitProcess 0x2800000000008005 vs0:app/NPXS10083/eboot.bin
3.60 SceWebKitProcessMini 0x2800000000008005 vs0:app/NPXS10084/eboot.bin
3.60 SceVideoStreaming 0x2800000000000044 vs0:app/NPXS10085/eboot.bin
3.60 SceCalendar 0x2800000000000042 vs0:app/NPXS10091/eboot.bin
3.60 SceCalendarBg 0x2800000000000043 vs0:app/NPXS10092/eboot.bin
3.60 SceKidsApp 0x2800000000000046 vs0:app/NPXS10094/eboot.bin
3.60 ScePanorama 0x2800000000000045 vs0:app/NPXS10095/eboot.bin
3.60 SceStitcherCoreAdapter 0x2800000000020041 vs0:app/NPXS10095/stitch_core_prx.suprx
3.60 SceStitchAdapter 0x2800000000020042 vs0:app/NPXS10095/stitch_prx.suprx
3.60 ScePS4Link 0x280000000000700A vs0:app/NPXS10098/eboot.bin
3.60 gaikai_player 0x2800000000020045 vs0:app/NPXS10098/gaikai-player.suprx
3.60 SceHostCollaboService 0x2800000000000047 vs0:app/NPXS10100/eboot.bin
3.60 SceBgCopyResultBrowser 0x2800000000000048 vs0:app/NPXS10101/eboot.bin
3.60 SceWebFiltering 0x280000000002807F vs0:data/external/webcore/jx_web_filtering.suprx
3.60 ScePsp2Compat 0x2800000000028097 vs0:data/external/webcore/ScePsp2Compat.suprx
3.60 SceWebKit 0x2800000000028099 vs0:data/external/webcore/SceWebKitModule.suprx
3.60 SceLibVitaJSExtObj 0x280000000002807E vs0:data/external/webcore/vita_jsextobj.suprx
3.60 SceActivityDb 0x2800000000028001 vs0:sys/external/activity_db.suprx
3.60 SceNetAdhocMatching 0x2800000000028002 vs0:sys/external/adhoc_matching.suprx
3.60 SceAppUtil 0x2800000000028003 vs0:sys/external/apputil.suprx
3.60 SceAppUtilExt 0x28000000000280A5 vs0:sys/external/apputil_ext.suprx
3.60 SceAudiocodec 0x2800000000028004 vs0:sys/external/audiocodec.suprx
3.60 SceAvcdecForPlayer 0x28000000000280AC vs0:sys/external/avcdec_for_player.suprx
3.60 SceBgAppUtil 0x2800000000028086 vs0:sys/external/bgapputil.suprx
3.60 ScebXCe 0x2800000000028007 vs0:sys/external/bXCe.suprx
3.60 SceCommonGuiDialog 0x2800000000028008 vs0:sys/external/common_gui_dialog.suprx
3.60 SceDbrecoveryUtility 0x2800000000028080 vs0:sys/external/dbrecovery_utility.suprx
3.60 SceDbutil 0x2800000000028009 vs0:sys/external/dbutil.suprx
3.60 SceFriendSelect 0x28000000000280AE vs0:sys/external/friend_select.suprx
3.60 SceIncomingDialog 0x2800000000028087 vs0:sys/external/incoming_dialog.suprx
3.60 SceIniFileProcessor 0x280000000002800C vs0:sys/external/ini_file_processor.suprx
3.60 SceAtrac 0x2800000000028083 vs0:sys/external/libatrac.suprx
3.60 SceLibc 0x280000000002800E vs0:sys/external/libc.suprx
3.60 SceCommonDialog 0x280000000002800F vs0:sys/external/libcdlg.suprx
3.60 SceCalendarDialogPlugin 0x28000000000280AA vs0:sys/external/libcdlg_calendar_review.suprx
3.60 SceCamImportDialogPlugin 0x2800000000028079 vs0:sys/external/libcdlg_cameraimport.suprx
3.60 SceCheckoutDialogPlugin 0x2800000000028010 vs0:sys/external/libcdlg_checkout.suprx
3.60 SceCompanionDialogPlugin 0x2800000000017003 vs0:sys/external/libcdlg_companion.suprx
3.60 SceCompatDialogPlugin 0x280000000002807C vs0:sys/external/libcdlg_compat.suprx
3.60 SceCrossCtlDialogPlugin 0x2800000000028090 vs0:sys/external/libcdlg_cross_controller.suprx
3.60 SceFriendListDialogPlugin 0x2800000000028011 vs0:sys/external/libcdlg_friendlist.suprx
3.60 SceFriendList2DialogPlugin 0x28000000000280A8 vs0:sys/external/libcdlg_friendlist2.suprx
3.60 SceNpGameCustomDataDPlugin 0x28000000000280B1 vs0:sys/external/libcdlg_game_custom_data.suprx
3.60 SceNpGameCustomDataDlgImpl 0x28000000000280B2 vs0:sys/external/libcdlg_game_custom_data_impl.suprx
3.60 SceImeDialogPlugin 0x2800000000028012 vs0:sys/external/libcdlg_ime.suprx
3.60 SceInvitationDlgPlugin 0x28000000000280AF vs0:sys/external/libcdlg_invitation.suprx
3.60 SceInvitationDlgImplPlugin 0x28000000000280B0 vs0:sys/external/libcdlg_invitation_impl.suprx
3.60 SceCommonDialogMain 0x2800000000028013 vs0:sys/external/libcdlg_main.suprx
3.60 SceMsgDialogPlugin 0x2800000000028015 vs0:sys/external/libcdlg_msg.suprx
3.60 SceNearDialogPlugin 0x280000000002809F vs0:sys/external/libcdlg_near.suprx
3.60 SceNetCheckDialogPlugin 0x2800000000028017 vs0:sys/external/libcdlg_netcheck.suprx
3.60 SceNpEulaDialogPlugin 0x2800000000028089 vs0:sys/external/libcdlg_npeula.suprx
3.60 SceNpProfile2DialogPlugin 0x28000000000280A9 vs0:sys/external/libcdlg_npprofile2.suprx
3.60 SceNpMessageDialogPlugin 0x280000000002801A vs0:sys/external/libcdlg_np_message.suprx
3.60 SceNpSnsFbDialogPlugin 0x2800000000028082 vs0:sys/external/libcdlg_np_sns_fb.suprx
3.60 SceTrophySetupDialogPlugin 0x280000000002801B vs0:sys/external/libcdlg_np_trophy_setup.suprx
3.60 ScePhotoImportDialogPlugin 0x280000000002801C vs0:sys/external/libcdlg_photoimport.suprx
3.60 ScePhotoReviewDialogPlugin 0x280000000002801D vs0:sys/external/libcdlg_photoreview.suprx
3.60 ScePocsDialogPlugin 0x2800000000020040 vs0:sys/external/libcdlg_pocketstation.suprx
3.60 SceRemoteOSKDialogPlugin 0x2800000000017004 vs0:sys/external/libcdlg_remote_osk.suprx
3.60 SceSaveDataDialogPlugin 0x280000000002801E vs0:sys/external/libcdlg_savedata.suprx
3.60 SceTwitterDialogPlugin 0x2800000000028096 vs0:sys/external/libcdlg_twitter.suprx
3.60 SceTwLoginDialogPlugin 0x280000000002809A vs0:sys/external/libcdlg_tw_login.suprx
3.60 SceVideoImportDialogPlugin 0x28000000000280B3 vs0:sys/external/libcdlg_videoimport.suprx
3.60 SceClipboard 0x2800000000028020 vs0:sys/external/libclipboard.suprx
3.60 SceLibDbg 0x2800000000028023 vs0:sys/external/libdbg.suprx
3.60 SceFiber 0x2800000000028024 vs0:sys/external/libfiber.suprx
3.60 SceLibFios2 0x2800000000028026 vs0:sys/external/libfios2.suprx
3.60 SceLibG729 0x2800000000028027 vs0:sys/external/libg729.suprx
3.60 SceLibGameUpdate 0x28000000000280A1 vs0:sys/external/libgameupdate.suprx
3.60 SceHandwriting 0x280000000002807A vs0:sys/external/libhandwriting.suprx
3.60 SceLibHttp 0x2800000000028032 vs0:sys/external/libhttp.suprx
3.60 SceIme 0x2800000000028033 vs0:sys/external/libime.suprx
3.60 SceIpmiNonGameApp 0x2800000000028088 vs0:sys/external/libipmi_nongame.suprx
3.60 SceLibLocation 0x2800000000028036 vs0:sys/external/liblocation.suprx
3.60 SceLibLocationExtension 0x280000000002809C vs0:sys/external/liblocation_extension.suprx
3.60 SceLibLocationFactory 0x2800000000028092 vs0:sys/external/liblocation_factory.suprx
3.60 SceLibLocationInternal 0x2800000000028091 vs0:sys/external/liblocation_internal.suprx
3.60 SceLibMarlin 0x280000000002002C vs0:sys/external/libmln.suprx
3.60 MarlinAppLib 0x2800000000024003 vs0:sys/external/libmlnapplib.suprx
3.60 SceMarlinDownloader 0x2800000000020031 vs0:sys/external/libmlndownloader.suprx
3.60 SceAacenc 0x2800000000028078 vs0:sys/external/libnaac.suprx
3.60 SceNet 0x2800000000028037 vs0:sys/external/libnet.suprx
3.60 SceLibNetCtl 0x2800000000028038 vs0:sys/external/libnetctl.suprx
3.60 SceNgsUser 0x2800000000028039 vs0:sys/external/libngs.suprx
3.60 ScePaf 0x280000000002803A vs0:sys/external/libpaf.suprx
3.60 ScePafWebMapView 0x2800000000020039 vs0:sys/external/libpaf_web_map_view.suprx
3.60 ScePerf 0x280000000002803C vs0:sys/external/libperf.suprx
3.60 SceLibPgf 0x280000000002803D vs0:sys/external/libpgf.suprx
3.60 SceLibPvf 0x280000000002803E vs0:sys/external/libpvf.suprx
3.60 SceLibRudp 0x2800000000028043 vs0:sys/external/librudp.suprx
3.60 SceSasUser 0x2800000000028044 vs0:sys/external/libsas.suprx
3.60 SceAvPlayer 0x280000000002809E vs0:sys/external/libsceavplayer.suprx
3.60 SceBeisobmf 0x2800000000028093 vs0:sys/external/libSceBeisobmf.suprx
3.60 SceBemp2sys 0x2800000000028094 vs0:sys/external/libSceBemp2sys.suprx
3.60 SceCompanionUtil 0x2800000000017002 vs0:sys/external/libSceCompanionUtil.suprx
3.60 SceDtcpIp 0x280000000002808D vs0:sys/external/libSceDtcpIp.suprx
3.60 SceLibft2 0x2800000000028045 vs0:sys/external/libSceFt2.suprx
3.60 SceJpegArm 0x2800000000028046 vs0:sys/external/libscejpegarm.suprx
3.60 SceJpegEncArm 0x2800000000028047 vs0:sys/external/libscejpegencarm.suprx
3.60 SceLibJson 0x28000000000280AD vs0:sys/external/libSceJson.suprx
3.60 SceMp4 0x2800000000028076 vs0:sys/external/libscemp4.suprx
3.60 SceLibMp4Recorder 0x28000000000280A4 vs0:sys/external/libSceMp4Rec.suprx
3.60 SceMusicExport 0x2800000000028048 vs0:sys/external/libSceMusicExport.suprx
3.60 SceNearDialogUtil 0x280000000002809B vs0:sys/external/libSceNearDialogUtil.suprx
3.60 SceNearUtil 0x2800000000028049 vs0:sys/external/libSceNearUtil.suprx
3.60 ScePhotoExport 0x280000000002804A vs0:sys/external/libScePhotoExport.suprx
3.60 ScePromoterUtil 0x2800000000028081 vs0:sys/external/libScePromoterUtil.suprx
3.60 SceScreenShot 0x280000000002804B vs0:sys/external/libSceScreenShot.suprx
3.60 SceShutterSound 0x280000000002804C vs0:sys/external/libSceShutterSound.suprx
3.60 SceSqlite 0x280000000002804D vs0:sys/external/libSceSqlite.suprx
3.60 SceTelephonyUtil 0x280000000002808A vs0:sys/external/libSceTelephonyUtil.suprx
3.60 SceTeleportClient 0x28000000000280A3 vs0:sys/external/libSceTeleportClient.suprx
3.60 SceTeleportServer 0x28000000000280A2 vs0:sys/external/libSceTeleportServer.suprx
3.60 SceVideoExport 0x2800000000024001 vs0:sys/external/libSceVideoExport.suprx
3.60 SceVideoSearchEmpr 0x2800000000020034 vs0:sys/external/libSceVideoSearchEmpr.suprx
3.60 SceLibXml 0x280000000002804F vs0:sys/external/libSceXml.suprx
3.60 SceShellSvc 0x2800000000028050 vs0:sys/external/libshellsvc.suprx
3.60 SceLibSsl 0x2800000000028051 vs0:sys/external/libssl.suprx
3.60 SceSystemGesture 0x2800000000028053 vs0:sys/external/libsystemgesture.suprx
3.60 SceUlt 0x2800000000028054 vs0:sys/external/libult.suprx
3.60 SceVoice 0x2800000000028055 vs0:sys/external/libvoice.suprx
3.60 SceVoiceQoS 0x2800000000028056 vs0:sys/external/libvoiceqos.suprx
3.60 SceLiveAreaUtil 0x2800000000028057 vs0:sys/external/livearea_util.suprx
3.60 mail_api_for_local_libc 0x28000000000280A0 vs0:sys/external/mail_api_for_local_libc.suprx
3.60 SceNearProfile 0x2800000000028058 vs0:sys/external/near_profile.suprx
3.60 SceNotificationUtil 0x2800000000028085 vs0:sys/external/notification_util.suprx
3.60 SceNpActivityNet 0x2800000000028059 vs0:sys/external/np_activity.suprx
3.60 SceNpActivity 0x280000000002805A vs0:sys/external/np_activity_sdk.suprx
3.60 SceNpBasic 0x280000000002805B vs0:sys/external/np_basic.suprx
3.60 SceNpCommerce2 0x280000000002805C vs0:sys/external/np_commerce2.suprx
3.60 SceNpCommon 0x280000000002805D vs0:sys/external/np_common.suprx
3.60 SceNpCommonPs4 0x28000000000280A7 vs0:sys/external/np_common_ps4.suprx
3.60 SceNpFriendPrivacyLevel 0x280000000002805E vs0:sys/external/np_friend_privacylevel.suprx
3.60 SceNpKdc 0x280000000002805F vs0:sys/external/np_kdc.suprx
3.60 SceNpManager 0x2800000000028060 vs0:sys/external/np_manager.suprx
3.60 SceNpMatching2 0x2800000000028061 vs0:sys/external/np_matching2.suprx
3.60 SceNpMessage 0x2800000000028062 vs0:sys/external/np_message.suprx
3.60 SceNpMessageContactsPlugin 0x2800000000028074 vs0:sys/external/np_message_contacts.suprx
3.60 SceNpMessageDlgImplPlugin 0x2800000000028075 vs0:sys/external/np_message_dialog_impl.suprx
3.60 SceNpMessagePadding 0x2800000000028095 vs0:sys/external/np_message_padding.suprx
3.60 SceNpPartyGameUtil 0x2800000000028063 vs0:sys/external/np_party.suprx
3.60 SceNpScore 0x2800000000028064 vs0:sys/external/np_ranking.suprx
3.60 SceNpSignaling 0x280000000002808F vs0:sys/external/np_signaling.suprx
3.60 SceNpSnsFacebook 0x2800000000028084 vs0:sys/external/np_sns_facebook.suprx
3.60 SceNpTrophy 0x2800000000028065 vs0:sys/external/np_trophy.suprx
3.60 SceNpTus 0x2800000000028066 vs0:sys/external/np_tus.suprx
3.60 SceNpUtility 0x2800000000028067 vs0:sys/external/np_utility.suprx
3.60 SceNpWebApi 0x28000000000280A6 vs0:sys/external/np_webapi.suprx
3.60 ScePartyMemberListPlugin 0x280000000002808B vs0:sys/external/party_member_list.suprx
3.60 SceDrmPsmKdc 0x280000000002808E vs0:sys/external/psmkdc.suprx
3.60 SceLibPspnetAdhoc 0x280000000002808C vs0:sys/external/pspnet_adhoc.suprx
3.60 SceSignInExt 0x28000000000280AB vs0:sys/external/signin_ext.suprx
3.60 SceSqliteVsh 0x280000000002806E vs0:sys/external/sqlite.suprx
3.60 SceStoreCheckoutPlugin 0x280000000002806F vs0:sys/external/store_checkout_plugin.suprx
3.60 SceTriggerUtil 0x2800000000024002 vs0:sys/external/trigger_util.suprx
3.60 SceWebUIPlugin 0x2800000000028073 vs0:sys/external/web_ui_plugin.suprx
3.60 SceAppSettings 0x2800000000020002 vs0:vsh/common/app_settings.suprx
3.60 SceAuthPlugin 0x2800000000020003 vs0:vsh/common/auth_plugin.suprx
3.60 SceAvContentHandler 0x2800000000020004 vs0:vsh/common/av_content_handler.suprx
3.60 SceBackupRestore 0x280000000002002A vs0:vsh/common/backup_restore.suprx
3.60 SceContentOperation 0x2800000000020006 vs0:vsh/common/content_operation.suprx
3.60 SceDbRecovery 0x2800000000020007 vs0:vsh/common/dbrecovery_plugin.suprx
3.60 SceDbSetup 0x2800000000020008 vs0:vsh/common/dbsetup.suprx
3.60 SceBEAVCorePlayer 0x280000000002003C vs0:vsh/common/libBEAVCorePlayer.suprx
3.60 SceLibFflMp4 0x280000000002000F vs0:vsh/common/libFflMp4.suprx
3.60 SceLibical 0x2800000000020044 vs0:vsh/common/libical.suprx
3.60 SceLibicalss 0x2800000000020043 vs0:vsh/common/libicalss.suprx
3.60 SceLibMarlin 0x280000000002002C vs0:vsh/common/libmarlin.suprx
3.60 SceMarlinDownloader 0x2800000000020013 vs0:vsh/common/libmarlindownloader.suprx
3.60 SceLibMarlinPb 0x280000000002002D vs0:vsh/common/libmarlin_pb.suprx
3.60 SceLibMtp 0x2800000000020014 vs0:vsh/common/libmtp.suprx
3.60 SceLibMtpHttp 0x280000000002003A vs0:vsh/common/libmtphttp.suprx
3.60 SceLibMtpHttpWrapper 0x280000000002003B vs0:vsh/common/libmtphttp_wrapper.suprx
3.60 SceLibFflVuMp4 0x2800000000020037 vs0:vsh/common/libSenvuabsFFsdk.suprx
3.60 SceVideoProfiler 0x2800000000020016 vs0:vsh/common/libvideoprofiler.suprx
3.60 mail_api_for_local 0x2800000000020038 vs0:vsh/common/mail_api_for_local.suprx
3.60 SceMtpr3 0x280000000002001D vs0:vsh/common/mtpr3.suprx
3.60 SceMtpClient 0x280000000002001E vs0:vsh/common/mtp_client.suprx
3.60 SceNpGriefReport 0x280000000002002F vs0:vsh/common/np_grief_report.suprx
3.60 SceAACPromoter 0x2800000000020001 vs0:vsh/common/mms/AACPromoter.suprx
3.60 SceBmpPromoter 0x2800000000020005 vs0:vsh/common/mms/bmp_promoter.suprx
3.60 SceGifPromoter 0x280000000002000B vs0:vsh/common/mms/gif_promoter.suprx
3.60 SceJpegPromoter 0x280000000002000E vs0:vsh/common/mms/jpeg_promoter.suprx
3.60 SceMetaGen 0x280000000002001A vs0:vsh/common/mms/meta_gen.suprx
3.60 SceMp3Promoter 0x280000000002001B vs0:vsh/common/mms/Mp3Promoter.suprx
3.60 SceMsvPromoter 0x280000000002001C vs0:vsh/common/mms/MsvPromoter.suprx
3.60 ScePngPromoter 0x2800000000020020 vs0:vsh/common/mms/png_promoter.suprx
3.60 SceRiffPromoter 0x2800000000020022 vs0:vsh/common/mms/RiffPromoter.suprx
3.60 SceSensMe 0x2800000000020023 vs0:vsh/common/mms/SensMe.suprx
3.60 SceTiffPromoter 0x2800000000020027 vs0:vsh/common/mms/tiff_promoter.suprx
3.60 SceGameCardInstallerPlugin 0x280000000002003F vs0:vsh/game/gamecard_installer_plugin.suprx
3.60 SceGameDataPlugin 0x2800000000020009 vs0:vsh/game/gamedata_plugin.suprx
3.60 SceInitialSetup 0x2800000000000014 vs0:vsh/initialsetup/initialsetup.self
3.60 SceOnlineStoragePlugin 0x280000000002003E vs0:vsh/online_storage/online_storage_plugin.suprx
3.60 SceAuthResetPlugin 0x2800000000020029 vs0:vsh/shell/auth_reset_plugin.suprx
3.60 SceIduUpdate 0x280000000002002E vs0:vsh/shell/idu_update_plugin.suprx
3.60 SceImePlugin 0x280000000002000C vs0:vsh/shell/ime_plugin.suprx
3.60 SceImposeNet 0x280000000002000D vs0:vsh/shell/impose_net_plugin.suprx
3.60 SceLibLocationDolceProvide 0x280000000002003D vs0:vsh/shell/liblocation_dolce_provider.suprx
3.60 SceLibLocationPermission 0x2800000000020010 vs0:vsh/shell/liblocation_permission.suprx
3.60 SceLibLocationProvider 0x2800000000020011 vs0:vsh/shell/liblocation_provider.suprx
3.60 SceLsdb 0x2800000000020018 vs0:vsh/shell/livespace_db.suprx
3.60 SceLocationPlugin 0x2800000000020019 vs0:vsh/shell/location_dialog_plugin.suprx
3.60 SceShell 0x2800000000000001 vs0:vsh/shell/shell.self
3.60 SceTelInitialCheck 0x2800000000020025 vs0:vsh/shell/telephony/initial_check/tel_initial_check_plugin.suprx