Merge pull request #120 from Linblow/mesgled

Improve mesg_led
This commit is contained in:
artart78 2022-06-01 19:48:42 +02:00 committed by GitHub
commit ab65c38782
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 634 additions and 98 deletions

3
.gitignore vendored
View File

@ -39,3 +39,6 @@ ipch/
# Other VS-generated files
/Debug
# Visual Studio Code
/.vscode

View File

@ -1,26 +1,558 @@
/* Copyright (C) 2011, 2012 The uOFW team
/* Copyright (C) 2022 The uOFW team
See the file COPYING for copying permission.
*/
#include "common_header.h"
#include <common_header.h>
s32 sceWmd_driver_7A0E484C(void *data, u32 inSize, u32 *outSize);
/**
* Get the module expiration time in RTC tick units.
* An expired module is considered invalid, and cannot be run.
*
* Supported tags (2g):
* - 0xADF305F0 (demo executable)
* - 0x279D05F0 (application module)
*
* @note The RTC tick time is a 64-bits number stored at offset 0xE4 of the ~PSP header.
* Only a few PRX tags support this.
*
* @param psp ~PSP module header structure (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the ~PSP header (MUST be >= 0x160 bytes).
* @param expireTick Required pointer to receive the expiration time in RTC tick units.
*
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetModuleExpireTick(u8 *psp, u32 pspSize, u64 *expireTick); // sceMesgLed_driver_9E3C79D9
s32 sceMesgLed_driver_9E3C79D9(u8 *modBuf, u32 arg1, u32 *buf);
/**
* Decrypt a VSH module (mode 3 DECRYPT_MODE_VSH_MODULE).
* Supported tags (2g):
* - 0x380291F0 (type 9, key index 0x5a)
* - 0x380290F0 (type 9, key index 0x5a)
* - 0x02000000 (type 8, key index 0x45, 144-bytes seed)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleCLength(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgLed_driver_5C3A61FE
s32 sceMesgLed_driver_5C3A61FE(u8 *buf, u32 size, u32 *newSize);
s32 sceMesgLed_driver_2CB700EC(u8 *buf, u32 size, u32 *newSize);
s32 sceMesgLed_driver_337D0DD3(u8 *buf, u32 size, u32 *newSize);
s32 sceMesgLed_driver_4EAB9850(u8 *buf, u32 size, u32 *newSize);
s32 sceMesgLed_driver_B2CDAC3F(u8 *buf, u32 size, u32 *newSize);
s32 sceMesgLed_driver_C79E3488(u8 *buf, u32 size, u32 *newSize);
s32 sceMesgLed_driver_21AFFAAC(u8 *buf, u32 size, u32 *newSize);
s32 sceMesgLed_driver_C00DAD75(u8 *buf, u32 size, u32 *newSize);
s32 sceMesgLed_driver_CED2C075(u8 *buf, u32 size, u32 *newSize, void *arg4);
s32 sceMesgLed_driver_C7D1C16B(u8 *buf, u32 size, u32 *newSize, void *arg4);
s32 sceMesgLed_driver_EBB4613D(u8 *buf, u32 size, u32 *newSize, void *arg4);
s32 sceMesgLed_driver_66B348B2(u8 *buf, u32 size, u32 *newSize, void *arg4);
s32 sceMesgLed_driver_B2D95FDF(u8 *buf, u32 size, u32 *newSize);
s32 sceMesgLed_driver_91E0A9AD(u8 *buf, u32 size, u32 *newSize, void *arg4);
s32 sceMesgLed_driver_31D6D8AA(u8 *buf, u32 size, u32 *newSize, void *arg4);
/**
* Same as sceUtilsGetLoadModuleCLength() but by polling.
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleCLengthByPolling(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgLed_driver_3783B0AD
/**
* Decrypt a user module (mode 4 DECRYPT_MODE_USER_MODULE).
* Supported tags (2g):
* - 0x457B91F0 (type 9, key index 0x5b)
* - 0x457B90F0 (type 9, key index 0x5b)
* - 0x457B8AF0 (type 6, key index 0x5b)
* - 0x457B80F0 (type 6, key index 0x5b)
* - 0x457B10F0 (type 2, key index 0x5b)
* - 0x457B0CF0 (type 2, key index 0x5b)
* - 0x457B0BF0 (type 2, key index 0x5b)
* - 0x457B0AF0 (type 2, key index 0x5b)
* - 0x457B08F0 (type 2, key index 0x5b)
* - 0x457B06F0 (type 2, key index 0x5b)
* - 0x457B05F0 (type 2, key index 0x5b)
* - 0x76202403 (type 2, key index 0x5b)
* - 0x3ACE4DCE (type 1, key index 0x5b, 144-bytes seed)
* - 0x03000000 (type 0, key index 0x46, 144-bytes seed)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleDLength(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgLed_driver_2CB700EC
/**
* Same as sceUtilsGetLoadModuleDLength() but by polling.
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleDLengthByPolling(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgLed_driver_308D37FF
/**
* Decrypt a UMD game executable (mode 9 DECRYPT_MODE_UMD_GAME_EXEC).
* Supported tags (2g):
* - 0xD91690F0 (type 9, key index 0x5d)
* - 0xD91680F0 (type 6, key index 0x5d)
* - 0xD91610F0 (type 2, key index 0x5d)
* - 0xD91611F0 (type 2, key index 0x5d)
* - 0xD9160BF0 (type 2, key index 0x5d)
* - 0xD9160AF0 (type 2, key index 0x5d)
* - 0xD91606F0 (type 2, key index 0x5d)
* - 0xD91605F0 (type 2, key index 0x5d)
* - 0x8004FD03 (type 2, key index 0x5d)
* - 0xC0CB167C (type 1, key index 0x5d, 144-bytes seed)
* - 0x08000000 (type 0, key index 0x4b, 144-bytes seed)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleILength(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgLed_driver_337D0DD3
/**
* Same as sceUtilsGetLoadModuleILength() but by polling.
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleILengthByPolling(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgLed_driver_792A6126
/**
* Decrypt a game sharing executable for retail console (mode 10 DECRYPT_MODE_GAMESHARING_EXEC).
* Supported tags (2g):
* - 0x7B0510F0 (type 2, key index 0x5e)
* - 0x7B0508F0 (type 2, key index 0x5e)
* - 0x7B0506F0 (type 2, key index 0x5e)
* - 0x7B0505F0 (type 2, key index 0x5e)
* - 0x0A35EA03 (type 2, key index 0x5e)
* - 0xBB67C59F (type 1, key index 0x5e, 144-bytes seed)
* - 0x09000000 (type 0, key index 0x4c, 144-bytes seed)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleJLength(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgLed_driver_4EAB9850
/**
* Same as sceUtilsGetLoadModuleJLength() but by polling.
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleJLengthByPolling(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgLed_driver_4BE02A12
/**
* Decrypt a game sharing executable for DEVTOOL (mode 11 DECRYPT_MODE_GAMESHARING_EXEC_DEVTOOL).
* Supported tags (2g):
* - 0xEFD210F0 (type 2, key index 0x4d)
* - 0x0A000000 (type 0, key index 0x4d, 144-bytes seed)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleKLength(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgLed_driver_B2CDAC3F
/**
* Same as sceUtilsGetLoadModuleKLength() but by polling.
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleKLengthByPolling(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgLed_driver_B5596BE4
/**
* Decrypt an updater module (mode 12 DECRYPT_MODE_MS_UPDATER).
* Supported tags (2g):
* - 0x0B000000 (type 8, key index 0x4e, 144-bytes seed)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleLLength(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgLed_driver_C79E3488
/**
* Same as sceUtilsGetLoadModuleLLength() but by polling.
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleLLengthByPolling(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgLed_driver_6BF453D3
/**
* Decrypt a demo executable (mode 13 DECRYPT_MODE_DEMO_EXEC).
* Supported tags (2g):
* - 0xADF310F0 (type 4, key index 0x60)
* - 0xADF308F0 (type 4, key index 0x60)
* - 0xADF306F0 (type 4, key index 0x60)
* - 0xADF305F0 (type 4, key index 0x60)
* - 0xD67B3303 (type 2, key index 0x60)
* - 0x7F24BDCD (type 1, key index 0x60, 144-bytes seed)
* - 0x0C000000 (type 0, key index 0x4f, 144-bytes seed)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleMLength(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgLed_driver_21AFFAAC
/**
* Same as sceUtilsGetLoadModuleMLength() but by polling.
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleMLengthByPolling(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgLed_driver_52B6E552
/**
* Decrypt an application module (mode 14 DECRYPT_MODE_APP_MODULE).
* Supported tags (2g):
* - 0x279D10F0 (type 4, key index 0x61)
* - 0x279D08F0 (type 4, key index 0x61)
* - 0x279D06F0 (type 4, key index 0x61)
* - 0x279D05F0 (type 4, key index 0x61)
* - 0xD66DF703 (type 2, key index 0x61)
* - 0x1BC8D12B (type 1, key index 0x61, 144-bytes seed)
* - 0x0D000000 (type 0, key index 0x50, 144-bytes seed)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleNLength(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgLed_driver_C00DAD75
/**
* Same as sceUtilsGetLoadModuleNLength() but by polling.
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleNLengthByPolling(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgLed_driver_F8485C9C
/**
* Decrypt a game patch module for retail console (mode 18 DECRYPT_MODE_MS_GAME_PATCH).
* Supported tags (2g):
* - 0xE92410F0 (type 3, key index 0x65, two 16-bytes seeds, secure install ID)
* - 0xE92408F0 (type 3, key index 0x65, two 16-bytes seeds, secure install ID)
* - 0x89742B04 (type 3, key index 0x65, two 16-bytes seeds, secure install ID)
* No longer supported tags:
* - 0xE92405F0 (see mesg_led_02g FW 2.81)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @param secureId Secure install ID (16-bytes).
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleRLength(u8 *psp, u32 pspSize, u32 *pNewSize, const char *secureId); // sceMesgLed_driver_CED2C075
/**
* Decrypt a game patch module for DEVTOOL (mode 19 DECRYPT_MODE_MS_GAME_PATCH_DEVTOOL).
* Supported tags (2g):
* - 0x692810F0 (type 3, key index 0x66, two 16-bytes seeds, secure install ID)
* - 0x692808F0 (type 3, key index 0x66, two 16-bytes seeds, secure install ID)
* - 0xF5F12304 (type 3, key index 0x66, two 16-bytes seeds, secure install ID)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @param secureId Secure install ID (16-bytes).
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleSLength(u8 *psp, u32 pspSize, u32 *pNewSize, const char *secureId); // sceMesgLed_driver_C7D1C16B
/**
* Decrypt a POPS executable (mode 20 DECRYPT_MODE_POPS_EXEC).
* Supported tags (2g):
* - 0x0DAA10F0 (type 5, key index 0x65, two 16-bytes seeds, secure install ID)
* - 0x0DAA06F0 (type 5, key index 0x65, two 16-bytes seeds, secure install ID)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @param secureId Secure install ID (16-bytes).
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleTLength(u8 *psp, u32 pspSize, u32 *pNewSize, const char *secureId); // sceMesgLed_driver_EBB4613D
/**
* Decrypt a (POPS DEMO?) executable (mode 21 / 0x15).
* Supported tags (2g):
* - 0xE1ED10F0 (type 5, key index 0x66, two 16-bytes seeds, secure install ID)
* - 0xE1ED06F0 (type 5, key index 0x66, two 16-bytes seeds, secure install ID)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @param secureId Secure install ID (16-bytes).
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleULength(u8 *psp, u32 pspSize, u32 *pNewSize, const char *secureId); // sceMesgLed_driver_66B348B2
/**
* Decrypt a (application demo?) module (mode 22 / 0x16).
* Supported tags (2g):
* - 0x3C2A10F0 (type 2, key index 0x67)
* - 0x3C2A08F0 (type 2, key index 0x67)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleVLength(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgLed_driver_B2D95FDF
/**
* Same as sceUtilsGetLoadModuleVLength() but by polling.
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleVLengthByPolling(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgLed_driver_C9ABD2F2
/**
* Decrypt a user module (mode 23 / 0x17).
* Supported tags (2g):
* - 0x407810F0 (type 5, key index 0x6a, two 16-bytes seeds, secure install ID)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @param secureId Secure install ID (16-bytes).
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleWLength(u8 *psp, u32 pspSize, u32 *pNewSize, const char *secureId); // sceMesgLed_driver_91E0A9AD
/**
* Decrypt a game patch (PBOOT) module (mode 25 / 0x19).
* Supported tags (2g):
* - 0x2E5E90F0 (type 10, key index 0x48, two 16-bytes seeds, secure install ID)
* - 0x2E5E80F0 (type 7, key index 0x48, two 16-bytes seeds, secure install ID)
* - 0x2E5E11F0 (type 5, key index 0x48, two 16-bytes seeds, secure install ID)
* - 0x2E5E10F0 (type 5, key index 0x48, two 16-bytes seeds, secure install ID)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @param secureId Secure install ID (16-bytes).
* @return 0 success; < 0 SCE driver error
*/
s32 sceUtilsGetLoadModuleYLength(u8 *psp, u32 pspSize, u32 *pNewSize, const char *secureId); // sceMesgLed_driver_31D6D8AA
/**
* Decrypt a module.
* There is no known module thats imports this function, at least in OFW 6.61 (and Go).
* Supported tags (2g):
* - 0x628910F0 (type 2, key index 0x47)
* - 0x04000000 (type 0, key index 0x47, 144-bytes seed)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceResmapPrepare(u8 *psp, u32 pspSize, u32 *pNewSize); // sceResmap_driver_E5659590
/**
* Same as sceResmapPrepare() but by polling.
* There is no known module thats imports this function, at least in OFW 6.61 (and Go).
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceResmapPrepareByPolling(u8 *psp, u32 pspSize, u32 *pNewSize); // sceResmap_driver_4434E59F
/**
* Decrypt a module.
* There is no known module thats imports this function, at least in OFW 6.61 (and Go).
* Supported tags (2g):
* - 0x8B9B10F0 (type 2, key index 0x48)
* - 0x05000000 (type 0, key index 0x48)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceDbmanSelect(u8 *psp, u32 pspSize, u32 *pNewSize); // sceDbman_driver_B2B8C3F9
/**
* Same as sceDbmanSelectByPolling() but by polling.
* There is no known module thats imports this function, at least in OFW 6.61 (and Go).
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceDbmanSelectByPolling(u8 *psp, u32 pspSize, u32 *pNewSize); // sceDbman_driver_34B53D46
/**
* Decrypt a module.
* There is no known module thats imports this function, at least in OFW 6.61 (and Go).
* Supported tags (2g):
* - 0x5A5C10F0 (type 2, key index 0x49)
* - 0xE42C2303 (type 2, key index 0x49)
* - 0x06000000 (type 0, key index 0x49, 144-bytes seed)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceNwman_driver_9555D68D(u8 *psp, u32 pspSize, u32 *pNewSize); // sceNwman_driver_9555D68D
//TODO reverse sceResmgr_driver_8E6C62C8
s32 sceResmgr_driver_8E6C62C8(void *data); // sceResmgr_driver_8E6C62C8
/**
* Decrypt a module.
* Supported tags (2g):
* - 0x0B2B91F0 (type 9, key index 0x5c)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceResmgr_driver_9DC14891(u8 *psp, u32 pspSize, u32 *pNewSize); // sceResmgr_driver_9DC14891
/* Same as sceResmgr_driver_8E6C62C8() for user mode. */
s32 sceResmgr_8E6C62C8(void *data); // sceResmgr_8E6C62C8
/* Same as sceResmgr_driver_9DC14891() for user mode.
* Imported by vsh/module/vshmain.prx module. */
s32 sceResmgr_9DC14891(u8 *psp, u32 pspSize, u32 *pNewSize); // sceResmgr_9DC14891
/**
* Decrypt a module.
* There is no known module thats imports this function, at least in OFW 6.61 (and Go).
* Supported tags (2g):
* - 0xD82310F0 (type 2, key index 0x51)
* - 0x63BAB403 (type 2, key index 0x51)
* - 0x0E000000 (type 0, key index 0x51, 144-bytes seed)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceMesgd_driver_102DC8AF(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgd_driver_102DC8AF
/**
* Same as sceMesgd_driver_102DC8AF() but by polling.
* There is no known module thats imports this function, at least in OFW 6.61 (and Go).
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceMesgd_driver_ADD0CB66(u8 *psp, u32 pspSize, u32 *pNewSize); // sceMesgd_driver_ADD0CB66
/**
* Decrypt a module.
* Imported by kd/me_wrapper.prx module.
* Supported tags (2g):
* - 0xD13B10F0 (type 2, key index 0x52)
* - 0xD13B08F0 (type 2, key index 0x52)
* - 0xD13B06F0 (type 2, key index 0x52)
* - 0xD13B05F0 (type 2, key index 0x52)
* - 0x1B11FD03 (type 2, key index 0x52)
* - 0x862648D1 (type 1, key index 0x52, 144-bytes seed)
* - 0x0F000000 (type 0, key index 0x52, 144-bytes seed)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceWmd_driver_7A0E484C(u8 *psp, u32 pspSize, u32 *pNewSize); // sceWmd_driver_7A0E484C
/**
* Same as sceWmd_driver_7A0E484C() but by polling.
* There is no known module thats imports this function, at least in OFW 6.61 (and Go).
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @return 0 success; < 0 SCE driver error
*/
s32 sceWmd_driver_B7CE9041(u8 *psp, u32 pspSize, u32 *pNewSize); // sceWmd_driver_B7CE9041
/**
* Generate 20 bytes of random data.
* This is a simple wrapper for kirk command 14.
* There is no known module thats imports this function, at least in OFW 6.61 (and Go).
* @param out Buffer to receive the random bytes.
* @return 0 success; < 0 SCE driver error
*/
s32 sceDbsvrGetData(u8 out[20]); // sceDbsvr_driver_94561901
/**
* Authenticate, encrypt, and re-sign part of the given ~PSP header.
* For retail console.
* psheet is the only module that calls this function.
*
* The following members of the ~PSP header are used:
* aes_key, cmac_key, cmac_header_hash, cmac_data_hash, sha1_hash
* Only the first 0x10 bytes of sha1_hash are used.
*
* This internally calls kirk command 2 which:
* 1) checks the given data authenticity (CMAC check).
* 2) encrypts the members data with a key unique to this PSP device.
* 3) re-signs (compute new CMAC) the encrypted data.
*
* This function will fail when the aforementioned members data is changed.
* There is currently no way to compute the CMAC hash of kirk 2 input data,
* as we don't have the CMAC private key.
*
* Supported tags (2g):
* - 0xE92410F0 (type 3, key index 0x65, two 16-bytes seeds, secure install ID)
* - 0xE92408F0 (type 3, key index 0x65, two 16-bytes seeds, secure install ID)
* - 0x89742B04 (type 3, key index 0x65, two 16-bytes seeds, secure install ID)
*
* @param psp ~PSP module header structure (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the ~PSP header (MUST be >= 0x160 bytes).
* @param secureId Secure install ID (16-bytes).
*
* @return 0 success;
* -202 invalid size;
* -203 invalid address alignment;
* < 0 SCE driver error
*/
s32 sceUtilsPrepareGetLoadModuleRLength(u8 *psp, u32 pspSize, const char *secureId); // sceMesgIns_driver_D062B635
/**
* Same as sceUtilsPrepareGetLoadModuleRLength() but for DEVTOOL tags.
*
* Supported tags (2g):
* - 0x692810F0 (type 3, key index 0x66, two 16-bytes seeds, secure install ID)
* - 0x692808F0 (type 3, key index 0x66, two 16-bytes seeds, secure install ID)
* - 0xF5F12304 (type 3, key index 0x66, two 16-bytes seeds, secure install ID)
*
* @param psp ~PSP module header structure (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the ~PSP header (MUST be >= 0x160 bytes).
* @param secureId Secure install ID (16-bytes).
*
* @return 0 success;
* -202 invalid size;
* -203 invalid address alignment;
* < 0 SCE driver error
*/
s32 sceUtilsPrepareGetLoadModuleSLength(u8 *psp, u32 pspSize, const char *secureId); // sceMesgIns_driver_4A03F940
/**
* Decrypt a module.
* There is no known module thats imports this function, at least in OFW 6.61 (and Go).
* Supported tags (2g):
* - 0x2FD313F0 (type 5, key index 0x47, two 16-bytes seeds, secure install ID)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @param secureId Secure install ID (16-bytes).
* @return 0 success; < 0 SCE driver error
*/
s32 scePauth_driver_98B83B5D(u8 *psp, u32 pspSize, u32 *pNewSize, const char *secureId); // scePauth_driver_98B83B5D
/**
* Decrypt a module.
* There is no known module thats imports this function, at least in OFW 6.61 (and Go).
* Supported tags (2g):
* - 0x2FD312F0 (type 5, key index 0x47, two 16-bytes seeds, secure install ID)
* - 0x2FD311F0 (type 5, key index 0x47, two 16-bytes seeds, secure install ID)
* @param psp ~PSP encrypted module buffer (MUST be aligned on a 64-bytes boundary).
* @param pspSize Size of the encrypted PRX module (MUST be >= 0x160 bytes).
* @param pNewSize Required pointer to receive the plain module size.
* @param secureId Secure install ID (16-bytes).
* @return 0 success; < 0 SCE driver error
*/
s32 scePauth_driver_F7AA47F6(u8 *psp, u32 pspSize, u32 *pNewSize, const char *secureId); // scePauth_driver_F7AA47F6
/* Same as scePauth_driver_98B83B5D() / scePauth_driver_F7AA47F6() for user mode. */
s32 scePauth_98B83B5D(u8 *psp, u32 pspSize, u32 *pNewSize, const char *secureId); // scePauth_98B83B5D
s32 scePauth_F7AA47F6(u8 *psp, u32 pspSize, u32 *pNewSize, const char *secureId); // scePauth_F7AA47F6

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1207,7 +1207,7 @@ static s32 PspUncompress(u8 *modBuf, SceLoadCoreExecFileInfo *execInfo,
} else if (memlmd_2AE425D2(subType) == 0) //0x00005A30 & 0x00005A10
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
}
if (sceMesgLed_driver_5C3A61FE(modBuf, execInfo->execSize, newSize) != SCE_ERROR_OK) //0x00005958
if (sceUtilsGetLoadModuleCLength(modBuf, execInfo->execSize, newSize) != SCE_ERROR_OK) //0x00005958
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
execInfo->isDecrypted = SCE_TRUE;
@ -1228,7 +1228,7 @@ static s32 PspUncompress(u8 *modBuf, SceLoadCoreExecFileInfo *execInfo,
} else if (memlmd_2AE425D2(subType) == 0) //0x00005AA8
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
}
if (sceMesgLed_driver_2CB700EC(modBuf, execInfo->execSize, newSize) != SCE_ERROR_OK) //0x00005958
if (sceUtilsGetLoadModuleDLength(modBuf, execInfo->execSize, newSize) != SCE_ERROR_OK) //0x00005958
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
execInfo->isDecrypted = SCE_TRUE;
@ -1237,7 +1237,7 @@ static s32 PspUncompress(u8 *modBuf, SceLoadCoreExecFileInfo *execInfo,
if ((header->modAttribute & SCE_MODULE_PRIVILEGE_LEVELS) != SCE_MODULE_USER) //0x00005AE0
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
if (sceMesgLed_driver_337D0DD3(modBuf, execInfo->execSize, newSize) != SCE_ERROR_OK) //0x00005958
if (sceUtilsGetLoadModuleILength(modBuf, execInfo->execSize, newSize) != SCE_ERROR_OK) //0x00005958
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
execInfo->isDecrypted = SCE_TRUE;
@ -1246,19 +1246,19 @@ static s32 PspUncompress(u8 *modBuf, SceLoadCoreExecFileInfo *execInfo,
if ((header->modAttribute & SCE_MODULE_PRIVILEGE_LEVELS) != SCE_MODULE_USB_WLAN) //0x00005B0C
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
if (sceMesgLed_driver_4EAB9850(modBuf, execInfo->execSize, newSize) != SCE_ERROR_OK) //0x00005958
if (sceUtilsGetLoadModuleJLength(modBuf, execInfo->execSize, newSize) != SCE_ERROR_OK) //0x00005958
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
execInfo->isDecrypted = SCE_TRUE;
break; //0x000057DC
case DECRYPT_MODE_UNKNOWN_11:
case DECRYPT_MODE_GAMESHARING_EXEC_DEVTOOL:
if (sceKernelIsToolMode() != SCE_ERROR_OK) //0x00005B34
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
if ((header->modAttribute & SCE_MODULE_PRIVILEGE_LEVELS) != SCE_MODULE_USB_WLAN) //0x00005B48
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
if (sceMesgLed_driver_B2CDAC3F(modBuf, execInfo->execSize, newSize) != SCE_ERROR_OK) //0x00005958
if (sceUtilsGetLoadModuleKLength(modBuf, execInfo->execSize, newSize) != SCE_ERROR_OK) //0x00005958
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
execInfo->isDecrypted = SCE_TRUE;
@ -1267,7 +1267,7 @@ static s32 PspUncompress(u8 *modBuf, SceLoadCoreExecFileInfo *execInfo,
if ((header->modAttribute & SCE_MODULE_PRIVILEGE_LEVELS) != SCE_MODULE_VSH) //0x00005B74
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
if (sceMesgLed_driver_C79E3488(modBuf, execInfo->execSize, newSize) != SCE_ERROR_OK) //0x00005958
if (sceUtilsGetLoadModuleLLength(modBuf, execInfo->execSize, newSize) != SCE_ERROR_OK) //0x00005958
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
execInfo->isDecrypted = SCE_TRUE;
@ -1276,7 +1276,7 @@ static s32 PspUncompress(u8 *modBuf, SceLoadCoreExecFileInfo *execInfo,
if ((header->modAttribute & SCE_MODULE_PRIVILEGE_LEVELS) != SCE_MODULE_MS) //0x00005BA0
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
if (sceMesgLed_driver_21AFFAAC(modBuf, execInfo->execSize, newSize) != SCE_ERROR_OK) //0x00005958
if (sceUtilsGetLoadModuleMLength(modBuf, execInfo->execSize, newSize) != SCE_ERROR_OK) //0x00005958
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
execInfo->isDecrypted = SCE_TRUE;
@ -1285,19 +1285,19 @@ static s32 PspUncompress(u8 *modBuf, SceLoadCoreExecFileInfo *execInfo,
if ((header->modAttribute & SCE_MODULE_PRIVILEGE_LEVELS) != SCE_MODULE_APP) //0x00005BCC
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
if (sceMesgLed_driver_C00DAD75(modBuf, execInfo->execSize, newSize) != SCE_ERROR_OK) //0x00005958
if (sceUtilsGetLoadModuleNLength(modBuf, execInfo->execSize, newSize) != SCE_ERROR_OK) //0x00005958
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
execInfo->isDecrypted = SCE_TRUE;
break; //0x000057DC
case DECRYPT_MODE_UNKNOWN_18:
if (sceMesgLed_driver_CED2C075(modBuf, execInfo->execSize, newSize, execInfo->secureInstallId) != SCE_ERROR_OK) //0x00005958
case DECRYPT_MODE_MS_GAME_PATCH:
if (sceUtilsGetLoadModuleRLength(modBuf, execInfo->execSize, newSize, execInfo->secureInstallId) != SCE_ERROR_OK) //0x00005958
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
execInfo->isDecrypted = SCE_TRUE;
break; //0x000057DC
case DECRYPT_MODE_UNKNOWN_19:
if (sceMesgLed_driver_C7D1C16B(modBuf, execInfo->execSize, newSize, execInfo->secureInstallId) != SCE_ERROR_OK) //0x00005958
case DECRYPT_MODE_MS_GAME_PATCH_DEVTOOL:
if (sceUtilsGetLoadModuleSLength(modBuf, execInfo->execSize, newSize, execInfo->secureInstallId) != SCE_ERROR_OK) //0x00005958
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
execInfo->isDecrypted = SCE_TRUE;
@ -1306,7 +1306,7 @@ static s32 PspUncompress(u8 *modBuf, SceLoadCoreExecFileInfo *execInfo,
if ((header->modAttribute & SCE_MODULE_PRIVILEGE_LEVELS) != SCE_MODULE_MS) //0x00005C30
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
if (sceMesgLed_driver_EBB4613D(modBuf, execInfo->execSize, newSize, execInfo->secureInstallId) != SCE_ERROR_OK) //0x00005958
if (sceUtilsGetLoadModuleTLength(modBuf, execInfo->execSize, newSize, execInfo->secureInstallId) != SCE_ERROR_OK) //0x00005958
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
execInfo->isDecrypted = SCE_TRUE;
@ -1315,7 +1315,7 @@ static s32 PspUncompress(u8 *modBuf, SceLoadCoreExecFileInfo *execInfo,
if ((header->modAttribute & SCE_MODULE_PRIVILEGE_LEVELS) != SCE_MODULE_MS) //0x00005C60
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
if (sceMesgLed_driver_66B348B2(modBuf, execInfo->execSize, newSize, execInfo->secureInstallId) != SCE_ERROR_OK) //0x00005958
if (sceUtilsGetLoadModuleULength(modBuf, execInfo->execSize, newSize, execInfo->secureInstallId) != SCE_ERROR_OK) //0x00005958
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
execInfo->isDecrypted = SCE_TRUE;
@ -1324,7 +1324,7 @@ static s32 PspUncompress(u8 *modBuf, SceLoadCoreExecFileInfo *execInfo,
if ((header->modAttribute & SCE_MODULE_PRIVILEGE_LEVELS) != SCE_MODULE_APP) //0x00005C90
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
if (sceMesgLed_driver_B2D95FDF(modBuf, execInfo->execSize, newSize) != SCE_ERROR_OK) //0x00005958
if (sceUtilsGetLoadModuleVLength(modBuf, execInfo->execSize, newSize) != SCE_ERROR_OK) //0x00005958
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
execInfo->isDecrypted = SCE_TRUE;
@ -1333,16 +1333,16 @@ static s32 PspUncompress(u8 *modBuf, SceLoadCoreExecFileInfo *execInfo,
if ((header->modAttribute & SCE_MODULE_PRIVILEGE_LEVELS) != SCE_MODULE_USER) //0x00005CB8
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
if (sceMesgLed_driver_91E0A9AD(modBuf, execInfo->execSize, newSize, execInfo->secureInstallId) != SCE_ERROR_OK) //0x00005958
if (sceUtilsGetLoadModuleWLength(modBuf, execInfo->execSize, newSize, execInfo->secureInstallId) != SCE_ERROR_OK) //0x00005958
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
execInfo->isDecrypted = SCE_TRUE;
break; //0x000057DC
case DECRYPT_MODE_UNKNOWN_25:
case DECRYPT_MODE_MS_GAME_PBOOT:
if ((header->modAttribute & SCE_MODULE_PRIVILEGE_LEVELS) != SCE_MODULE_USER) //0x00005CE4
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
if (sceMesgLed_driver_31D6D8AA(modBuf, execInfo->execSize, newSize, execInfo->secureInstallId) != SCE_ERROR_OK) //0x00005958
if (sceUtilsGetLoadModuleYLength(modBuf, execInfo->execSize, newSize, execInfo->secureInstallId) != SCE_ERROR_OK) //0x00005958
return SCE_ERROR_KERNEL_UNSUPPORTED_PRX_TYPE;
execInfo->isDecrypted = SCE_TRUE;
@ -1573,22 +1573,19 @@ static s32 CheckElfImage(Elf32_Ehdr *elfHeader1 __attribute((unused)), Elf32_Ehd
static s32 CheckTick(u8 *modBuf)
{
s32 status;
u32 buf[2];
u32 tick[2];
u64 currentTick;
u64 expireTick;
status = sceMesgLed_driver_9E3C79D9(modBuf, 0x160, buf); //0x000067C4
status = sceUtilsGetModuleExpireTick(modBuf, 0x160, &expireTick); //0x000067C4
//getModuleParam error
if (status < SCE_ERROR_OK) //0x000067E0
return (status == (s32)SCE_ERROR_NOT_SUPPORTED) ? SCE_ERROR_OK : status; //0x000067D4
status = sceKernelRtcGetTick((u64 *)tick); //0x000067E8
status = sceKernelRtcGetTick(&currentTick); //0x000067E8
if (status < SCE_ERROR_OK)
return status;
if (buf[1] < tick[1]) //0x00006808
return 0x8001003E;
if ((buf[1] == tick[1]) && (buf[0] < tick[0])) //0x00006810
if (expireTick < currentTick) //0x00006808 - 0x00006810
return 0x8001003E;
return SCE_ERROR_OK;

View File

@ -38,31 +38,35 @@
* Decryption mode executable file types.
*/
enum SceExecFileDecryptMode {
/* Not an executable. */
DECRYPT_MODE_NO_EXEC = 0,
/* 1.50 Kernel module. */
DECRYPT_MODE_BOGUS_MODULE = 1,
DECRYPT_MODE_KERNEL_MODULE = 2,
DECRYPT_MODE_VSH_MODULE = 3,
DECRYPT_MODE_USER_MODULE = 4,
DECRYPT_MODE_UMD_GAME_EXEC = 9,
DECRYPT_MODE_GAMESHARING_EXEC = 10,
/* USB/WLAN module. */
DECRYPT_MODE_UNKNOWN_11 = 11,
DECRYPT_MODE_MS_UPDATER = 12,
DECRYPT_MODE_DEMO_EXEC = 13,
DECRYPT_MODE_APP_MODULE = 14,
DECRYPT_MODE_UNKNOWN_18 = 18,
DECRYPT_MODE_UNKNOWN_19 = 19,
DECRYPT_MODE_POPS_EXEC = 20,
/* MS module. */
DECRYPT_MODE_UNKNOWN_21 = 21,
/* APP module. */
DECRYPT_MODE_UNKNOWN_22 = 22,
/* USER module. */
DECRYPT_MODE_UNKNOWN_23 = 23,
/* USER module. */
DECRYPT_MODE_UNKNOWN_25 = 25,
DECRYPT_MODE_NO_EXEC = 0, /* Not an executable. */
DECRYPT_MODE_BOGUS_MODULE = 1, /* 1.50 Kernel module. */
DECRYPT_MODE_KERNEL_MODULE = 2,
DECRYPT_MODE_VSH_MODULE = 3,
DECRYPT_MODE_USER_MODULE = 4,
DECRYPT_MODE_UMD_GAME_EXEC = 9,
DECRYPT_MODE_GAMESHARING_EXEC = 10,
DECRYPT_MODE_GAMESHARING_EXEC_DEVTOOL = 11,
DECRYPT_MODE_MS_UPDATER = 12,
DECRYPT_MODE_DEMO_EXEC = 13,
DECRYPT_MODE_APP_MODULE = 14,
/**
* Game data/patch for retail console installed via SCE install utility API.
* Note the installed data is tied to the PSP device it was created from.
*/
DECRYPT_MODE_MS_GAME_PATCH = 18, // 0x12
DECRYPT_MODE_MS_GAME_PATCH_DEVTOOL = 19, // 0x13
DECRYPT_MODE_POPS_EXEC = 20, // 0x14
/** SCE_MODULE_MS module (POPS/Demo) with secure install ID. POPS demo exec? */
DECRYPT_MODE_UNKNOWN_21 = 21, // 0x15
/** SCE_MODULE_APP module. APP demo exec? */
DECRYPT_MODE_UNKNOWN_22 = 22, // 0x16
/** SCE_MODULE_USER module with secure install ID. */
DECRYPT_MODE_UNKNOWN_23 = 23, // 0x17
/**
* Game patch (PBOOT.PBP) for retail console (eg. SOCOM FTB 3).
* This module can be decrypted with any PSP device.
*/
DECRYPT_MODE_MS_GAME_PBOOT = 25, // 0x19
};
typedef struct {

View File

@ -8,31 +8,31 @@ PSP_EXPORT_VAR_HASH(module_sdk_version)
PSP_EXPORT_END
PSP_EXPORT_START(sceMesgLed_driver, 0x0011, 0x0009)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_21AFFAAC, 0x21AFFAAC)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_2CB700EC, 0x2CB700EC)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_308D37FF, 0x308D37FF)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_31D6D8AA, 0x31D6D8AA)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_337D0DD3, 0x337D0DD3)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_3783B0AD, 0x3783B0AD)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_4BE02A12, 0x4BE02A12)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_4EAB9850, 0x4EAB9850)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_52B6E552, 0x52B6E552)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_5C3A61FE, 0x5C3A61FE)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_66B348B2, 0x66B348B2)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_6BF453D3, 0x6BF453D3)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_792A6126, 0x792A6126)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_91E0A9AD, 0x91E0A9AD)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_9E3C79D9, 0x9E3C79D9)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_B2CDAC3F, 0xB2CDAC3F)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_B2D95FDF, 0xB2D95FDF)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_B5596BE4, 0xB5596BE4)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_C00DAD75, 0xC00DAD75)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_C79E3488, 0xC79E3488)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_C7D1C16B, 0xC7D1C16B)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_C9ABD2F2, 0xC9ABD2F2)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_CED2C075, 0xCED2C075)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_EBB4613D, 0xEBB4613D)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_F8485C9C, 0xF8485C9C)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleMLength, 0x21AFFAAC)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleDLength, 0x2CB700EC)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleDLengthByPolling, 0x308D37FF)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleYLength, 0x31D6D8AA)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleILength, 0x337D0DD3)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleCLengthByPolling, 0x3783B0AD)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleJLengthByPolling, 0x4BE02A12)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleJLength, 0x4EAB9850)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleMLengthByPolling, 0x52B6E552)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleCLength, 0x5C3A61FE)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleULength, 0x66B348B2)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleLLengthByPolling, 0x6BF453D3)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleILengthByPolling, 0x792A6126)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleWLength, 0x91E0A9AD)
PSP_EXPORT_FUNC_NID(sceUtilsGetModuleExpireTick, 0x9E3C79D9)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleKLength, 0xB2CDAC3F)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleVLength, 0xB2D95FDF)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleKLengthByPolling, 0xB5596BE4)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleNLength, 0xC00DAD75)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleLLength, 0xC79E3488)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleSLength, 0xC7D1C16B)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleVLengthByPolling, 0xC9ABD2F2)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleRLength, 0xCED2C075)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleTLength, 0xEBB4613D)
PSP_EXPORT_FUNC_NID(sceUtilsGetLoadModuleNLengthByPolling, 0xF8485C9C)
PSP_EXPORT_END
PSP_EXPORT_START(sceResmap_driver, 0x0011, 0x0009)
@ -74,8 +74,8 @@ PSP_EXPORT_FUNC_NID(sceDbsvrGetData, 0x94561901)
PSP_EXPORT_END
PSP_EXPORT_START(sceMesgIns_driver, 0x0011, 0x0009)
PSP_EXPORT_FUNC_NID(sceMesgIns_driver_4A03F940, 0x4A03F940)
PSP_EXPORT_FUNC_NID(sceMesgIns_driver_D062B635, 0xD062B635)
PSP_EXPORT_FUNC_NID(sceUtilsPrepareGetLoadModuleSLength, 0x4A03F940)
PSP_EXPORT_FUNC_NID(sceUtilsPrepareGetLoadModuleRLength, 0xD062B635)
PSP_EXPORT_END
PSP_EXPORT_START(scePauth_driver, 0x0011, 0x0009)