Difference between revisions of "SceSblACMgr"

From Vita Development Wiki
Jump to navigation Jump to search
Line 33: Line 33:
  
 
== SceSblACMgrForKernel ==
 
== SceSblACMgrForKernel ==
 +
 +
=== PathId ===
 +
 +
A code is passed in the header context to decrypt a SELF based on where the SELF file must be located. This is likely a security feature to prevent SELFs that are designed to run from one path (for example <code>os0</code>) from being copied and run from another path.
 +
 +
{| class="wikitable"
 +
|-
 +
! Path !! PathId
 +
|-
 +
| ux0:user || 0
 +
|-
 +
| sd0 || 1
 +
|-
 +
| os0 || 2
 +
|-
 +
| vs0 || 3
 +
|-
 +
| vd0 || 4
 +
|-
 +
| tm0 || 5
 +
|-
 +
| ur0 || 6
 +
|-
 +
| host0 || 7
 +
|-
 +
| boot0 || 10
 +
|-
 +
| ud0 || 11
 +
|-
 +
| ux0 || 12
 +
|-
 +
| gro0:app || 13
 +
|-
 +
| gro0:patch || 14
 +
|-
 +
| sa0 || 15
 +
|-
 +
| mfa0 || 16
 +
|-
 +
| mfb0 || 17
 +
|-
 +
| lma0 || 18
 +
|-
 +
| lmb0 || 19
 +
|-
 +
| lmc0 || 20
 +
|-
 +
| lmd0 || 21
 +
|-
 +
| pd0 || 22
 +
|-
 +
| ux0:app || 23
 +
|-
 +
| ux0:patch || 24
 +
|-
 +
| ux0:data || 25
 +
|-
 +
| uma0 || 27
 +
|}
 +
  
 
=== sceSblACMgrGetPathIdForKernel ===
 
=== sceSblACMgrGetPathIdForKernel ===
Line 42: Line 102:
 
|}
 
|}
  
<source lang="C">sceSblACMgrGetPathIdForKernel(const char *path, int* pathId);</source>
+
<source lang="C">
 +
 
 +
/* item_8FA4FC deobfuscated data
 +
item_8FA4FC <0x8FA3A8, 2, 0x8FA43C, 1, 1> ; sd
 +
item_8FA4FC <0x8FA39C, 2, 0x8FA43C, 1, 2> ; os
 +
item_8FA4FC <0x8FA4B8, 2, 0x8FA43C, 1, 3> ; vs
 +
item_8FA4FC <0x8FA17C, 2, 0x8FA43C, 1, 4> ; vd
 +
item_8FA4FC <0x8FA444, 2, 0x8FA43C, 1, 5> ; tm
 +
item_8FA4FC <0x8FA4A0, 2, 0x8FA43C, 1, 6> ; ur
 +
item_8FA4FC <0x8FA0CC, 4, 0x8FA43C, 1, 7> ; host
 +
item_8FA4FC <0x8FA3EC, 2, 0x8FA43C, 1, 0xB> ; ud
 +
item_8FA4FC <0x8FA4A8, 2, 0x8FA384, 4, 0x17> ; ux:app
 +
item_8FA4FC <0x8FA4A8, 2, 0x8FA468, 5, 0x17> ; ux:/app
 +
item_8FA4FC <0x8FA4A8, 2, 0x8FA498, 6, 0x18> ; ux:patch
 +
item_8FA4FC <0x8FA4A8, 2, 0x8FA448, 7, 0x18> ; ux:/patch
 +
item_8FA4FC <0x8FA4A8, 2, 0x8FA4E4, 5, 0x19> ; ux:data
 +
item_8FA4FC <0x8FA4A8, 2, 0x8FA38C, 6, 0x19> ; ux:/data
 +
item_8FA4FC <0x8FA4A8, 2, 0x8FA0DC, 5, 0> ; ux:user
 +
item_8FA4FC <0x8FA4A8, 2, 0x8FA3BC, 6, 0> ; ux:/user
 +
item_8FA4FC <0x8FA4A8, 2, 0x8FA43C, 1, 0xC> ; ux
 +
item_8FA4FC <0x8FA4C4, 3, 0x8FA384, 4, 0xD> ; gro:app
 +
item_8FA4FC <0x8FA4C4, 3, 0x8FA468, 5, 0xD> ; gro:/app
 +
item_8FA4FC <0x8FA4A4, 3, 0x8FA498, 6, 0xE> ; grw:patch
 +
item_8FA4FC <0x8FA4A4, 3, 0x8FA448, 7, 0xE> ; grw:/patch
 +
item_8FA4FC <0x8FA430, 2, 0x8FA43C, 1, 0xF> ; sa
 +
item_8FA4FC <0x8FA440, 3, 0x8FA43C, 1, 0x10> ; mfa
 +
item_8FA4FC <0x8FA394, 3, 0x8FA43C, 1, 0x11> ; mfb
 +
item_8FA4FC <0x8FA48C, 3, 0x8FA43C, 1, 0x12> ; lma
 +
item_8FA4FC <0x8FA490, 3, 0x8FA43C, 1, 0x13> ; lmb
 +
item_8FA4FC <0x8FA494, 3, 0x8FA43C, 1, 0x14> ; lmc
 +
item_8FA4FC <0x8FA398, 3, 0x8FA43C, 1, 0x15> ; lmd
 +
item_8FA4FC <0x8FA4C8, 2, 0x8FA43C, 1, 0x16> ; pd
 +
item_8FA4FC <0x8FA4B4, 3, 0x8FA43C, 1, 0x1B> ;  uma
 +
*/
 +
 
 +
