Skip to content

Commit a1932bb

Browse files
committed
Added 10.0x Offsets ( Not Working )
1 parent 70444c0 commit a1932bb

2 files changed

Lines changed: 317 additions & 2 deletions

File tree

prosper0gdb/offsets.c

Lines changed: 189 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2879,6 +2879,192 @@ DEF(lapic_map, 0x27af838)
28792879
#include "offset_list.txt"
28802880
END_FW()
28812881

2882+
START_FW(1000)
2883+
DEF(allproc, 0x2765d70)
2884+
DEF(idt, 0x2d5c300)
2885+
DEF(gdt_array, 0x2d5d5e0)
2886+
DEF(tss_array, 0x2d5efe0)
2887+
DEF(pcpu_array, 0x2d70f00)
2888+
DEF(doreti_iret, -0xa6eb13)
2889+
DEF(add_rsp_iret, doreti_iret - 7)
2890+
DEF(swapgs_add_rsp_iret, doreti_iret - 10)
2891+
DEF(rep_movsb_pop_rbp_ret, -0xa32466)
2892+
DEF(rdmsr_start, -0xa7024a)
2893+
DEF(wrmsr_ret, -0xa7161c)
2894+
DEF(nop_ret, wrmsr_ret + 2)
2895+
DEF(dr2gpr_start, -0xa75c53)
2896+
DEF(gpr2dr_1_start, -0xa75b3a)
2897+
DEF(gpr2dr_2_start, -0xa75a47)
2898+
DEF(mov_cr3_rax_mov_ds, -0xa756a9)
2899+
DEF(mov_rax_cr3, -0x3C9A2F)
2900+
DEF(cpu_switch, -0xa75e40)
2901+
DEF(mprotect_fix_start, -0x9a8293)
2902+
DEF(mprotect_fix_end, mprotect_fix_start+6)
2903+
2904+
DEF(mmap_self_fix_1_start, 0x0)
2905+
DEF(mmap_self_fix_1_end, mmap_self_fix_1_start+2)
2906+
DEF(mmap_self_fix_2_start, 0x0)
2907+
DEF(mmap_self_fix_2_end, mmap_self_fix_2_start+2)
2908+
2909+
DEF(aslr_fix_start, -0x8F033D)
2910+
DEF(aslr_fix_end, aslr_fix_start+2)
2911+
2912+
DEF(sigaction_fix_start, -0x73d979)
2913+
DEF(sigaction_fix_end, -0x73d94d)
2914+
DEF(sysents, 0x1ad100)
2915+
DEF(sysents_ps4, 0x1a4bb0)
2916+
DEF(sysentvec, 0xdba6d8)
2917+
DEF(sysentvec_ps4, 0xdba850)
2918+
DEF(sceSblServiceMailbox, -0x6f8b10)
2919+
DEF(sceSblAuthMgrSmIsLoadable2, -0x941160)
2920+
DEF(mdbg_call_fix, -0x6995e9)
2921+
DEF(syscall_before, -0x893e21)
2922+
DEF(syscall_after, -0x893ded)
2923+
DEF(malloc, -0xbb850)
2924+
DEF(M_something, 0x1407470)
2925+
DEF(loadSelfSegment_epilogue, -0x940A67)
2926+
DEF(loadSelfSegment_watchpoint, -0x2FC6A7)
2927+
DEF(loadSelfSegment_watchpoint_lr, -0x940CA7)
2928+
DEF(decryptSelfBlock_watchpoint_lr, -0x94093E)
2929+
DEF(decryptSelfBlock_epilogue, -0x9408DB)
2930+
DEF(decryptMultipleSelfBlocks_watchpoint_lr, -0x940209)
2931+
DEF(decryptMultipleSelfBlocks_epilogue, -0x93FFEF)
2932+
DEF(sceSblServiceMailbox_lr_verifyHeader, -0x940e47)
2933+
DEF(sceSblServiceMailbox_lr_loadSelfSegment, -0x940ad4)
2934+
DEF(sceSblServiceMailbox_lr_decryptSelfBlock, -0x94051d)
2935+
DEF(sceSblServiceMailbox_lr_decryptMultipleSelfBlocks, -0x93FD52)
2936+
DEF(sceSblServiceMailbox_lr_sceSblAuthMgrSmFinalize, -0x9411d8)
2937+
DEF(sceSblServiceMailbox_lr_verifySuperBlock, -0x9EA679)
2938+
DEF(sceSblServiceMailbox_lr_sceSblPfsClearKey_1, -0x9EACF2)
2939+
DEF(sceSblServiceMailbox_lr_sceSblPfsClearKey_2, -0x9EAC8D)
2940+
DEF(sceSblServiceMailbox_lr_npdrm_cmd_5, -0x34D98A)
2941+
DEF(sceSblServiceMailbox_lr_npdrm_cmd_6, -0x34D755)
2942+
//DEF(sceSblPfsSetKeys, -0x9EA920) //403
2943+
DEF(sceSblPfsSetKeys, -0x9EB870) //505
2944+
DEF(sceSblServiceCryptAsync, -0x98A590)
2945+
DEF(sceSblServiceCryptAsync_deref_singleton, -0x98A556)
2946+
DEF(copyin, -0xa32d30)
2947+
DEF(copyout, -0xa32de0)
2948+
DEF(crypt_message_resolve, -0x4B5A50)
2949+
DEF(justreturn, -0xa6ed40)
2950+
DEF(justreturn_pop, justreturn+8)
2951+
DEF(mini_syscore_header, 0xe896d8)
2952+
DEF(pop_all_iret, -0xa6eb72)
2953+
DEF(pop_all_except_rdi_iret, pop_all_iret+4)
2954+
DEF(push_pop_all_iret, -0xa106b8)
2955+
DEF(kernel_pmap_store, 0x2cf0ef8)
2956+
DEF(crypt_singleton_array, 0x2c35d70)
2957+
DEF(security_flags, 0xD79064)
2958+
DEF(targetid, 0xD7906D)
2959+
DEF(qa_flags, 0xD79088)
2960+
DEF(utoken, 0xD790F0)
2961+
DEF(mov_rax_cr0, -0xa75da1)
2962+
DEF(mov_cr0_rax, -0xa75d9c)
2963+
DEF(mov_rdi_cr2, -0xa71fca)
2964+
DEF(lgdt_rdi, -0xa32640)
2965+
DEF(lidt_lldt, -0xa755f1)
2966+
DEF(ltr_ax, -0xa755cf)
2967+
DEF(kproc_shutdown, -0xa0d090)
2968+
DEF(s_shutdown_final, 0x36dc89)
2969+
DEF(eventhandler_register, -0x568300)
2970+
DEF(strlen_trap, -0x483f88)
2971+
DEF(lapic_map, 0x27bf858)
2972+
#include "offset_list.txt"
2973+
END_FW()
2974+
2975+
START_FW(1001)
2976+
DEF(allproc, 0x2765d70)
2977+
DEF(idt, 0x2d5c300)
2978+
DEF(gdt_array, 0x2d5d5e0)
2979+
DEF(tss_array, 0x2d5efe0)
2980+
DEF(pcpu_array, 0x2d70f00)
2981+
DEF(doreti_iret, -0xa6eb13)
2982+
DEF(add_rsp_iret, doreti_iret - 7)
2983+
DEF(swapgs_add_rsp_iret, doreti_iret - 10)
2984+
DEF(rep_movsb_pop_rbp_ret, -0xa32466)
2985+
DEF(rdmsr_start, -0xa7024a)
2986+
DEF(wrmsr_ret, -0xa7161c)
2987+
DEF(nop_ret, wrmsr_ret + 2)
2988+
DEF(dr2gpr_start, -0xa75c53)
2989+
DEF(gpr2dr_1_start, -0xa75b3a)
2990+
DEF(gpr2dr_2_start, -0xa75a47)
2991+
DEF(mov_cr3_rax_mov_ds, -0xa756a9)
2992+
DEF(mov_rax_cr3, -0x3C9A2F)
2993+
DEF(cpu_switch, -0xa75e40)
2994+
DEF(mprotect_fix_start, -0x9a8293)
2995+
DEF(mprotect_fix_end, mprotect_fix_start+6)
2996+
2997+
DEF(mmap_self_fix_1_start, 0x0)
2998+
DEF(mmap_self_fix_1_end, mmap_self_fix_1_start+2)
2999+
DEF(mmap_self_fix_2_start, 0x0)
3000+
DEF(mmap_self_fix_2_end, mmap_self_fix_2_start+2)
3001+
3002+
DEF(aslr_fix_start, -0x8F033D)
3003+
DEF(aslr_fix_end, aslr_fix_start+2)
3004+
3005+
DEF(sigaction_fix_start, -0x73d979)
3006+
DEF(sigaction_fix_end, -0x73d94d)
3007+
DEF(sysents, 0x1ad100)
3008+
DEF(sysents_ps4, 0x1a4bb0)
3009+
DEF(sysentvec, 0xdba6d8)
3010+
DEF(sysentvec_ps4, 0xdba850)
3011+
DEF(sceSblServiceMailbox, -0x6f8b10)
3012+
DEF(sceSblAuthMgrSmIsLoadable2, -0x941160)
3013+
DEF(mdbg_call_fix, -0x6995e9)
3014+
DEF(syscall_before, -0x893e21)
3015+
DEF(syscall_after, -0x893ded)
3016+
DEF(malloc, -0xbb850)
3017+
DEF(M_something, 0x1407470)
3018+
DEF(loadSelfSegment_epilogue, -0x940A67)
3019+
DEF(loadSelfSegment_watchpoint, -0x2FC6A7)
3020+
DEF(loadSelfSegment_watchpoint_lr, -0x940CA7)
3021+
DEF(decryptSelfBlock_watchpoint_lr, -0x94093E)
3022+
DEF(decryptSelfBlock_epilogue, -0x9408DB)
3023+
DEF(decryptMultipleSelfBlocks_watchpoint_lr, -0x940209)
3024+
DEF(decryptMultipleSelfBlocks_epilogue, -0x93FFEF)
3025+
DEF(sceSblServiceMailbox_lr_verifyHeader, -0x940e47)
3026+
DEF(sceSblServiceMailbox_lr_loadSelfSegment, -0x940ad4)
3027+
DEF(sceSblServiceMailbox_lr_decryptSelfBlock, -0x94051d)
3028+
DEF(sceSblServiceMailbox_lr_decryptMultipleSelfBlocks, -0x93FD52)
3029+
DEF(sceSblServiceMailbox_lr_sceSblAuthMgrSmFinalize, -0x9411d8)
3030+
DEF(sceSblServiceMailbox_lr_verifySuperBlock, -0x9EA679)
3031+
DEF(sceSblServiceMailbox_lr_sceSblPfsClearKey_1, -0x9EACF2)
3032+
DEF(sceSblServiceMailbox_lr_sceSblPfsClearKey_2, -0x9EAC8D)
3033+
DEF(sceSblServiceMailbox_lr_npdrm_cmd_5, -0x34D98A)
3034+
DEF(sceSblServiceMailbox_lr_npdrm_cmd_6, -0x34D755)
3035+
//DEF(sceSblPfsSetKeys, -0x9EA920) //403
3036+
DEF(sceSblPfsSetKeys, -0x9EB870) //505
3037+
DEF(sceSblServiceCryptAsync, -0x98A590)
3038+
DEF(sceSblServiceCryptAsync_deref_singleton, -0x98A556)
3039+
DEF(copyin, -0xa32d30)
3040+
DEF(copyout, -0xa32de0)
3041+
DEF(crypt_message_resolve, -0x4B5A50)
3042+
DEF(justreturn, -0xa6ed40)
3043+
DEF(justreturn_pop, justreturn+8)
3044+
DEF(mini_syscore_header, 0xe896d8)
3045+
DEF(pop_all_iret, -0xa6eb72)
3046+
DEF(pop_all_except_rdi_iret, pop_all_iret+4)
3047+
DEF(push_pop_all_iret, -0xa10540)
3048+
DEF(kernel_pmap_store, 0x2cf0ef8)
3049+
DEF(crypt_singleton_array, 0x2c35d70)
3050+
DEF(security_flags, 0xD79064)
3051+
DEF(targetid, 0xD7906D)
3052+
DEF(qa_flags, 0xD79088)
3053+
DEF(utoken, 0xD790F0)
3054+
DEF(mov_rax_cr0, -0xa75da1)
3055+
DEF(mov_cr0_rax, -0xa75d9c)
3056+
DEF(mov_rdi_cr2, -0xa71fca)
3057+
DEF(lgdt_rdi, -0xa32640)
3058+
DEF(lidt_lldt, -0xa755f1)
3059+
DEF(ltr_ax, -0xa755cf)
3060+
DEF(kproc_shutdown, -0xa0b100)
3061+
DEF(s_shutdown_final, 0x36dcc5)
3062+
DEF(eventhandler_register, -0x568300)
3063+
DEF(strlen_trap, -0x483f88)
3064+
DEF(lapic_map, 0x27bf858)
3065+
#include "offset_list.txt"
3066+
END_FW()
3067+
28823068
void* dlsym(void*, const char*);
28833069

