Difference between revisions of "SceSblACMgr"
Jump to navigation
Jump to search
CelesteBlue (talk | contribs) |
CelesteBlue (talk | contribs) |
||
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 |