SceProcessmgr: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
Line 688: Line 688:
|-
|-
| 0.990-3.60 || 0xC55BF6C3
| 0.990-3.60 || 0xC55BF6C3
|}
=== sceKernelSetPHWPForKernel ===
{| class="wikitable"
|-
! Version !! NID
|-
| 0.990-3.60 || 0x54D7B16A
|}
|}



Revision as of 00:27, 12 February 2019

Module

Known NIDs

Version Name World Privilege NID
1.69 SceProcessmgr Non-secure Kernel 0xF019E1DA
3.57 SceProcessmgr Non-secure Kernel 0x19A9C477
3.60 SceProcessmgr Non-secure Kernel 0x8B8A6263

Libraries

Known NIDs

Version Name World Visibility NID
1.69-3.60 SceProcessmgr Non-secure User 0x2DD91812
1.69-3.60 SceProcessmgrForDriver Non-secure Kernel 0x746EC971
1.69-3.60 SceProcessmgrForKernel Non-secure Kernel 0x7A69DE86

Types

Budget types:

  • 0x2010001 : mini application process
  • 0x10030103: kernel process

SceProcessmgr

_sceKernelRegisterExitAddress

Version NID
0.990 0x0278DFB7

sceKernelLibcTime

Version NID
1.69-3.60 0x0039BE45

sceKernelGetProcessTitleId

Version NID
1.69-3.60 0x03A48771

sceKernelGetProcessName

Version NID
1.69-3.60 0x10C52C95

sceKernelIsCDialogAvailable

Version NID
1.69-3.60 0x143BC4D6

sceKernelPowerTick

Version NID
1.69-3.60 0x2252890C

sceKernelGetProcessParam

Version NID
1.69-3.60 0x2BE3E066

_sceKernelGetTimer5Reg

Version NID
1.69-3.60 0x2F73D72F

sceKernelPowerUnlock

Version NID
1.69-3.60 0x466C0CBD

sceKernelLibcGettimeofday

Version NID
1.69-3.60 0x4B879059

_sceKernelRegisterLibkernelAddresses

Version NID
1.69-3.60 0x56C2E8FF

sceKernelRegisterProcessTerminationCallback

Version NID
1.69-3.60 0x5EC77870

sceKernelPowerLock

Version NID
1.69-3.60 0x7AA73378

sceKernelGetProcessTimeWideCore

Version NID
1.69-3.60 0x89DA0967

sceKernelUnregisterProcessTerminationCallback

Version NID
1.69-3.60 0x973A4527

sceKernelLibcClock

Version NID
1.69-3.60 0x9E45DA09

_sceKernelExitProcessForUser

Version NID
1.69-3.60 0xC053DC6B

sceKernelGetStdin

Version NID
1.69-3.60 0xC1727F59

sceKernelGetCurrentProcess

Version NID
1.69-3.60 0xCD248267

Wrapper to sceKernelGetProcessIdForDriver.

Returns the process ID.

SceUID sceKernelGetCurrentProcess(void);

sceKernelIsGameBudget

Version NID
1.69-3.60 0xCE0F02F0

sceKernelGetProcessTimeCore

Version NID
1.69-3.60 0xD37A8437

sceKernelGetStdout

Version NID
1.69-3.60 0xE5AA625C

sceKernelGetRemoteProcessTime

Version NID
1.69-3.60 0xE6E9FCA3

sceKernelCallAbortHandler

Version NID
1.69-3.60 0xEB6E50BB

sceKernelGetProcessTimeLowCore

Version NID
1.69-3.60 0xF5D0D4C6

sceKernelGetStderr

Version NID
1.69-3.60 0xFA5E3ADA

sceKernelCDialogSessionClose

Version NID
3.60 0xDB4CC1D0

sceKernelCDialogSetLeaseLimit

Version NID
3.60 0xEC8DDAAD

sceKernelGetExtraTty

Version NID
3.60 0x2D635A00

sceKernelLibcGmtime_r

Version NID
3.60 0xBCA437CD

sceKernelLibcLocaltime_r

Version NID
3.60 0x94F041ED

sceKernelLibcMktime

Version NID
3.60 0x890BDC39

SceProcessmgrForDriver

sceKernelAllocRemoteProcessHeapForDriver

