|
|
Line 785: |
Line 785: |
| The function is using for copying tool's xml to host, reading tool's xml, and more cmds. | | The function is using for copying tool's xml to host, reading tool's xml, and more cmds. |
|
| |
|
| <source lang="c">int sceRegMgrRequestFromHostForDebugger(int cmd, SceRegMgrKeyParamForDebugger *a2);</source> | | <source lang="c">int sceRegMgrRequestFromHostForDebugger(int cmd, void *pParam);</source> |
|
| |
|
| === SceRegMgrForDebugger_8E798E47 === | | === SceRegMgrForDebugger_8E798E47 === |
Module
Version |
World |
Privilege
|
1.69-3.60 |
Non-secure |
Kernel
|
Libraries
Known NIDs
os0:kd/registry.db0
The registry database has a plaintext header and then the remaining text is xor-"encrypted" using the "key" {0x89, 0xFA, 0x95, 0x48, 0xCB, 0x6D, 0x77, 0x9D, 0xA2, 0x25, 0x34, 0xFD, 0xA9, 0x35, 0x59, 0x6E}
. To "decrypt", just xor every 16 byte (after the header) with the "key".
File overview
;#
at beginning of a line comments this line
Exemple: line 5 is always :
;# XXXXXXXX (YYYY/MM/DD HH:mm)
where:
- XXXXXXXX is system software version
- (YYYY/MM/DD HH:mm) is build time
Areas
[ <TYPE>
line starts a registry area
Possible values:
- BASE: table of ID <-> name
- REG-BAS: Base
- REG-J1: Japan
- REG-UC2: USA/Canada
- REG-AU3: Australia/New Zealand
- REG-CEK: United Kingdom
- REG-CEL: Europe
- REG-KR2: Korea
- REG-E12: South Asia
- REG-TW1: Taiwan
- REG-RU3: Russia
- REG-MX2: Mexico
- REG-CN9: China
- REG-DEX: DEX (TestKit)
- REG-TOL: TOOL (DevKit)
- REG-BAS_D: Base Dolce (PS TV)
- REG-TOL_D: TOOL Dolce (DevKit in PS TV Emulation mode)
When PSVita is initialized at first boot, it first applies base registry, then it applies registry of the console's region / tyoe.
entries ID <-> entries name table
Example:
[BASE
1=REGISTRY/
2=category_version
3=region_no
4=serial_id
5=check_qaf
6=ERROR/
There are 2 types of registry entries:
- categories (folders): they are uppercase and end with
/
- keys: they are lowercase and do not end with
/
Registry entries
Example:
[REG-BAS
/1/2=0:4:1:0:0:0:99:99:0:0:0:0:0:0:1:3473428:
/1/3=0:4:1:0:0:0:99:99:0:0:0:0:0:0:1:0:
/1/4=2:32:0:0:0:0:99:99:0:0:0:0:0:0:129:0:
/1/5=0:4:1:16:44:0:0:0:0:0:0:0:0:0:1:0:
/1/6/7=0:4:1:32:0:0:0:0:0:0:0:0:0:0:1:0:
/1/6/8/9=2:32:0:16416:0:0:99:99:0:0:0:0:0:0:0:0:
/1/6/8/10=2:96:0:16416:0:0:99:99:0:0:0:0:0:0:0:0:
/11/12/13=0:4:1:32:0:0:30:30:0:0:0:0:1:1:1:0:
/11/12/14=1:17:1:32:0:0:30:30:1:0:1:0:0:0:128:0:
/11/12/15=0:4:1:8224:0:0:30:30:1:0:1:0:1:1:1:1:
/11/12/16=0:4:1:8240:0:0:30:30:1:0:1:0:1:1:1:1:
/11/12/17=0:4:1:8224:0:0:30:30:1:0:1:0:0:0:1:1:
/11/12/18=0:4:1:8240:0:0:30:30:0:0:0:0:1:1:1:0:
/11/12/19=0:4:1:32:0:0:30:30:0:0:0:0:1:0:1:0:
/11/12/20=0:4:1:32:0:0:30:30:0:0:0:0:1:0:1:1:
/11/12/21=0:4:1:32:0:0:30:30:0:0:0:0:1:0:1:1:
Format is: <ID>/<ID2>/<ID3>/<ID4>/<ID5>=<value0>:<size>:<value2>:<value3>:<value4>:<value5>:<value6>:<value7>:<value8>:<value9>:<valueA>:<valueB>:<valueC>:<valueD>:<valueE>:<default_value>:
Where IDs are the entries ID, that for human understanding we have to change into entries name.
Example:
/1/2=0:4:1:0:0:0:99:99:0:0:0:0:0:0:1:3473428:
is translated into
/REGISTRY/category_version=0:4:1:0:0:0:99:99:0:0:0:0:0:0:1:3473428:
Values are in decimal, but for understanding we have sometime to translate them to hexadecimal:
/REGISTRY/category_version=0:4:1:0:0:0:0x63:0x63:0:0:0:0:0:0:1:0x350014:
We can see that size is 4 bytes and that default value is 0x350014 aka version 3.500.14.
More values
Found by reversing old modules.
- 0x00: UP DATE
- 0x10: FACTORY
- 0x20: SYSTEM
- 0x30: DEBUG
- 0x40: REGION
- default: ERROR!!
and on another flag level:
SceRegMgrForDriver
sceRegMgrGetRegVersionForDriver
Version |
NID
|
1.69-3.60 |
0x74A0FB10
|
sceRegMgrIsBlueScreenForDriver
Version |
NID
|
1.69-3.60 |
0x282027B7
|
sceRegMgrResetRegistryLvForDriver
Version |
NID
|
1.69-3.60 |
0x2B5F3E20
|
sceRegMgrGetKeyBinForDriver
Version |
NID
|
1.69-3.60 |
0x0B98D646
|
sceRegMgrGetKeyIntForDriver
Version |
NID
|
1.69-3.60 |
0x16DDF3DC
|
sceRegMgrGetKeyStrForDriver
Version |
NID
|
1.69-3.60 |
0xE188382F
|
sceRegMgrGetKeysForDriver
Version |
NID
|
1.69-3.60 |
0x5B161504
|
sceRegMgrGetInitValsForDriver
Version |
NID
|
1.69-3.60 |
0x3A9DE7C5
|
sceRegMgrGetKeysInfoForDriver
Version |
NID
|
1.69-3.60 |
0x58421DD1
|
sceRegMgrSetKeyBinForDriver
Version |
NID
|
1.69-3.60 |
0x566A1793
|
sceRegMgrSetKeyIntForDriver
Version |
NID
|
1.69-3.60 |
0xD72EA399
|
sceRegMgrSetKeyStrForDriver
Version |
NID
|
1.69-3.60 |
0x41D320C5
|
sceRegMgrSetKeysForDriver
Version |
NID
|
1.69-3.60 |
0x34E550DA
|
sceRegMgrSystemParamGetBinForDriver
Version |
NID
|
3.60 |
0x7FFE2CDF
|
sceRegMgrSystemParamGetIntForDriver
Version |
NID
|
3.60 |
0x347C1BDB
|
sceRegMgrSystemParamGetStrForDriver
Version |
NID
|
3.60 |
0x877ADB3F
|
// 0x37502 : language
// 0x33818 : np_env
sceRegMgrDbBackupForDriver
Version |
NID
|
1.69-3.60 |
0xB68B5422
|
sceRegMgrDbRestoreForDriver
Version |
NID
|
1.69-3.60 |
0xA87D2562
|
sceRegMgrRegisterCallbackForDriver
Version |
NID
|
1.69-3.60 |
0x82A4464D
|
sceRegMgrRegisterDrvErrCallbackForDriver
Version |
NID
|
1.69-3.60 |
0xDDB02D7F
|
sceRegMgrAddRegistryCallbackForDriver
Version |
NID
|
1.69-3.60 |
0xA86F0A71
|
sceRegMgrStartCallbackForDriver
Version |
NID
|
1.69-3.60 |
0xCE84FE2F
|
sceRegMgrStopCallbackForDriver
Version |
NID
|
1.69-3.60 |
0x6A8E2FB4
|
sceRegMgrUnregisterCallbackForDriver
Version |
NID
|
1.69-3.60 |
0xD7BD3607
|
sceRegMgrUnregisterDrvErrCallbackForDriver
Version |
NID
|
1.69-3.60 |
0xD9E6B7BD
|
SceRegMgrServiceForDriver
sceRegMgrSrvCnvRegionStrForDriver
Version |
NID
|
1.69-3.60 |
0x15B4A5C5
|
sceRegMgrSrvCnvRegionIntForDriver
Version |
NID
|
1.69-3.60 |
0x7683FC84
|
sceRegMgrSrvCnvRegionPsCodeForDriver
Version |
NID
|
1.69-3.60 |
0x94D008D2
|
sceRegMgrSrvGetRegionStrForDriver
Version |
NID
|
1.69-3.60 |
0xBC3FE639
|
sceRegMgrSrvGetRegionForDriver
Version |
NID
|
1.69-3.60 |
0xBEC3F77A
|
SceRegMgr
sceRegMgrGetRegVersion
Version |
NID
|
1.69 |
0x74A0FB10
|
sceRegMgrIsBlueScreen
Version |
NID
|
1.69 |
0x282027B7
|
sceRegMgrResetRegistryLv
Version |
NID
|
1.69 |
0x2B5F3E20
|
sceRegMgrGetKeyBin
Version |
NID
|
1.69 |
0xB98D646
|
sceRegMgrGetKeyInt
Version |
NID
|
1.69 |
0x16DDF3DC
|
sceRegMgrGetKeyStr
Version |
NID
|
1.69 |
0xE188382F
|
sceRegMgrGetKeys
Version |
NID
|
1.69 |
0x5B161504
|
sceRegMgrGetInitVals
Version |
NID
|
1.69 |
0x3A9DE7C5
|
sceRegMgrGetKeysInfo
Version |
NID
|
1.69 |
0x58421DD1
|
sceRegMgrSetKeyBin
Version |
NID
|
1.69 |
0x566A1793
|
sceRegMgrSetKeyInt
Version |
NID
|
1.69 |
0xD72EA399
|
sceRegMgrSetKeyStr
Version |
NID
|
1.69 |
0x41D320C5
|
sceRegMgrSetKeys
Version |
NID
|
1.69 |
0x34E550DA
|
sceRegMgrDbBackup
Version |
NID
|
1.69 |
0xB68B5422
|
sceRegMgrDbRestore
Version |
NID
|
1.69 |
0xA87D2562
|
sceRegMgrRegisterCallback
Version |
NID
|
1.69 |
0x82A4464D
|
sceRegMgrRegisterDrvErrCallback
Version |
NID
|
1.69 |
0xDDB02D7F
|
sceRegMgrAddRegistryCallback
Version |
NID
|
1.69 |
0xA86F0A71
|
sceRegMgrStartCallback
Version |
NID
|
1.69 |
0xCE84FE2F
|
sceRegMgrStopCallback
Version |
NID
|
1.69 |
0x6A8E2FB4
|
sceRegMgrUnregisterCallback
Version |
NID
|
1.69 |
0xD7BD3607
|
sceRegMgrUnregisterDrvErrCallback
Version |
NID
|
1.69 |
0xD9E6B7BD
|
SceRegMgrService
sceRegMgrSrvCnvRegionStr
Version |
NID
|
1.69 |
0x15B4A5C5
|
sceRegMgrSrvCnvRegionInt
Version |
NID
|
1.69 |
0x7683FC84
|
sceRegMgrSrvCnvRegionPsCode
Version |
NID
|
1.69 |
0x94D008D2
|
sceRegMgrSrvGetRegionStr
Version |
NID
|
1.69 |
0xBC3FE639
|
sceRegMgrSrvGetRegion
Version |
NID
|
1.69 |
0xBEC3F77A
|
SceRegMgrForGame
sceRegMgrSystemIsBlueScreen
Version |
NID
|
1.69-3.65 |
0x169A0D1D
|
sceRegMgrSystemParamGetBin
Version |
NID
|
1.69-3.65 |
0x7FFE2CDF
|
SceInt32 sceRegMgrSystemParamGetBin(SceRegMgrSystemParam paramId, SceChar8* buf, SceSize bufSize);
sceRegMgrSystemParamGetInt
Version |
NID
|
1.69-3.65 |
0x347C1BDB
|
SceInt32 sceRegMgrSystemParamGetInt(SceRegMgrSystemParam paramId, SceInt32* value);
sceRegMgrSystemParamGetStr
Version |
NID
|
1.69-3.65 |
0x877ADB3F
|
SceInt32 sceRegMgrSystemParamGetStr(SceRegMgrSystemParam paramId, SceChar8* buf, SceSize bufSize);
sceRegMgrSystemParamSetBin
Version |
NID
|
1.69-3.65 |
0xD5A73557
|
SceInt32 sceRegMgrSystemParamSetBin(SceRegMgrSystemParam paramId, const SceChar8* buf, SceSize bufSize);
sceRegMgrSystemParamSetInt
Version |
NID
|
1.69-3.65 |
0xC8F73311
|
SceInt32 sceRegMgrSystemParamSetInt(SceRegMgrSystemParam paramId, SceInt32 value);
sceRegMgrSystemParamSetStr
Version |
NID
|
1.69-3.65 |
0xCB3246E3
|
SceInt32 sceRegMgrSystemParamSetStr(SceRegMgrSystemParam paramId, const SceChar8 *buf, SceSize bufSize);
SceRegMgrForSDK
sceRegMgrUtilityGetBin
Version |
NID
|
1.69 |
0xEFCFA182
|
sceRegMgrUtilityGetInt
Version |
NID
|
1.69 |
0x8154D696
|
sceRegMgrUtilityGetStr
Version |
NID
|
1.69 |
0x1FE8949E
|
sceRegMgrUtilitySetBin
Version |
NID
|
1.69 |
0x7304DC12
|
sceRegMgrUtilitySetInt
Version |
NID
|
1.69 |
0xB370A2CF
|
sceRegMgrUtilitySetStr
Version |
NID
|
1.69 |
0x4898C1E2
|
SceRegMgrForDebugger
sceRegMgrComSyncKeyValueForDebugger
Version |
NID
|
0.990-3.60 |
0x53970232
|
int sceRegMgrComSyncKeyValueForDebugger(void *a1, void *a2);
sceRegMgrGetKeysForDebugger
Version |
NID
|
0.990-3.60 |
0xC64C67A8
|
int sceRegMgrGetKeysForDebugger(int a1);
sceRegMgrSetKeysForDebugger
Version |
NID
|
0.990-3.60 |
0x810D2F09
|
typedef struct SceRegMgrKeyParamForDebugger { // size is 0x10
SceSize size;
const char *path;
int flags;
union {
int Int;
const char *Str;
void *Bin;
};
} SceRegMgrKeyParamForDebugger;
int sceRegMgrSetKeysForDebugger(const SceRegMgrKeyParamForDebugger *pParam);
sceRegMgrRequestFromHostForDebugger
Version |
NID
|
1.03-3.60 |
0x46AC0CCB
|
Used by SceDeci4pTsmp.
The function is using for copying tool's xml to host, reading tool's xml, and more cmds.
int sceRegMgrRequestFromHostForDebugger(int cmd, void *pParam);
SceRegMgrForDebugger_8E798E47
Version |
NID
|
1.03-3.60 |
0x8E798E47
|
int SceRegMgrForDebugger_8E798E47(void);
SceRegMgrForDebugger_B9A0BB77
Version |
NID
|
1.03-3.60 |
0xB9A0BB77
|
int SceRegMgrForDebugger_B9A0BB77(void);
SceRegMgrForDebugger_D668ABD2
Version |
NID
|
1.03-3.60 |
0xD668ABD2
|
int SceRegMgrForDebugger_D668ABD2(int a1);
SceRegMgrForDebugger_8AE5757E
Version |
NID
|
1.03 |
not present
|
3.60 |
0x8AE5757E
|
int SceRegMgrForDebugger_8AE5757E(int a1);
SceRegMgrForDebugger_C588D3E7
Version |
NID
|
1.03 |
not present
|
3.60 |
0xC588D3E7
|
int SceRegMgrForDebugger_C588D3E7(void);
SceRegMgrForTool
sceRegMgrInitRegistryForTool
Version |
NID
|
0.990-3.60 |
0xE6E81558
|
int sceRegMgrInitRegistryForTool(int a1);
sceRegMgrInitRegistryRegionForTool
Version |
NID
|
0.990-3.60 |
0x0CFA929B
|
int sceRegMgrInitRegistryRegionForTool(int a1, int a2);
SceRegMgrForTool_0B623D0B
Version |
NID
|
3.60 |
0x0B623D0B
|
int SceRegMgrForTool_0B623D0B(void);
SceRegMgrForTool_2A76051A
Version |
NID
|
3.60 |
0x2A76051A
|
int SceRegMgrForTool_2A76051A(int a1, int a2);
SceRegMgrForTool_2D415472
Version |
NID
|
3.60 |
0x2D415472
|
int SceRegMgrForTool_2D415472(int a1, int a2);
SceRegMgrForTool_3AAB71EF
Version |
NID
|
3.60 |
0x3AAB71EF
|
int SceRegMgrForTool_3AAB71EF(int a1, int a2);
SceRegMgrForTool_4EDF87F9
Version |
NID
|
3.60 |
0x4EDF87F9
|
int SceRegMgrForTool_4EDF87F9(int a1, int a2, int a3);
SceRegMgrForTool_6276E7D8
Version |
NID
|
3.60 |
0x6276E7D8
|
int SceRegMgrForTool_6276E7D8(int a1, int a2, int a3, int a4);
SceRegMgrForTool_6808B7AD
Version |
NID
|
3.60 |
0x6808B7AD
|
int SceRegMgrForTool_6808B7AD(void);
SceRegMgrForTool_7B30AC2C
Version |
NID
|
3.60 |
0x7B30AC2C
|
int SceRegMgrForTool_7B30AC2C(int a1, int a2, int a3);
SceRegMgrForTool_B441660B
Version |
NID
|
3.60 |
0xB441660B
|
int SceRegMgrForTool_B441660B(int a1, int a2);
SceRegMgrForTool_C689E36C
Version |
NID
|
3.60 |
0xC689E36C
|
int SceRegMgrForTool_C689E36C(int a1, int a2, int a3, int a4);
SceRegMgrForTool_F55E6E4F
Version |
NID
|
3.60 |
0xF55E6E4F
|
int SceRegMgrForTool_F55E6E4F(int a1);