28843070
int set_offsets(void)
@@ -2917,9 +3103,10 @@ int set_offsets(void)
29173103
case 0x920: set_offsets_920(); break;
29183104
case 0x940: set_offsets_940(); break;
29193105
case 0x960: set_offsets_960(); break;
3106+
case 0x1000: set_offsets_1000(); break;
3107+
case 0x1001: set_offsets_1001(); break;
29203108
#endif
29213109
default: return -1;
29223110
}
29233111
return 0;
2924-
}
2925-
3112+
}

ps5-kstuff/main.c

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1377,6 +1377,72 @@ static struct shellcore_patch shellcore_patches_960[] = {
13771377
{0x6F72C0, "\x48\x31\xc0\xc3", 4}, // PKG Installer
13781378
};
13791379

1380+
static struct shellcore_patch shellcore_patches_1000[] = {
1381+
{0xC03AC3, "\x52\xeb\xe2", 3}, //push rdx; jmp 0xC03AA8
1382+
{0xC03AA8, "\xe8\x33\xf8\xff\xff\x58\xc3", 7}, //call 0xC032E0; pop rax; ret
1383+
{0xC032C6, "\xe9\x06\x00\x00\x00", 5}, // jmp 0xC032D1
1384+
{0xC032D1, "\x31\xc0\x50\xe8\x07\x00\x00\x00\x58\xc3", 10}, //xor eax, eax; push rax; call 0xC032E0; pop rax; ret
1385+
{0x702624, "\xeb\x04", 2},
1386+
{0x30D19F, "\xeb\x04", 2},
1387+
{0x30D56F, "\xeb\x04", 2},
1388+
{0x722365, "\xeb", 1},
1389+
{0x70AF95, "\x90\xe9", 2},
1390+
{0x722AA3, "\xeb", 1},
1391+
{0x724A3F, "\x61\x01\x00\x00", 4}, // 0x724BA4
1392+
{0x206C11, "\xe8\x6a\x72\x60\x00\x31\xc9\xff\xc1\xe9\xd4\x01\x00\x00", 14}, // call 0x80DE80; xor ecx; inc ecx; jmp 0x206DF3
1393+
{0x206DF3, "\x83\xf8\x02\x0f\x43\xc1\xe9\x9e\xf9\xff\xff", 11},// cmp eax, 2; cmovae eax, ecx; jmp 0x20679C
1394+
{0x20675D, "\xe9\xaf\x04\x00\x00", 5}, // jmp 0x206C11
1395+
1396+
{0x7460A0, "\xC3", 1}, // callback to sceRifManagerRegisterActivationCallback
1397+
1398+
{0x16A1980, "\x31\xc0\xc3", 3}, // VR2 Min Fw Check
1399+
{0xA86D73, "\xeb\x03", 2}, // disable game error message
1400+
{0x305790, "\x90\xe9", 2}, // PS4 Disc Installer Patch 1
1401+
{0x30580A, "\x90\xe9", 2}, // PS5 Disc Installer Patch 1
1402+
{0x30590C, "\xeb", 1}, // PS4 PKG Installer Patch 1
1403+
{0x3059E0, "\xeb", 1}, // PS5 PKG Installer Patch 1
1404+
{0x305DE7, "\x90\xe9", 2}, // PS4 PKG Installer Patch 2
1405+
{0x305F8F, "\xeb", 1}, // PS5 PKG Installer Patch 2
1406+
{0x30633E, "\x90\xe9", 2}, // PS4 PKG Installer Patch 3
1407+
{0x3063D1, "\x90\xe9", 2}, // PS5 PKG Installer Patch 3
1408+
{0x700D28, "\xeb", 1}, // PS4 PKG Installer Patch 4
1409+
{0x7041F2, "\xeb", 1}, // PS5 PKG Installer Patch 4
1410+
{0x7078D0, "\x48\x31\xc0\xc3", 4}, // PKG Installer
1411+
};
1412+
1413+
static struct shellcore_patch shellcore_patches_1001[] = {
1414+
{0xC03AC3, "\x52\xeb\xe2", 3}, //push rdx; jmp 0xC03AA8
1415+
{0xC03AA8, "\xe8\x33\xf8\xff\xff\x58\xc3", 7}, //call 0xC032E0; pop rax; ret
1416+
{0xC032C6, "\xe9\x06\x00\x00\x00", 5}, // jmp 0xC032D1
1417+
{0xC032D1, "\x31\xc0\x50\xe8\x07\x00\x00\x00\x58\xc3", 10}, //xor eax, eax; push rax; call 0xC032E0; pop rax; ret
1418+
{0x702624, "\xeb\x04", 2},
1419+
{0x30D19F, "\xeb\x04", 2},
1420+
{0x30D56F, "\xeb\x04", 2},
1421+
{0x722365, "\xeb", 1},
1422+
{0x70AF95, "\x90\xe9", 2},
1423+
{0x722AA3, "\xeb", 1},
1424+
{0x724A3F, "\x61\x01\x00\x00", 4}, // 0x724BA4
1425+
{0x206C11, "\xe8\x6a\x72\x60\x00\x31\xc9\xff\xc1\xe9\xd4\x01\x00\x00", 14}, // call 0x80DE80; xor ecx; inc ecx; jmp 0x206DF3
1426+
{0x206DF3, "\x83\xf8\x02\x0f\x43\xc1\xe9\x9e\xf9\xff\xff", 11},// cmp eax, 2; cmovae eax, ecx; jmp 0x20679C
1427+
{0x20675D, "\xe9\xaf\x04\x00\x00", 5}, // jmp 0x206C11
1428+
1429+
{0x7460A0, "\xC3", 1}, // callback to sceRifManagerRegisterActivationCallback
1430+
1431+
{0x16A1980, "\x31\xc0\xc3", 3}, // VR2 Min Fw Check
1432+
{0xA86D73, "\xeb\x03", 2}, // disable game error message
1433+
{0x305790, "\x90\xe9", 2}, // PS4 Disc Installer Patch 1
1434+
{0x30580A, "\x90\xe9", 2}, // PS5 Disc Installer Patch 1
1435+
{0x30590C, "\xeb", 1}, // PS4 PKG Installer Patch 1
1436+
{0x3059E0, "\xeb", 1}, // PS5 PKG Installer Patch 1
1437+
{0x305DE7, "\x90\xe9", 2}, // PS4 PKG Installer Patch 2
1438+
{0x305F8F, "\xeb", 1}, // PS5 PKG Installer Patch 2
1439+
{0x30633E, "\x90\xe9", 2}, // PS4 PKG Installer Patch 3
1440+
{0x3063D1, "\x90\xe9", 2}, // PS5 PKG Installer Patch 3
1441+
{0x700D28, "\xeb", 1}, // PS4 PKG Installer Patch 4
1442+
{0x7041F2, "\xeb", 1}, // PS5 PKG Installer Patch 4
1443+
{0x7078D0, "\x48\x31\xc0\xc3", 4}, // PKG Installer
1444+
};
1445+
13801446
extern char _start[];
13811447

