Difference between revisions of "SceShellSvc"
Jump to navigation
Jump to search
Line 7: | Line 7: | ||
|- | |- | ||
| 1.69 || SceShellSvc || Non-secure || Kernel || 0x23B4910E | | 1.69 || SceShellSvc || Non-secure || Kernel || 0x23B4910E | ||
+ | |- | ||
+ | | 3.60 || SceShellSvc || Non-secure || User || ??? | ||
|} | |} | ||
Revision as of 12:12, 12 March 2020
Module
Known NIDs
Version | Name | World | Privilege | NID |
---|---|---|---|---|
1.69 | SceShellSvc | Non-secure | Kernel | 0x23B4910E |
3.60 | SceShellSvc | Non-secure | User | ??? |
Libraries
Known NIDs
Version | Name | World | Visibility | NID |
---|
Types
typedef struct SceShellSvcTable {
void *pFunc_0x00;
void *pFunc_0x04;
void *pFunc_0x08;
void *pFunc_0x0C;
void *pFunc_0x10;
int (* sceShutterSoundPlay)(void *obj, int flag, void *a3, int a4_flag, void *a5, void *a6, int a7);
// more ...
} SceShellSvcTable;
common
how to play shutter sound on SceShellSvc only
int sceShellSvcShutterSoundPlay(void){
void *(* SceShellSvc_B31E7F1C)(void);
void *ptr;
int arg_a3 = 0, arg_a5[2];
arg_a5[0] = 0;
arg_a5[1] = 0; // sound type?
taiGetModuleExportFunc("SceShellSvc", 0xFFFFFFFF, 0xB31E7F1C, (uintptr_t *)&SceShellSvc_B31E7F1C);
ptr = SceShellSvc_B31E7F1C();
((SceShellSvcTable *)(*(uint32_t *)ptr))->sceShutterSoundPlay(ptr, 0x140000, &arg_a3, 1, arg_a5, 0, 0);
return 0;
}