Version NID
0.990-3.60 0x00B1CA0F

sceKernelFreeRemoteProcessHeapForDriver

Version NID
0.990-3.60 0x9C28EA9A

sceKernelSetProcessStatusForDriver

Version NID
0.990-3.60 0x1D0F3185

sceKernelGetProcessInfoForDriver

Version NID
0.990-3.68 0x0AFF3EAE

Retrieves process info.

typedef struct SceKernelProcessInfo {
	SceSize size;           //!< size of this struct, make sure it's 0xE8
	SceUID pid;             //!< our process ID
	int unk1;
	int unk2;
	int unk3;
	SceUID ppid;            //!< parent process ID
	int unk[0xE8 / 4 - 6];  //!< the rest is unknown
} SceKernelProcessInfo;

int sceKernelGetProcessInfoForDriver(SceUID pid, SceKernelProcessInfo *info);

sceKernelGetProcessStatusForDriver

Version NID
0.990-3.60 0x65B120B8

This function queries the status of a given process. Davee is unsure what exactly the bits represent. It seems 0x10 is related to suspension status, but he's not confident in that assumption.

/**
 * @brief       Get the status of a given process.
 * @param[in]   pid The process ID to query.
 * @param[out]  status The bit field status of the process.
 * @return      Zero on success, < 0 on error.
 */
int sceKernelGetProcessStatusForDriver(SceUID pid, int *status);

sceKernelGetProcessTimeLowCoreForDriver

Version NID
3.60 0x02179E12

sceKernelGetProcessTimeWideCoreForDriver

Version NID
3.60 0x82D94BE9

sceKernelGetProcessTimeCoreForDriver

Version NID
3.60 0xEC283166

sceKernelRegisterKPLSForDriver

Version NID
0.940-3.60 0x3801D7D6

Temp name was sceKernelCreateProcessLocalStorageForDriver.

int sceKernelRegisterKPLSForDriver(const char *name, int size);

sceKernelGetProcessLocalStorageAddrForDriver

Version NID
3.60 0xEE694840
void *sceKernelGetProcessLocalStorageAddrForDriver(int key);

sceKernelGetRemoteKPLSForDriver

Version NID
0.940-3.68 0xAF80F39C

Temp name was sceKernelGetPidProcessLocalStorageAddrForDriver.

This functions gets Remote Kernel Process Local Storage.

int sceKernelGetRemoteKPLSForDriver(SceUID pid, int key, unsigned int *out_addr, int create_if_doesnt_exist);

sceKernelGetRemoteProcessTimeForDriver

Version NID
3.60 0xC074EB31

sceKernelIsCDialogAvailableForDriver

Version NID
3.60 0x2F6020B7

sceKernelIsGameBudgetForDriver

Version NID
3.60 0xF7A8BB25

SceProcessmgrForKernel

sceKernelCreateProcessForKernel

Version NID
0.990-3.60 0x71CF71FD

Temp name was sceKernelLaunchAppForKernel.

/**
 * @brief       Launch an application
 * @param[in]   titleid The TitleId of the app to open.
 * @param[in]   flags Some unknown flags.
 * @param[in]   path Path of the eboot.bin to launch.
 * @param[in]   unk Unknown.
 * @return      PID of the launched app on success, < 0 on error.
 */
SceUID sceKernelCreateProcessForKernel(char* titleid, uint32_t flags, char *path, uint32_t unk);

sceKernelUIDtoProcessForKernel

Version NID
0.990-3.60 0xB9E68092

Temp name was sceKernelGetProcessKernelBufForKernel.

Gets the process privileged only buffer.

void* sceKernelUIDtoProcessForKernel(int pid);

sceKernelGetProcessMainThreadForDebugger

Version NID
0.990-3.60 0x95F9ED94
/**
 * @brief       Get the main thread for a given process.
 * @param[in]   pid The process id to query for.
 * @return      The thread UID on success, else < 0 on error.
 */
SceUID sceKernelGetProcessMainThreadForDebugger(SceUID pid);

sceKernelSuspendProcessForKernel

Version NID
3.60 0x6AECE4CD
/**
 * @brief       Suspend a running process.
 * @param[in]   pid The process to suspend.
 * @return      Zero on success, < 0 on error.
 */