13821448
static void relocate_shellcore_patches(struct shellcore_patch* patches, size_t n_patches)
@@ -1472,6 +1538,8 @@ static const struct shellcore_patch* get_shellcore_patches(size_t* n_patches)
14721538
FW(920);
14731539
FW(940);
14741540
FW(960);
1541+
FW(1000);
1542+
FW(1001);
14751543
default:
14761544
*n_patches = 1;
14771545
return 0;
@@ -2282,6 +2350,60 @@ static struct PARASITES(14) parasites_960 = {
22822350
}
22832351
};
22842352

2353+
static struct PARASITES(14) parasites_1000 = {
2354+
.lim_syscall = 3,
2355+
.lim_fself = 12,
2356+
.lim_total = 14,
2357+
.parasites = {
2358+
/* syscall parasites */
2359+
{-0x894308, R13},
2360+
{-0x3BF480, RSI},
2361+
{-0x3BF440, RSI},
2362+
/* fself parasites */
2363+
{-0x2FC476, RAX},
2364+
{-0x2FCFDA, RAX},
2365+
//{-0x2FCE96, RAX},
2366+
{-0x2FCE96, RDX},
2367+
{-0x2FCC0B, RAX},
2368+
//{-0x2FCE96, RAX},
2369+
{-0x2FC932, R10},
2370+
{-0x2FC5FA, RAX},
2371+
{-0x2FC5EE, RAX},
2372+
{-0xA32F8C, RDI},
2373+
{-0x2FCA77, RAX},
2374+
/* unsorted parasites */
2375+
{-0x4B5766, RCX},
2376+
{-0x4B5766, R14},
2377+
}
2378+
};
2379+
2380+
static struct PARASITES(14) parasites_1001 = {
2381+
.lim_syscall = 3,
2382+
.lim_fself = 12,
2383+
.lim_total = 14,
2384+
.parasites = {
2385+
/* syscall parasites */
2386+
{-0x894308, R13},
2387+
{-0x3BF480, RSI},
2388+
{-0x3BF440, RSI},
2389+
/* fself parasites */
2390+
{-0x2FC476, RAX},
2391+
{-0x2FCFDA, RAX},
2392+
//{-0x2FCE96, RAX},
2393+
{-0x2FCE96, RDX},
2394+
{-0x2FCC0B, RAX},
2395+
//{-0x2FCE96, RAX},
2396+
{-0x2FC932, R10},
2397+
{-0x2FC5FA, RAX},
2398+
{-0x2FC5EE, RAX},
2399+
{-0xA32F8C, RDI},
2400+
{-0x2FCA77, RAX},
2401+
/* unsorted parasites */
2402+
{-0x4B5766, RCX},
2403+
{-0x4B5766, R14},
2404+
}
2405+
};
2406+
22852407
static struct parasite_desc* get_parasites(size_t* desc_size)
22862408
{
22872409
uint32_t ver = r0gdb_get_fw_version() >> 16;
@@ -2378,6 +2500,12 @@ static struct parasite_desc* get_parasites(size_t* desc_size)
23782500
case 0x960:
23792501
*desc_size = sizeof(parasites_960);
23802502
return (void*)&parasites_960;
2503+
case 0x1000:
2504+
*desc_size = sizeof(parasites_1000);
2505+
return (void*)&parasites_1000;
2506+
case 0x1001:
2507+
*desc_size = sizeof(parasites_1001);
2508+
return (void*)&parasites_1001;
23812509
default:
23822510
return 0;
23832511
#else

0 commit comments

Comments
 (0)