Compare commits

..

No commits in common. "master" and "v1.4" have entirely different histories.
master ... v1.4

3 changed files with 47 additions and 107 deletions

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2019 Li
Copyright (c) 2019 Silica
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -141,6 +141,8 @@ int sceAppUtilCacheMount_patched(){
return ret;
}
int ret0 (int *args)
{
return 0;
@ -165,103 +167,27 @@ SceUID sceKernelLoadStartModule_patched(char *path, SceSize args, void *argp, in
sceClibPrintf("SecurityCritical: %x\n",SecurityCritical);
}
if(strstr(path,"libmono_bridge.suprx")) //PSM
{
/*
int SceLibMonoBridge_70493FB9
(char *sdk_version,undefined4 param_2,uint param_3,uint param_4,char *project_name,
undefined4 param_6,void *output)
find offset by following the 5th paramater, into 3 different functions.
you'll come accross a strcmp, lower down is a if(*unk_whatever = 1)
thats the jump you wnat to patch.
*/
tai_module_info_t info;
info.size = sizeof(tai_module_info_t);
taiGetModuleInfo("SceLibMonoBridge", &info);
uint16_t patched_instruction = 0xBF00; //ARM9 "NO OPERATION"
int ret = 0;
sceClibPrintf("%s: nid 0x%x\n",path,info.module_nid);
switch(info.module_nid)
{
case 0x28D9013B: //SDK 2.00
ret = taiInjectData(info.modid, 0, 0x132F8, &patched_instruction, 0x2);
sceClibPrintf("TaiInjectData (sdk2.00) %x\n",ret);
break;
case 0x88B67542: //SDK 1.21
ret = taiInjectData(info.modid, 0, 0x12e48, &patched_instruction, 0x2);
sceClibPrintf("TaiInjectData (sdk1.21) %x\n",ret);
break;
}
}
if(strstr(path,"libpsm.suprx")) //PSM
{
PeekPositive = taiHookFunctionImport(&PeekPositive_ref,
"SceLibPsm",
TAI_ANY_LIBRARY,
0xA9C3CED6, // sceCtrlPeekBufferPositive
sceCtrlPeekBufferPositive_patched);
sceClibPrintf("PeekPositive: %x\n",PeekPositive);
PeekPositive = taiHookFunctionImport(&PeekPositive_ref,
"SceLibPsm",
TAI_ANY_LIBRARY,
0xA9C3CED6, // sceCtrlPeekBufferPositive
sceCtrlPeekBufferPositive_patched);
sceClibPrintf("PeekPositive: %x\n",PeekPositive);
}
if(strstr(path,"libScePsmEdata.suprx")) //PSM Unity
{
/*
finding offsets for project_name
look at int ScePsmEdata_2EC7439C(int param_1,undefined4 param_2,uint param_3,uint param_4,char *project_name)
find offset by following the 5th paramater, into 3 different functions.
you'll come accross a strcmp, lower down is a if(*unk_whatever = 1)
thats the jump you wnat to patch.
for UnityCheckDrm look for sceIoGetStat,
look at all cross references and the function
that contiains one that has arg1 "cache0:/_System"
is UnityCheckDrm().
*/
tai_module_info_t info;
info.size = sizeof(tai_module_info_t);
taiGetModuleInfo("ScePsmEdata", &info);
uint16_t patched_instruction = 0xBF00; //ARM9 "NO OPERATION"
int ret = 0;
sceClibPrintf("%s: nid 0x%x\n",path,info.module_nid);
switch(info.module_nid)
{
case 0xB4657632: //Unity 4.3.7.0
ret = taiInjectData(info.modid, 0, 0x3b50, &patched_instruction, 0x2); //allow for all project_name
sceClibPrintf("TaiInjectData (unity4.3.7.0) %x\n",ret);
UnityCheckDrm = taiHookFunctionOffset(&UnityCheckDrm_ref,
info.modid,
ret,
0,
0x5a62, //PsmDrmBootCheck
1,
ret0);
sceClibPrintf("UnityCheckDrm: %x\n",UnityCheckDrm);
break;
case 0x21AE6754: //Unity Base
ret = taiInjectData(info.modid, 0, 0x10f9c, &patched_instruction, 0x2); //allow for all project_name
sceClibPrintf("TaiInjectData (unity base) %x\n",ret);
UnityCheckDrm = taiHookFunctionOffset(&UnityCheckDrm_ref,
info.modid,
0,
0x12eb2, //PsmDrmBootCheck
1,
ret0);
sceClibPrintf("UnityCheckDrm: %x\n",UnityCheckDrm);
break;
}
}
return ret;
@ -332,13 +258,10 @@ void module_start(SceSize argc, const void *args) {
int module_stop(SceSize argc, const void *args) {
// release hooks
if (CacheMounted >= 0) taiHookRelease(CacheMounted, CacheMounted_ref);
if (SuiteCheckDrm >= 0) taiHookRelease(SuiteCheckDrm, SuiteCheckDrm_ref);
if (UnityCheckDrm >= 0) taiHookRelease(UnityCheckDrm, UnityCheckDrm_ref);
if (SecurityCritical >= 0) taiHookRelease(SecurityCritical, SecurityCritical_ref);
if (PeekPositive >= 0) taiHookRelease(PeekPositive, PeekPositive_ref);
if (LoadModuleHook >= 0) taiHookRelease(LoadModuleHook, LoadModuleHook_ref);
if (SecurityCritical >= 0) taiHookRelease(SecurityCritical, SecurityCritical_ref);
return SCE_KERNEL_STOP_SUCCESS;
}

View File

@ -1,29 +1,46 @@
# MakePsmGreatAgain
Modifications to the PSM Developer applications
Features:
+ Never-Ending Publishing License. - While MakePsmGreatAgain is active, you dont have to "Refresh License" with PSM+
+ USB Serial Mode Re-Enabled - Can connect PC to Development Assistant via USB
+ PSMPlus Publishing Keys - Apps signed with PSMPlus Keys will work all consoles with MakePsmGreatAgain
+ Exit with Start+Up - While a PSM app is running, You can press Start+Up to return back to Developer Assistant
+ All applications are "SecurityCritcal" - Enables ALL .NET functions, including ones marked 'unsafe'
+ app.info "project_name" check patched (runtime only) - Enables games to run regardless of if "project_name" is set to "*"
(Note: As PSM Dev is revoked in f00d you need reF00D/0syscall6 or rePatch with a compati pack in order to run it)
Re-Enables USB Serial Mode, and gives PSM Developer Applications infinite publishing licenses
# Installation
To install plugin:
```
*PCSI00007
ur0:/tai/MakePsmGreatAgain-v1.5.suprx
ux0:/tai/MakePsmGreatAgain.suprx
*PCSI00009
ur0:/tai/MakePsmGreatAgain-v1.5.suprx
ux0:/tai/MakePsmGreatAgain.suprx
```
(use ur0 if prefered)
# FAQ
[How do i install PSM Dev?](https://www.youtube.com/watch?v=CuxaVTyAVn8)
[How do i install the PSM SDK?](https://www.youtube.com/watch?v=KoZ1xVNTjUc)
[How do i install PSM Dev?](https://pastebin.com/8mGXtC57)
Where gonna Build a wall and make Sony pay for it!
Probably with he money they stole from us
by deleting our PSM Purchases
# V1.4 -
Switched to Userland Plugin (.suprx)
Now enables "SecurityCritical" on all apps in PSM Dev (FOR ULTIMATE C# CAPIBILITYS!)
You can now use Start + UP to exit back to the PSM Developer application.
Download: https://bitbucket.org/SilicaAndPina/makepsmgreatagain/downloads/MakePsmGreatAgain.suprx
# V1.3 -
Now works with reF00D plugin by dots_tb (as well as repatch)
Download: https://bitbucket.org/SilicaAndPina/makepsmgreatagain/downloads/MakePsmGreatAgain-v1.3.skprx
# v1.2 -
Infinite Publishing License for PSM Dev for Unity (PCSI00009)
PSM Dev for Unity, app/game launching acturally working now (fixed bugs that dots-tb didnt want to fix)
Download: https://bitbucket.org/SilicaAndPina/makepsmgreatagain/downloads/MakePsmGreatAgain-v1.2.skprx
# v1.0 -
Automatically creates publishing license (if not allready created) at PSM Dev bootup (still need psm+ for development!)
Re-Enable's SceUsbSerial for ALL applications (yes, if u want to use it on your own homebrew, YOU CAN!)
Spoofs SecureTick to allways be within the valid period for the PsmDrmBoot and KConsole Cache (Publsihing License will never expire)
Note: Only PSM Dev Suite supported in v1.0
Download: https://bitbucket.org/SilicaAndPina/makepsmgreatagain/downloads/MakePsmGreatAgain.skprx