struct item_8FA4FC
 +
{
 +
char *partition;
 +
int partition_len;
 +
char *folder;
 +
int folder_len;
 +
int path_id;
 +
};
 +
 
 +
sceSblACMgrGetPathIdForKernel(const char *path, int* pathId);
 +
</source>
  
 
== SceSblACMgrForDriver ==
 
== SceSblACMgrForDriver ==

Revision as of 17:09, 19 March 2018

Module

Known NIDs

Version Name World Privilege NID
1.69 SceSblACMgr Non-secure Kernel 0xB6E5AEBE
3.60 SceSblACMgr Non-secure Kernel 0x7474D6F9

Libraries

Known NIDs

Version Name World Visibility NID
1.69 SceSblACMgrForKernel Non-secure Kernel 0x11F9B314
3.60 SceSblACMgrForKernel Non-secure Kernel 0x11F9B314
1.69 SceSblACMgrForDriver Non-secure Kernel 0x9AD8E213
3.60 SceSblACMgrForDriver Non-secure Kernel 0x9AD8E213
1.69 SceSblACMgr Non-secure User 0xF069F219
3.60 SceSblACMgr Non-secure User 0xF069F219

SceSblACMgrForKernel

PathId

A code is passed in the header context to decrypt a SELF based on where the SELF file must be located. This is likely a security feature to prevent SELFs that are designed to run from one path (for example os0) from being copied and run from another path.

Path PathId
ux0:user 0
sd0 1
os0 2
vs0 3
vd0 4
tm0 5
ur0 6
host0 7
boot0 10
ud0 11
ux0 12
gro0:app 13
gro0:patch 14
sa0 15
mfa0 16
mfb0 17
lma0 18
lmb0 19
lmc0 20
lmd0 21
pd0 22
ux0:app 23
ux0:patch 24
ux0:data 25
uma0 27


sceSblACMgrGetPathIdForKernel

