SceShellSvc: Difference between revisions
Jump to navigation
Jump to search
(→Module) |
|||
Line 1: | Line 1: | ||
== Module == | == Module == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! Name !! World !! Privilege | ! Version !! Name !! World !! Privilege | ||
|- | |- | ||
| 1.69 | | 1.69-3.60 || SceShellSvc || Non-secure || User | ||
|} | |} | ||
Revision as of 05:48, 16 November 2020
Module
Version | Name | World | Privilege |
---|---|---|---|
1.69-3.60 | SceShellSvc | Non-secure | User |
Libraries
Known NIDs
Version | Name | World | Visibility | NID |
---|---|---|---|---|
3.60 | SceShellSvc | Non-secure | User | 0x773242c7 |
3.60 | SceShellUtil | Non-secure | User | 0xd2b1c8ae |
3.60 | SceShellUtilUketorne | Non-secure | User | 0xa2316143 |
3.60 | SceShellUtilLaunchApp | Non-secure | User | 0xa0fd0261 |
3.60 | SceSvcCtrl | Non-secure | User | 0x33e9b101 |
3.60 | SceIpmi | Non-secure | User | 0xf4e34edb |
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; }