42w ago - Following up on his
previous release, this weekend Sony PlayStation 3 hacker
Naehrwert has updated SCETool to version 0.2.8 which now includes SPP parsing among the changes outlined below.
Download:
PS3 SCETool v0.2.8 /
ZLib1.dll File (Required)
For those unaware, SCETool is a PS3 key crypto tool that supports a wide range of binary file types (SELF, RVK, PKG, SPP, OTHER).
To quote via Twitter: SCETool 0.2.8 (intermediate release)
Version 0.2.8 (intermediate release):
- Fixed minor bugs where scetool would crash.
- Added SPP parsing.
- Decrypting RVK/SPP will now write header+data to file.
and i'm noob dont know about reverse the eid.. can you ask them about Lv2diag.self signed for 3.60 or 3.70+ for downgrade?
haha just figured the eid3 algo, nice!
KaKaRoToKS and I added basic NPDRM support to scetool
SELF generation works now for SPU and PPU, except for compressing the data and NPDRM
added SPU SELF generation to scetool
Also from his site: nwert.wordpress.com/2011/12/24/individual-infos/
Individual Infos
One of the PS3′s console specific cryptography works as follows:
At factory time there is a console specific key generated, probably from a private constant value and a console specific seed. Maybe that’s the key used for encrypting bootldr and metldr. Fact is, that metldr stores another console specific keyset (key/iv) to LS offset 0×00000. That keyset is probably calculated from the first one. At factory time the isolated root keyset (how I call it) is used to encrypt the console’s “Individual Infos”, like eEID.
But not the whole eEID is encrypted the same way, special seeds are used to calculate key/iv pairs for the different sections. And not even that is true for every eEID section, because for e.g. EID0 another step is needed to generate the final section key(set). Each of the isolated modules using such an “Individual Info” has a special section that isoldr uses to generate the derived key(set)s.
But the generation works in a way, that the section data is encrypted with aes-cbc using the isolated root keyset, so it is not possible to calculate the isolated root keyset back from the derived key(set)s, because aes shouldn’t allow a known plaintext attack. So far I can decrypt some of EID0′s sections, EID1, EID2 and EID4. EID5 encryption should be similar to EID0′s but I lack the generation keys for that one.
Download: http://www.mediafire.com/?c10cwi77n7h4o3o
From his Tweet (twitter.com/#!/naehrwert/status/145481343411830784) the changes are as follows:
scetool 0.0.4 http://www.mediafire.com/?c10cwi77n7h4o3o
(added 32 bit ELF "unselfing")
isoldr_emulate
## fun with anergistic2
get pscode
result: 00 01 00 84 00 0B 00 04
get psid
result: 77 19 BD ** ** ** ** ** ** ** ** ** ** ** ** **
scetool 0.0.3 http://www.mediafire.com/?ykjil6hn2xai5qw
output for vsh.self pastie.org/2958961
scetool 0.0.3 (C) 2011 by naehrwert
Loaded keysets:
Name Type SDK-Type Version SELF-Type
pkg PKG 0x0000 0x0000000000000000
spp SPP 0x0000 0x0000000000000000
metldr SELF 0x0000 0x0000000000000000 [Secure Loader]
isoldr SELF 0x0000 0x0001000000000000 [Isolated SPU Module]
appldr SELF 0x0000 0x0003001500000000 [Application]
isoldr SELF 0x0000 0x0003004100000000 [Isolated SPU Module]
appldr SELF 0x0004 0x0003004100000000 [Application]
isoldr SELF 0x0000 0x0003005000000000 [Isolated SPU Module]
rvk RVK 0x0000 0x0003005500000000
Header decrypted.
Data decrypted.
SCE Header:
Magic 0x53434500 [OK]
Version 0x00000002
SDK Type [3.40 - 3.42]
Header Type [SELF]
Metadata Offset 0x000003F0
Header Length 0x0000000000000900
Data Length 0x00000000007033E0
Metadata Info:
Key F9 F8 37 BB D6 B4 90 75 AF 8F D5 8C 36 8A 0C CE
IV 18 27 0D 71 1E 37 1D 0A 95 D3 28 BB CB 95 04 B8
Metadata Header:
Signature Input Length 0x00000000000008A0
unknown_0 0x00000001
Section Count 0x00000006
Key Count 0x0000002E
Signature Info Size 0x00000030
unknown_1 0x00000000
unknown_2 0x00000000
Metadata Section Headers:
Idx Offset Size Type Index Hashed SHA1 Encrypted Key IV Compressed
000 00000900 002CB8FD 02 00 [YES] 00 [YES] 06 07 [YES]
001 002DAFE0 000208EC 02 01 [YES] 08 [YES] 0E 0F [YES]
002 002FB8D0 00000000 02 02 [YES] 10 [YES] 16 17 [NO ]
003 002FB8D0 00000000 02 03 [YES] 18 [YES] 1E 1F [NO ]
004 002FB8D0 00000000 02 04 [YES] 20 [YES] 26 27 [NO ]
005 002FB9E0 00000740 01 03 [YES] 28 [NO ] -- -- [NO ]
SCE File Keys:
00: F1 E9 B8 35 F0 7E 78 FF 54 70 D9 64 CA 1A 5D AB
01: 22 03 D7 61 00 00 00 00 00 00 00 00 00 00 00 00
02: C4 7C 03 A7 8C F6 FA B6 E9 09 DA C8 D1 B9 C2 95
03: A3 DA 6A 34 D2 3F 01 56 23 CC DD FB A4 EB A3 17
04: C3 83 AF F5 66 A8 A4 0F 07 ED 77 CD 74 FC 0A 75
05: E9 8E B9 36 38 26 87 97 45 C1 B4 9E B1 11 42 B9
06: 83 01 1F 35 4C 13 15 BC 38 2C AD E8 1A AD 16 84
07: FA E8 56 C6 07 15 C3 3C C5 0E 2B 9C 17 AD 72 88
08: DD 0D 18 5F 5A 1E 21 E9 08 2C 0F A8 25 FB D0 B0
09: 47 5E 2F 88 00 00 00 00 00 00 00 00 00 00 00 00
0A: C4 7C 03 A7 8C F6 FA B6 E9 09 DA C8 D1 B9 C2 95
0B: A3 DA 6A 34 D2 3F 01 56 23 CC DD FB A4 EB A3 17
0C: C3 83 AF F5 66 A8 A4 0F 07 ED 77 CD 74 FC 0A 75
0D: E9 8E B9 36 38 26 87 97 45 C1 B4 9E B1 11 42 B9
0E: 83 01 1F 35 4C 13 15 BC 38 2C AD E8 1A AD 16 84
0F: FA E8 56 C6 07 15 C3 3C C5 0E 2B 9C 17 AD 72 88
10: 25 48 16 0F 7B C8 98 8B D2 7E DF 38 B4 42 0B 7C
11: 17 70 C7 32 00 00 00 00 00 00 00 00 00 00 00 00
12: C4 7C 03 A7 8C F6 FA B6 E9 09 DA C8 D1 B9 C2 95
13: A3 DA 6A 34 D2 3F 01 56 23 CC DD FB A4 EB A3 17
14: C3 83 AF F5 66 A8 A4 0F 07 ED 77 CD 74 FC 0A 75
15: E9 8E B9 36 38 26 87 97 45 C1 B4 9E B1 11 42 B9
16: 83 01 1F 35 4C 13 15 BC 38 2C AD E8 1A AD 16 84
17: FA E8 56 C6 07 15 C3 3C C5 0E 2B 9C 17 AD 72 88
18: 25 48 16 0F 7B C8 98 8B D2 7E DF 38 B4 42 0B 7C
19: 17 70 C7 32 00 00 00 00 00 00 00 00 00 00 00 00
1A: C4 7C 03 A7 8C F6 FA B6 E9 09 DA C8 D1 B9 C2 95
1B: A3 DA 6A 34 D2 3F 01 56 23 CC DD FB A4 EB A3 17
1C: C3 83 AF F5 66 A8 A4 0F 07 ED 77 CD 74 FC 0A 75
1D: E9 8E B9 36 38 26 87 97 45 C1 B4 9E B1 11 42 B9
1E: 83 01 1F 35 4C 13 15 BC 38 2C AD E8 1A AD 16 84
1F: FA E8 56 C6 07 15 C3 3C C5 0E 2B 9C 17 AD 72 88
20: 25 48 16 0F 7B C8 98 8B D2 7E DF 38 B4 42 0B 7C
21: 17 70 C7 32 00 00 00 00 00 00 00 00 00 00 00 00
22: C4 7C 03 A7 8C F6 FA B6 E9 09 DA C8 D1 B9 C2 95
23: A3 DA 6A 34 D2 3F 01 56 23 CC DD FB A4 EB A3 17
24: C3 83 AF F5 66 A8 A4 0F 07 ED 77 CD 74 FC 0A 75
25: E9 8E B9 36 38 26 87 97 45 C1 B4 9E B1 11 42 B9
26: 83 01 1F 35 4C 13 15 BC 38 2C AD E8 1A AD 16 84
27: FA E8 56 C6 07 15 C3 3C C5 0E 2B 9C 17 AD 72 88
28: FE 14 10 F8 87 F2 19 67 FF DA D2 A7 8D 67 7C 35
29: 6E DC 94 28 00 00 00 00 00 00 00 00 00 00 00 00
2A: C4 7C 03 A7 8C F6 FA B6 E9 09 DA C8 D1 B9 C2 95
2B: A3 DA 6A 34 D2 3F 01 56 23 CC DD FB A4 EB A3 17
2C: C3 83 AF F5 66 A8 A4 0F 07 ED 77 CD 74 FC 0A 75
2D: E9 8E B9 36 38 26 87 97 45 C1 B4 9E B1 11 42 B9
SELF Header:
unknown_0 0x0000000000000003
App Info Offset 0x0000000000000070
ELF Offset 0x0000000000000090
PH Offset 0x00000000000000D0
SH Offset 0x00000000002FB9E0
Section Info Offset 0x0000000000000290
SCE Version Offset 0x0000000000000390
Control Info Offset 0x00000000000003A0
Control Info Size 0x0000000000000070
Application Info:
Authentication ID [vsh]
Vendor ID [SCEx]
SELF Type [Application]
Version 0x0003004100000000
ELF64 Header:
Type [EXEC]
Machine [PPC64]
Version 0x00000001
Entry 0x00000000006D7918
Program Headers Offset 0x0000000000000040
Section Headers Offset 0x0000000000702CA0
Flags 0x00000000
Program Headers Count 0x0008
Section Headers Count 0x001D
SH String Index 0x001C
ELF64 Program Headers:
Idx Type Offset VAddr PAddr FileSize MemSize PPU SPU RSX Align
000 LOAD 00000000 00010000 00010000 006A1228 006A1228 X-R --R --- 00010000
001 LOAD 006B0000 006C0000 006C0000 00052B90 000A8DE8 -WR -WR --- 00010000
002 LOAD 00702B90 00000000 00000000 00000000 00000000 --R --- --- 00010000
003 LOAD 00702B90 00000000 00000000 00000000 00000000 -WR --- --- 00010000
004 LOAD 00702B90 00000000 00000000 00000000 00000000 -WR -WR -WR 00010000
005 TLS 006EC37C 006FC37C 006FC37C 00000008 0000018C --R --- --- 00000008
006 60000001 006A1200 006B1200 006B1200 00000028 00000028 --- --- --- 00000008
007 60000002 00000000 00000000 006B1228 00000000 00000000 --- --- --- 00000008
ELF64 Section Headers:
Idx Name Type Flags Address Offset Size ES Align LK
000 0000 NULL --- 00000000 00000000 00000000 0000 00000000 00
001 000B PROGBITS -AE 00010200 00000200 0000002C 0000 00000004 00
002 001F PROGBITS -AE 00010230 00000230 00623054 0000 00000008 00
003 0011 PROGBITS -AE 00633284 00623284 00000024 0000 00000004 00
004 0017 PROGBITS -AE 006332A8 006232A8 00001440 0000 00000004 00
005 0025 PROGBITS -A- 006346E8 006246E8 00009960 0000 00000004 00
006 0039 PROGBITS -A- 0063E048 0062E048 00000288 0000 00000004 00
007 0049 PROGBITS -A- 0063E2D0 0062E2D0 00000004 0000 00000004 00
008 0056 PROGBITS -A- 0063E2D4 0062E2D4 000002D8 0000 00000004 00
009 005F PROGBITS -A- 0063E5AC 0062E5AC 00000004 0000 00000004 00
010 006C PROGBITS -A- 0063E5B0 0062E5B0 00000004 0000 00000004 00
011 007A PROGBITS -A- 0063E5B4 0062E5B4 000003F4 0000 00000004 00
012 0084 PROGBITS -A- 0063E9A8 0062E9A8 00000004 0000 00000004 00
013 0092 PROGBITS -A- 0063E9B0 0062E9B0 00070308 0000 00000010 00
014 009A PROGBITS -A- 006AED00 0069ED00 00002500 0000 00000080 00
015 00A5 PROGBITS WA- 006B1200 006A1200 00000028 0000 00000008 00
016 00B5 PROGBITS WA- 006C0000 006B0000 0000029C 0000 00000004 00
017 00BC PROGBITS WA- 006C029C 006B029C 00000230 0000 00000004 00
018 00C3 PROGBITS WA- 006C04CC 006B04CC 00000004 0000 00000004 00
019 00C8 PROGBITS WA- 006C04D0 006B04D0 00014AF8 0000 00000008 00
020 00D5 PROGBITS WA- 006D4FC8 006C4FC8 00000288 0000 00000004 00
021 00E4 PROGBITS WA- 006D5250 006C5250 000026B8 0000 00000008 00
022 00EA PROGBITS WA- 006D7908 006C7908 000171F8 0000 00000008 00
023 00EF PROGBITS WA- 006EEB00 006DEB00 0000D87C 0000 00000008 00
024 00F4 PROGBITS WA- 006FC37C 006EC37C 00000008 0000 00000004 00
025 00FB NOBITS WA- 006FC388 006EC384 00000180 0000 00000008 00
026 0101 PROGBITS WA- 006FC508 006EC508 00016688 0000 00000008 00
027 0107 NOBITS WA- 00712B90 00702B90 00056258 0000 00000010 00
028 0001 STRTAB --- 00000000 00702B90 0000010C 0000 00000001 00
Added ELF64 support to scetool!
but I extended eidtool by some new functions