int sceKernelSuspendProcessForKernel(SceUID pid);

sceKernelProcessDebugResumeForKernel

Version NID
0.990-3.60 0x080CDC59

Temp name was sceKernelResumeProcessForKernel.

/**
 * @brief       Resume a suspended process.
 * @param[in]   pid The process to resume.
 * @return      Zero on success, < 0 on error.
 */
int sceKernelProcessDebugResumeForKernel(SceUID pid);

sceKernelResumeProcessForDebugger

Version NID
0.990-3.60 0xB13E3C7B
/**
 * @brief       Resume a suspended process.
 * @param[in]   pid The process to resume.
 * @return      Zero on success, < 0 on error.
 */
int sceKernelResumeProcessForDebugger(SceUID pid);

sceKernelResumeProcessForKernel

Version NID
0.990-3.60 0xE0A9C9C4
/**
 * @brief       Resume a suspended process.
 * @param[in]   pid The process to resume.
 * @return      Zero on success, < 0 on error.
 */
int sceKernelResumeProcessForKernel(SceUID pid);

sceKernelExitProcessForKernel

Version NID
0.990-3.60 0x4CA7DC42
// status: exit status
sceKernelExitProcessForKernel(int status);

sceKernelGetProcessSelfAuthInfoForKernel

Version NID
3.60 0xE4C83B0D

SceSelfAuthInfo type is described in sceSysrootGetSelfAuthInfoForKernel.

Calling this function is one way to obtain klicensee and program-authority-id.

int sceKernelGetProcessSelfAuthInfoForKernel(SceUID pid, SceSelfAuthInfo *self_auth_info);

sceKernelLibcTimeForKernel

Version NID
3.60 0x9E38C556

sceKernelLibcGettimeofdayForKernel

Version NID
3.60 0xDE8B8B5E

sceKernelGetClassForUidForKernel

Version NID
3.60 0xC6820972
SceClass* sceKernelGetClassForUidForKernel(SceUID pid);

sceKernelSpawnProcessExtForKernel

Version NID
0.990-3.60 0x8F320D2B

sceKernelGetBudgetInfoForDebugger

Version NID
0.990-3.60 0xF3C4A83B

sceKernelKillProcessForDebugger

Version NID
0.990-3.60 0x90C27779
int sceKernelKillProcessForDebugger(SceUID pid);

sceKernelKillProcessForKernel

Version NID
0.990-3.60 0xA1071106
int sceKernelKillProcessForKernel(SceUID pid, int unk_bool);

sceKernelGetMMUL1InfoForKernel

Version NID
0.990 0xC526C6F2

sceKernelWaitProcessEndForKernel

Version NID
0.990-3.60 0x0EE2658E

sceKernelGetPHWPForKernel

Version NID
0.990-3.60 0xC55BF6C3

sceKernelSetPHWPForKernel

Version NID
0.990-3.60 0x54D7B16A

sceKernelGetPHBPForKernel

Version NID
0.990-3.60 0xA9C20202

sceKernelGetProcessAppForKernel

Version NID
0.990-3.60 0x34FA9645
int sceKernelGetProcessAppForKernel(SceUID pid, int a2, int a3, void *a4);

sceKernelGetProcessParentIdForKernel

Version NID
0.990-3.60 0x3C4D2889
// returns the parent process PID
int sceKernelGetProcessParentIdForKernel(SceUID pid);

sceKernelStartProcessExtForKernel

Version NID
0.990-3.60 0x36728B16

sceKernelSuspendProcessForDebugger

Version NID
0.990-3.60 0x234A80B6
int sceKernelSuspendProcessForDebugger(SceUID pid);

sceKernelSuspendProcessForKernel

Version NID
0.990-3.60 0xCF83C23B
int sceKernelSuspendProcessForKernel(SceUID pid, void* option);

sceKernelGetProcessImageForDebugger

Version NID
0.990 0xCF71D9DD

sceKernelSetProcessSelfAuthInfoForKernel

Version NID
0.990 0x5ABA2772

sceKernelProcessAppendForKernel

Version NID
0.990 0xC4E349D5

To find

  • sceKernelPermitProcEvent
  • sceKernelInhibitProcEvent