Difference between revisions of "SceShellSvc"
Jump to navigation
Jump to search
(Created page with "== Library == === Known NIDs === {| class="wikitable" |- ! Version !! Name !! World !! Privilege !! NID |- | 1.69 || SceShellSvc || Non-secure || Kernel || 0x23B4910E |} == ...") |
(→Module) |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | == | + | == Module == |
− | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! Version !! Name !! World !! Privilege | + | ! Version !! Name !! World !! Privilege |
|- | |- | ||
− | | 1.69 || SceShellSvc || Non-secure || | + | | 1.69-3.60 || SceShellSvc || Non-secure || User |
|} | |} | ||
− | == | + | == Libraries == |
=== Known NIDs === | === Known NIDs === | ||
Line 16: | Line 15: | ||
|- | |- | ||
! Version !! Name !! World !! Visibility !! NID | ! 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 | ||
|} | |} | ||
− | [[Category: | + | == Types == |
+ | |||
+ | <source lang="C"> | ||
+ | |||
+ | 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; | ||
+ | |||
+ | </source> | ||
+ | |||
+ | == common == | ||
+ | |||
+ | how to play shutter sound on SceShellSvc only | ||
+ | |||
+ | <source lang="C"> | ||
+ | |||
+ | 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; | ||
+ | } | ||
+ | |||
+ | </source> | ||
+ | |||
+ | [[Category:Modules]] | ||
[[Category:Kernel]] | [[Category:Kernel]] |
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;
}