From af5bc1db503929d70affdd5471a94a2970bfeb13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Thu, 10 Sep 2026 13:20:05 -0600 Subject: [PATCH] PrxDecrypter: add the 2.6x and 2.8x sceResmgr keys 2.60 and 2.71 tag their flash0:/vsh/etc/index.dat 0x495BE403 rather than with the 0x0B2Bxxx0 the rest of this family uses; 2.80, 2.81 and 2.82 use 0x0B2B05F0. All five now reach an interactive XMB. Co-Authored-By: Claude Opus 5 (1M context) --- Core/ELF/PrxDecrypter.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Core/ELF/PrxDecrypter.cpp b/Core/ELF/PrxDecrypter.cpp index 1dc445b9fc..7e7451f171 100644 --- a/Core/ELF/PrxDecrypter.cpp +++ b/Core/ELF/PrxDecrypter.cpp @@ -320,6 +320,11 @@ static const u8 keys_9DC14891_3[] = {0x11, 0x0D, 0x1A, 0x4C, 0x8A, 0x19, 0x17, 0 // screen. Names are _. // 3.0x and 3.5x predate the per-model split and have a single flash0:/vsh/etc/index.dat. static const u8 keys_9DC14891_31x[] = {0x27, 0xE1, 0x31, 0xF5, 0xF7, 0x9B, 0xE7, 0x88, 0xD6, 0x8D, 0x7C, 0x0D, 0x99, 0x73, 0xA1, 0x8F}; +static const u8 keys_9DC14891_28x[] = {0xC3, 0x1A, 0x78, 0xC5, 0xF5, 0xBE, 0xC6, 0x92, 0xF9, 0xEF, 0x94, 0xEA, 0x51, 0xE5, 0x57, 0x11}; +// 2.6x and 2.7x tag their index.dat 0x495BE403 rather than with the 0x0B2Bxxx0 the rest of this +// family uses. The scramble code makes no difference to this file - every value tried decrypts it +// to the same plaintext - so it keeps the 0x5C the neighbouring entries have. +static const u8 keys_9DC14891_26x[] = {0xE4, 0x98, 0x8E, 0x93, 0x5B, 0x94, 0xAF, 0x19, 0xEA, 0x30, 0x6C, 0xEA, 0x6F, 0x1F, 0x11, 0x59}; static const u8 keys_9DC14891_30x[] = {0x96, 0x86, 0xDD, 0x78, 0x87, 0xA7, 0x2B, 0xD9, 0xDD, 0xC6, 0x6C, 0x4F, 0x89, 0xFB, 0xD4, 0xD7}; static const u8 keys_9DC14891_35x[] = {0x6B, 0x3F, 0x91, 0x58, 0xED, 0x40, 0x68, 0x54, 0x93, 0xD6, 0x45, 0x3F, 0x2C, 0xD4, 0x23, 0x43}; static const u8 keys_9DC14891_50x_01g[] = {0xF8, 0x15, 0xCC, 0x79, 0x10, 0x89, 0x16, 0xD6, 0x25, 0x11, 0x00, 0xEB, 0x6B, 0xB1, 0x13, 0xE2}; @@ -388,6 +393,8 @@ static const TAG_INFO2 g_tagInfo2[] = { 0x0B2B90F0, keys_9DC14891_1, 0x5C }, { 0x0B2B91F0, keys_9DC14891_2, 0x5C }, { 0x0B2B92F0, keys_9DC14891_3, 0x5C }, + { 0x495BE403, keys_9DC14891_26x, 0x5C }, + { 0x0B2B05F0, keys_9DC14891_28x, 0x5C }, { 0x0B2B06F0, keys_9DC14891_30x, 0x5C }, { 0x0B2B08F0, keys_9DC14891_31x, 0x5C }, { 0x0B2B0AF0, keys_9DC14891_35x, 0x5C },