Version World NID
3.60 non-secure 0xD442962E
/* item_8FA4FC deobfuscated data
item_8FA4FC <0x8FA3A8, 2, 0x8FA43C, 1, 1> ; sd
item_8FA4FC <0x8FA39C, 2, 0x8FA43C, 1, 2> ; os
item_8FA4FC <0x8FA4B8, 2, 0x8FA43C, 1, 3> ; vs
item_8FA4FC <0x8FA17C, 2, 0x8FA43C, 1, 4> ; vd
item_8FA4FC <0x8FA444, 2, 0x8FA43C, 1, 5> ; tm
item_8FA4FC <0x8FA4A0, 2, 0x8FA43C, 1, 6> ; ur
item_8FA4FC <0x8FA0CC, 4, 0x8FA43C, 1, 7> ; host
item_8FA4FC <0x8FA3EC, 2, 0x8FA43C, 1, 0xB> ; ud
item_8FA4FC <0x8FA4A8, 2, 0x8FA384, 4, 0x17> ; ux:app
item_8FA4FC <0x8FA4A8, 2, 0x8FA468, 5, 0x17> ; ux:/app
item_8FA4FC <0x8FA4A8, 2, 0x8FA498, 6, 0x18> ; ux:patch
item_8FA4FC <0x8FA4A8, 2, 0x8FA448, 7, 0x18> ; ux:/patch
item_8FA4FC <0x8FA4A8, 2, 0x8FA4E4, 5, 0x19> ; ux:data
item_8FA4FC <0x8FA4A8, 2, 0x8FA38C, 6, 0x19> ; ux:/data
item_8FA4FC <0x8FA4A8, 2, 0x8FA0DC, 5, 0> ; ux:user
item_8FA4FC <0x8FA4A8, 2, 0x8FA3BC, 6, 0> ; ux:/user
item_8FA4FC <0x8FA4A8, 2, 0x8FA43C, 1, 0xC> ; ux
item_8FA4FC <0x8FA4C4, 3, 0x8FA384, 4, 0xD> ; gro:app
item_8FA4FC <0x8FA4C4, 3, 0x8FA468, 5, 0xD> ; gro:/app
item_8FA4FC <0x8FA4A4, 3, 0x8FA498, 6, 0xE> ; grw:patch
item_8FA4FC <0x8FA4A4, 3, 0x8FA448, 7, 0xE> ; grw:/patch
item_8FA4FC <0x8FA430, 2, 0x8FA43C, 1, 0xF> ; sa
item_8FA4FC <0x8FA440, 3, 0x8FA43C, 1, 0x10> ; mfa
item_8FA4FC <0x8FA394, 3, 0x8FA43C, 1, 0x11> ; mfb
item_8FA4FC <0x8FA48C, 3, 0x8FA43C, 1, 0x12> ; lma
item_8FA4FC <0x8FA490, 3, 0x8FA43C, 1, 0x13> ; lmb
item_8FA4FC <0x8FA494, 3, 0x8FA43C, 1, 0x14> ; lmc
item_8FA4FC <0x8FA398, 3, 0x8FA43C, 1, 0x15> ; lmd
item_8FA4FC <0x8FA4C8, 2, 0x8FA43C, 1, 0x16> ; pd
item_8FA4FC <0x8FA4B4, 3, 0x8FA43C, 1, 0x1B> ;  uma
*/

struct item_8FA4FC
{
char *partition;
int partition_len;
char *folder;
int folder_len;
int path_id;
};

sceSblACMgrGetPathIdForKernel(const char *path, int* pathId);

SceSblACMgrForDriver

sceSblACMgrHasCapabilityForDriver

Version World NID
3.60 non-secure 0xC2D1F2FC

sceSblACMgrIsShellForDriver

Version World NID
3.60 non-secure 0x8612B243

sceSblACMgrIsSystemForDriver

Version World NID
3.60 non-secure 0x0948F41C

sceSblACMgrIsGameProgramForDriver

Version World NID
3.60 non-secure 0x1298C647

sceSblACMgrIsNonGameProgramForDriver

Version World NID
3.60 non-secure 0x6C5AB07F

sceSblACMgrIsDevelopmentModeForDriver

Version World NID
3.60 non-secure 0xE87D1777

sceSblACMgrIsPspEmuForDriver

Version World NID
3.60 non-secure 0xFD00C72A

SceSblACMgr

_sceSblACMgrIsGameProgram

Version World NID
1.69 non-secure 0x3C17A7F7
3.60 non-secure 0x3C17A7F7