Difference between revisions of "SceSblPostSsMgr"
CelesteBlue (talk | contribs) |
CelesteBlue (talk | contribs) |
||
Line 160: | Line 160: | ||
executes pm_sm_sd.self commands 9, A | executes pm_sm_sd.self commands 9, A | ||
− | === | + | === sceSblUtMgrExecuteUtokenSmCommand1ForDriver === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 168: | Line 168: | ||
|} | |} | ||
− | + | Executes [[F00D_Commands#utoken_sm.self|utoken_sm]] command 1. Get utoken buffer ??? | |
+ | |||
+ | Called by SceSblUtMgr_BDE74645. | ||
+ | |||
+ | <source lang="C"> | ||
+ | // size = 2048 | ||
+ | int sceSblUtMgrExecuteUtokenSmCommand1ForDriver(void* buf, SceSize size); | ||
+ | </source> | ||
+ | |||
+ | === sceSblUtMgrResetUtokenFileForDriver === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x1FF699DD | ||
+ | |} | ||
+ | |||
+ | Writes 0x800 blank tm0:utoken/utoken.dat or removes it. | ||
+ | |||
+ | Exported to userland by SceSblUtMgr_1CD57182. | ||
+ | |||
+ | <source lang="C">int sceSblUtMgrResetUtokenFileForDriver(void);</source> | ||
=== sceSblPostSsMgrDecryptSealedkeyForDriver === | === sceSblPostSsMgrDecryptSealedkeyForDriver === | ||
Line 268: | Line 289: | ||
<source lang="C">int sceSblPostSsMgrDebugDecryptKeystoneForDriver(char* keystone_data, char* dst_secret);</source> | <source lang="C">int sceSblPostSsMgrDebugDecryptKeystoneForDriver(char* keystone_data, char* dst_secret);</source> | ||
+ | |||
+ | === sceSblUtMgrHasComTestFlagForDriver === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x7ACCAA50 | ||
+ | |} | ||
+ | |||
+ | Derived from [[SceVshBridge#vshSblUtMgrHasComTestFlag|vshSblUtMgrHasComTestFlag]]. | ||
+ | |||
+ | <source lang="C">int sceSblUtMgrHasComTestFlagForDriver(void);</source> | ||
+ | |||
+ | === sceSblUtMgrHasStoreFlagForDriver === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x9D2E2D39 | ||
+ | |} | ||
+ | |||
+ | Derived from [[SceVshBridge#vshSblUtMgrHasStoreFlag|vshSblUtMgrHasStoreFlag]]. | ||
+ | |||
+ | <source lang="C">int sceSblUtMgrHasStoreFlagForDriver(void);</source> | ||
+ | |||
+ | === sceSblUtMgrHasNpTestFlagForDriver === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x9FD835B0 | ||
+ | |} | ||
+ | |||
+ | Derived from [[SceVshBridge#vshSblUtMgrHasNpTestFlag|vshSblUtMgrHasNpTestFlag]]. | ||
+ | |||
+ | <source lang="C">int sceSblUtMgrHasNpTestFlagForDriver(void);</source> | ||
+ | |||
+ | === sceSblUtMgrHasNpTestFlagForDriver === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x9FD835B0 | ||
+ | |} | ||
+ | |||
+ | Derived from [[SceVshBridge#vshSblUtMgrHasNpTestFlag|vshSblUtMgrHasNpTestFlag]]. | ||
+ | |||
+ | <source lang="C">int sceSblUtMgrHasNpTestFlagForDriver(void);</source> | ||
== SceZlibForDriver == | == SceZlibForDriver == | ||
Line 274: | Line 343: | ||
== SceSblPmMgr == | == SceSblPmMgr == | ||
+ | |||
+ | === sceSblPmMgrSetProductModeOffForUser === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x41FE8A37 | ||
+ | |} | ||
+ | |||
+ | === sceSblPmMgrGetProductModeForUser === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x46EA9FDB | ||
+ | |} | ||
+ | |||
+ | === sceSblPmMgrGetProductModeFromNVS === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x49CE0DDF | ||
+ | |} | ||
+ | |||
+ | === sceSblPmMgrAuthEtoI === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xBD38B141 | ||
+ | |} | ||
+ | |||
+ | === sceSblPmMgrGetCurrentMode === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xDA4EDEBF | ||
+ | |} | ||
== SceSblRtcMgr == | == SceSblRtcMgr == | ||
+ | |||
+ | === sceSblRtcMgrGetCpRtcPhysicalForUser === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x1614302B | ||
+ | |} | ||
+ | |||
+ | === sceSblRtcMgrSetCpActivationKey === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x298AE544 | ||
+ | |} | ||
+ | |||
+ | === sceSblRtcMgrSetCpRtcPhysicalAndKey === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x3C0EEC69 | ||
+ | |} | ||
+ | |||
+ | === sceSblRtcMgrSetCpRtcLogical === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x9DFB118B | ||
+ | |} | ||
+ | |||
+ | === sceSblRtcMgrSetCpRtcPhysicalForUser === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xA990BC44 | ||
+ | |} | ||
+ | |||
+ | === sceSblRtcMgrGetCpRtcLogical === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xDD44D726 | ||
+ | |} | ||
+ | |||
+ | === sceSblRtcMgrGetCpSerialId === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xE162A827 | ||
+ | |} | ||
== SceSblLicMgr == | == SceSblLicMgr == | ||
− | Functions related to [[F00D_Commands#act_sm.self|afv file]] | + | Functions related to [[F00D_Commands#act_sm.self|afv file]]. |
=== sceSblLicMgrGetIssueNo === | === sceSblLicMgrGetIssueNo === | ||
Line 316: | Line 481: | ||
typedef struct activation_key // size is 0x14 | typedef struct activation_key // size is 0x14 | ||
{ | { | ||
− | char | + | char open_psid[0x10]; // obtained with sceSblSsMgrGetOpenPsIdForDriver |
− | uint32_t vadd_hash; // result of vector add operation applied to | + | uint32_t vadd_hash; // result of vector add operation applied to openPSID |
− | }activation_key; | + | } activation_key; |
int sceSblLicMgrGetActivationKey(activation_key* key); | int sceSblLicMgrGetActivationKey(activation_key* key); | ||
Line 332: | Line 497: | ||
<source lang="C"> | <source lang="C"> | ||
− | //activates from ux0:/data/activate/ | + | // activates from ux0:/data/activate/ |
int sceSblLicMgrActivateFromFs(); | int sceSblLicMgrActivateFromFs(); | ||
− | |||
</source> | </source> | ||
Line 380: | Line 544: | ||
<source lang="C"> | <source lang="C"> | ||
− | //afv_path is of size 0x100 | + | // afv_path is of size 0x100 |
int sceSblLicMgrActivateDevkit(char* afv_path); | int sceSblLicMgrActivateDevkit(char* afv_path); | ||
</source> | </source> | ||
== SceSblUtMgr == | == SceSblUtMgr == | ||
+ | |||
+ | === SceSblUtMgr_BDE74645 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xBDE74645 | ||
+ | |} | ||
+ | |||
+ | <source lang="C">int SceSblUtMgr_BDE74645(char* buf, SceSize size);</source> | ||
+ | |||
+ | === SceSblUtMgr_D2836E0D === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xD2836E0D | ||
+ | |} | ||
+ | |||
+ | <source lang="C">int SceSblUtMgr_D2836E0D(int a1, int SceSize size);</source> | ||
+ | |||
+ | === sceSblUtMgrResetUtokenFile === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x1CD57182 | ||
+ | |} | ||
+ | |||
+ | Calls [[SceSblPostSsMgr#sceSblUtMgrResetUtokenFileForDriver|sceSblUtMgrResetUtokenFileForDriver()]]. | ||
+ | |||
+ | <source lang="C">int sceSblUtMgrResetUtokenFile(void);</source> | ||
+ | |||
+ | === SceSblUtMgr_CFCB1355 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xCFCB1355 | ||
+ | |} | ||
+ | |||
+ | <source lang="C">int SceSblUtMgr_CFCB1355(int a1);</source> | ||
+ | |||
+ | === SceSblUtMgr_04CA1311 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x04CA1311 | ||
+ | |} | ||
+ | |||
+ | <source lang="C">int SceSblUtMgr_04CA1311(char* buf, SceSize size);</source> |
Revision as of 00:20, 25 March 2018
Module
Known NIDs
Version | Name | World | Privilege | NID |
---|---|---|---|---|
3.60 | SceSblPostSsMgr | Non-secure | Kernel | 0xB6C941F2 |
Libraries
Known NIDs
Version | Name | World | Visibility | NID |
---|---|---|---|---|
3.60 | SceSblPostSsMgrForDriver | ? | Kernel | 0x2254E1B2 |
3.60 | SceZlibForDriver | ? | Kernel | 0xE241534E |
3.60 | SceSblFwLoaderForDriver | ? | Kernel | 0x6FE424E4 |
3.60 | SceSblPmMgr | ? | User | 0xA9CE5795 |
3.60 | SceSblRtcMgr | ? | User | 0x44C5F209 |
3.60 | SceSblLicMgr | ? | User | 0x62083C72 |
3.60 | SceSblUtMgr | ? | User | 0x000DF81A |
SceSblPostSsMgrForDriver
Types
typedef struct spsfo_ctx
{
SceUID mem_uid; //SceSblSpsfoMgr
void* mem_block_base;
uint32_t unk_8;
} spsfo_ctx;
sceSblPostSsMgrInitializeSpfsoCtxForDriver
Version | NID |
---|---|
3.60 | 0xBDF18922 |
derived from _vshSblAuthMgrVerifySpsfo
int sceSblPostSsMgrInitializeSpfsoCtxForDriver(char *path, spsfo_ctx *result);
sceSblPostSsMgrVerifySpfsoCtxForDriver
Version | NID |
---|---|
3.60 | 0x686B9461 |
derived from _vshSblAuthMgrVerifySpsfo
int sceSblPostSsMgrVerifySpfsoCtxForDriver(spsfo_ctx *ctx, int *res, int *size);
sceSblPostSsMgrReleaseSpfsoCtxForDriver
Version | NID |
---|---|
3.60 | 0xAD3B0078 |
derived from _vshSblAuthMgrVerifySpsfo
int sceSblPostSsMgrReleaseSpfsoCtxForDriver(spsfo_ctx *ctx);
sceSblPostSsMgrSetCpRtcForDriver
Version | NID |
---|---|
3.60 | 0x3F9BDEDF |
Set RTC in DevKit CP.
int sceSblPostSsMgrSetCpRtcForDriver(int rtc);
sceSblPostSsMgrGetExpireDateForDriver
Version | NID |
---|---|
3.60 | 0x4FF2682F |
Get activation data expire date
int sceSblPostSsMgrGetExpireDateForDriver(int *expire_date, int request_data_flag);
sceSblPostSsMgrActivateForDriver
Version | NID |
---|---|
3.60 | 0x0298382B |
int sceSblPostSsMgrActivateForDriver(char *afv_path);
sceSblPostSsMgrExecutePmSmF00dCommandForDriver
Version | NID |
---|---|
3.60 | 0xADF92824 |
executes pm_sm.self commands 2,3,4,5,6,7,8,9,A
sceSblPostSsMgrExecutePmSmF00dCommandForDriver
Version | NID |
---|---|
3.60 | 0xFE92A318 |
executes pm_sm.self commands 2,3,4,5,6,7,8,9,A
sceSblPostSsMgrExecutePmSmF00dCommand8ForDriver
Version | NID |
---|---|
3.60 | 0x4663C195 |
executes pm_sm.self command 8
sceSblPostSsMgrExecutePmSmSdF00dCommandForDriver
Version | NID |
---|---|
3.60 | 0x19B63D65 |
executes pm_sm_sd.self commands 9, A
sceSblUtMgrExecuteUtokenSmCommand1ForDriver
Version | NID |
---|---|
3.60 | 0xC2E58CE3 |
Executes utoken_sm command 1. Get utoken buffer ???
Called by SceSblUtMgr_BDE74645.
// size = 2048
int sceSblUtMgrExecuteUtokenSmCommand1ForDriver(void* buf, SceSize size);
sceSblUtMgrResetUtokenFileForDriver
Version | NID |
---|---|
3.60 | 0x1FF699DD |
Writes 0x800 blank tm0:utoken/utoken.dat or removes it.
Exported to userland by SceSblUtMgr_1CD57182.
int sceSblUtMgrResetUtokenFileForDriver(void);
sceSblPostSsMgrDecryptSealedkeyForDriver
Version | NID |
---|---|
3.60 | 0x33275F95 |
data
is 0x50 bytes of data from sealedkey
this function:
verifies pfsSKKey header
decrypts aes_key(pfsSKKey__EncKey) and hmac_key(pfsSKKey__Secret) using sceSblSsMgrEncryptWithPortabilityForDriver
verifies hmac256 value in HMAC Value
decrypts Encrypted key
into dst_secret
//data - size 0x50
//dst_secret - size 0x10
int sceSblPostSsMgrDecryptSealedkeyForDriver(char* data, char* dst_secret);
sceSblPostSsMgrEncryptSealedkeyForDriver
Version | NID |
---|---|
3.60 | 0x08525D8D |
data
is 0x50 bytes of data like in sealedkey
this function:
writes pfsSKKey header
decrypts aes_key(pfsSKKey__EncKey) and hmac_key(pfsSKKey__Secret) using sceSblSsMgrEncryptWithPortabilityForDriver
randomly generates 0x10 bytes of IV with sceSblSsMgrGetRandomNumberForDriver
randomly generates 0x10 bytes of secret with sceSblSsMgrGetRandomNumberForDriver
encrypts the secret into Encrypted key
calculates hmac256 value into HMAC Value
//dest_data - size 0x50
int sceSblPostSsMgrEncryptSealedkeyForDriver (char* dest_data);
sceSblPostSsMgrVerifyKeystoneForDriver
Version | NID |
---|---|
3.60 | 0xDDA6FA6D |
This function verifies magic in the header and HMAC of the keystone file
int sceSblPostSsMgrVerifyKeystoneForDriver(char* data, int version);
sceSblPostSsMgrVerifyKeystoneWithPasscodeForDriver
Version | NID |
---|---|
3.60 | 0xF86F1452 |
This function calls sceSblPostSsMgrVerifyKeystoneForDriver. Then also verifies HMAC of passcode.
int sceSblPostSsMgrVerifyKeystoneWithPasscodeForDriver(char* keystone_data, char* passcode);
sceSblPostSsMgrDebugEncryptKeystoneForDriver
Version | NID |
---|---|
3.60 | 0x42474C8B |
int sceSblPostSsMgrDebugEncryptKeystoneForDriver(char* src_secret, char* dest_data);
sceSblPostSsMgrDebugDecryptKeystoneForDriver
Version | NID |
---|---|
3.60 | 0xCC5AA5A5 |
int sceSblPostSsMgrDebugDecryptKeystoneForDriver(char* keystone_data, char* dst_secret);
sceSblUtMgrHasComTestFlagForDriver
Version | NID |
---|---|
3.60 | 0x7ACCAA50 |
Derived from vshSblUtMgrHasComTestFlag.
int sceSblUtMgrHasComTestFlagForDriver(void);
sceSblUtMgrHasStoreFlagForDriver
Version | NID |
---|---|
3.60 | 0x9D2E2D39 |
Derived from vshSblUtMgrHasStoreFlag.
int sceSblUtMgrHasStoreFlagForDriver(void);
sceSblUtMgrHasNpTestFlagForDriver
Version | NID |
---|---|
3.60 | 0x9FD835B0 |
Derived from vshSblUtMgrHasNpTestFlag.
int sceSblUtMgrHasNpTestFlagForDriver(void);
sceSblUtMgrHasNpTestFlagForDriver
Version | NID |
---|---|
3.60 | 0x9FD835B0 |
Derived from vshSblUtMgrHasNpTestFlag.
int sceSblUtMgrHasNpTestFlagForDriver(void);
SceZlibForDriver
SceSblFwLoaderForDriver
SceSblPmMgr
sceSblPmMgrSetProductModeOffForUser
Version | NID |
---|---|
3.60 | 0x41FE8A37 |
sceSblPmMgrGetProductModeForUser
Version | NID |
---|---|
3.60 | 0x46EA9FDB |
sceSblPmMgrGetProductModeFromNVS
Version | NID |
---|---|
3.60 | 0x49CE0DDF |
sceSblPmMgrAuthEtoI
Version | NID |
---|---|
3.60 | 0xBD38B141 |
sceSblPmMgrGetCurrentMode
Version | NID |
---|---|
3.60 | 0xDA4EDEBF |
SceSblRtcMgr
sceSblRtcMgrGetCpRtcPhysicalForUser
Version | NID |
---|---|
3.60 | 0x1614302B |
sceSblRtcMgrSetCpActivationKey
Version | NID |
---|---|
3.60 | 0x298AE544 |
sceSblRtcMgrSetCpRtcPhysicalAndKey
Version | NID |
---|---|
3.60 | 0x3C0EEC69 |
sceSblRtcMgrSetCpRtcLogical
Version | NID |
---|---|
3.60 | 0x9DFB118B |
sceSblRtcMgrSetCpRtcPhysicalForUser
Version | NID |
---|---|
3.60 | 0xA990BC44 |
sceSblRtcMgrGetCpRtcLogical
Version | NID |
---|---|
3.60 | 0xDD44D726 |
sceSblRtcMgrGetCpSerialId
Version | NID |
---|---|
3.60 | 0xE162A827 |
SceSblLicMgr
Functions related to afv file.
sceSblLicMgrGetIssueNo
Version | NID |
---|---|
3.60 | 0x0E0691A1 |
// if request_data_flag is 0 then some cached value is used
// if request_data_flag is 1 then data is requested from syscon
int sceSblLicMgrGetIssueNo(int *issue_number, int request_data_flag);
sceSblLicMgrGetLicenseStatus
Version | NID |
---|---|
3.60 | 0x0EA6A30C |
int sceSblLicMgrGetLicenseStatus();
sceSblLicMgrGetActivationKey
Version | NID |
---|---|
3.60 | 0x2A437187 |
typedef struct activation_key // size is 0x14
{
char open_psid[0x10]; // obtained with sceSblSsMgrGetOpenPsIdForDriver
uint32_t vadd_hash; // result of vector add operation applied to openPSID
} activation_key;
int sceSblLicMgrGetActivationKey(activation_key* key);
sceSblLicMgrActivateFromFs
Version | NID |
---|---|
3.60 | 0x6E56EA0A |
// activates from ux0:/data/activate/
int sceSblLicMgrActivateFromFs();
sceSblLicMgrGetUsageTimeLimit
Version | NID |
---|---|
3.60 | 0x774EBBA2 |
int sceSblLicMgrGetUsageTimeLimit(int *time_limit);
sceSblLicMgrClearActivationData
Version | NID |
---|---|
3.60 | 0x9B749D1D |
int sceSblLicMgrClearActivationData();
sceSblLicMgrGetExpireDate
Version | NID |
---|---|
3.60 | 0xE9FA0FE5 |
// if request_data_flag is 0 then some cached value is used
// if request_data_flag is 1 then data is requested from syscon
int sceSblLicMgrGetExpireDate(int *expire_date, int request_data_flag);
sceSblLicMgrActivateDevkit
Version | NID |
---|---|
3.60 | 0xEB21DD39 |
// afv_path is of size 0x100
int sceSblLicMgrActivateDevkit(char* afv_path);
SceSblUtMgr
SceSblUtMgr_BDE74645
Version | NID |
---|---|
3.60 | 0xBDE74645 |
int SceSblUtMgr_BDE74645(char* buf, SceSize size);
SceSblUtMgr_D2836E0D
Version | NID |
---|---|
3.60 | 0xD2836E0D |
int SceSblUtMgr_D2836E0D(int a1, int SceSize size);
sceSblUtMgrResetUtokenFile
Version | NID |
---|---|
3.60 | 0x1CD57182 |
Calls sceSblUtMgrResetUtokenFileForDriver().
int sceSblUtMgrResetUtokenFile(void);
SceSblUtMgr_CFCB1355
Version | NID |
---|---|
3.60 | 0xCFCB1355 |
int SceSblUtMgr_CFCB1355(int a1);
SceSblUtMgr_04CA1311
Version | NID |
---|---|
3.60 | 0x04CA1311 |
int SceSblUtMgr_04CA1311(char* buf, SceSize size);