Editing Seeds
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
= Source of the PS3 seeds = | == Source of the PS3 seeds == | ||
The seeds presented on this page were acquired through different means. It started with a simple search (which I have to thank glevand and naehrwert for, as had it not been for those guys, I wouldn't have found myself the confidence to post this) and it went through several people who helped me along the way, and who probably wish to stay anonymous. | The seeds presented on this page were acquired through different means. It started with a simple search (which I have to thank glevand and naehrwert for, as had it not been for those guys, I wouldn't have found myself the confidence to post this) and it went through several people who helped me along the way, and who probably wish to stay anonymous. | ||
== Common == | == Common == | ||
Line 17: | Line 15: | ||
* Used on old firmwares, possibly for an old EID0 format (or fallback?) which can be 0x20 or 0x28 bytes in size. Decrypted section is always the same. | * Used on old firmwares, possibly for an old EID0 format (or fallback?) which can be 0x20 or 0x28 bytes in size. Decrypted section is always the same. | ||
* See [ | * See [http://pastie.org/private/rzg83pokd4vnxg60dj3qwg comments]. | ||
* Location: isoldr/appldr/lv1ldr | * Location: isoldr/appldr/lv1ldr | ||
Line 23: | Line 21: | ||
=== EID0 === | === EID0 === | ||
Used for individual ps3/psp/psn information. | |||
==== EID0 individuals seed ==== | ==== EID0 individuals seed ==== | ||
Line 35: | Line 35: | ||
* Location: aim_spu_module.self/isoldr/appldr/lv1ldr/spu_token_processor.self/spu_utoken_processor.self | * Location: aim_spu_module.self/isoldr/appldr/lv1ldr/spu_token_processor.self/spu_utoken_processor.self | ||
==== EID0 section 0 seed | ==== EID0 section 0 seed ==== | ||
<pre>2ED7CE8D1D55454585BF6A3281CD03AF</pre> | <pre>2ED7CE8D1D55454585BF6A3281CD03AF</pre> | ||
Line 41: | Line 41: | ||
* Location: aim_spu_module.self | * Location: aim_spu_module.self | ||
==== EID0 section 6 seed | ==== EID0 section 6 seed ==== | ||
<pre>3AB0E6C4ACFFB629362FFBBBDBC854BC</pre> | <pre>3AB0E6C4ACFFB629362FFBBBDBC854BC</pre> | ||
Line 47: | Line 47: | ||
* Location: pspemudrm (KIRK) | * Location: pspemudrm (KIRK) | ||
==== EID0 section | ==== EID0 section 6 for per-console encrypted ECDSA private key ==== | ||
Note: this seems to be the equivalent of the PSP KIRK command 0x10 AES128ECB key (idskey0). | |||
<pre>33793B9F79E2EBAE55D4D6BF0ED376E6</pre> | |||
Encrypt it with perconsole EID0_key to obtain the decryption key to decrypt your encrypted per-console ECDSA private key, located in the decrypted EID0 section 6 at offset 0x88. | |||
* Encryption algorithm: aes-256-ecb or aes-256-cbc with null IV. Why 256 bits ???? | |||
* Decryption algo: aes-128-ecb or aes-128-cbc with null IV. | |||
* Location: pspemudrm (KIRK) | |||
==== EID0 section 0xA seed ==== | |||
<pre>30B0395DC5835AAA3A7986B44AFAE684</pre> | |||
* Location: aim_spu_module.self | |||
=== eid1 === | |||
Used for individual SYSCON information. | |||
==== EID1 individuals seed | ==== EID1 individuals seed ==== | ||
<pre> | <pre> | ||
Line 92: | Line 91: | ||
* Location: sc_iso.self/sc_iso_factory.self/ss_sc_init.self | * Location: sc_iso.self/sc_iso_factory.self/ss_sc_init.self | ||
==== Time EID1 seed ==== | ==== Time EID1 seed ==== | ||
Line 105: | Line 105: | ||
=== EID2 === | === EID2 === | ||
Used for individual bluray information. | |||
==== EID2 individuals seed ==== | ==== EID2 individuals seed ==== | ||
Line 130: | Line 132: | ||
=== EID3 === | === EID3 === | ||
Used for individual CPRM information. | |||
==== EID3 individuals seed ==== | ==== EID3 individuals seed ==== | ||
Line 142: | Line 146: | ||
* Location: CprmModule.spu.isoself | * Location: CprmModule.spu.isoself | ||
==== EID3 | ==== EID3 keyseed ==== | ||
<pre>5FFF3FD81E18B956DAE4E6D3368297EF</pre> | <pre>5FFF3FD81E18B956DAE4E6D3368297EF</pre> | ||
Line 155: | Line 159: | ||
=== EID4 === | === EID4 === | ||
Used for individual bluray auth information. | |||
==== EID4 individuals seed ==== | ==== EID4 individuals seed ==== | ||
Line 264: | Line 270: | ||
</pre> | </pre> | ||
=== sc_iso module seed | === sc_iso module seed {{SD}} === | ||
<pre> | <pre> | ||
Line 328: | Line 334: | ||
</pre> | </pre> | ||
== eEID1 fallback == | === eEID1 fallback === | ||
<pre> | <pre> | ||
Line 374: | Line 380: | ||
</pre> | </pre> | ||
== eEID1 fallback decrypted == | |||
<pre> | <pre> | ||
Line 423: | Line 429: | ||
= Notes = | = Notes = | ||
* | * libeeid / ps3hdd_poc / ps3_decrypt_tools were adapted for this. So use them. | ||
* https://github.com/zecoxao/ps3_decrypt_tools Up-to-date | * https://github.com/zecoxao/ps3_decrypt_tools Up-to-date tools for decrypting and encrypting. | ||
* You will need eid_root_key (and IV), hdd image and EID. | |||
* The seeds are scattered all over the wiki, so it's nice to have a spot where you can look at the seed you wish :) | * The seeds are scattered all over the wiki, so it's nice to have a spot where you can look at the seed you wish :) | ||
* Many thanks to fail0verfl0w for this. Gotta love the print_hash function :3 | * Many thanks to fail0verfl0w for this. Gotta love the print_hash function :3 | ||
* Regarding | * Regarding syscon, there are two chunks of data, one located at ss_sc_init and the other at sc_iso with sizes 0x290 and 0x280 respectively. one is after keyseed_for_srk2 and the other is between k4 and k5. | ||
* ss_sc_init contains fallback EID1 of size 0x290 bytes. | * ss_sc_init contains fallback EID1 of size 0x290 bytes. | ||
= References = | |||
[https://web.archive.org/web/20141118233711/http://pastie.org/2858016 THE PLACEHOLDER] <- this curious pastie contains the first 4 bytes of several keys/seeds | |||
<pre> | <pre> | ||
1st | 1st-eid2 indiv seed | ||
2nd | 2nd-eid0 indiv seed | ||
3rd | 3rd-eid1 indiv seed | ||
4th | 4th-eid4 indiv seed | ||
5th | 5th-ata data seed | ||
6th | 6th-me iso indiv seed | ||
7th | 7th-mc iso indiv seed | ||
</pre> | </pre> | ||
= | [Iso_module isolated modules] <- used as reference for EID specific seeds, amongst others | ||
= EID Structure = | |||
EID is made of 6 "partitions" from EID0 to EID5. | |||
== EID0 == | |||
EID0 embeds 11 sections. | |||
=== EID0 Section === | |||
* Size: 0xC0 bytes. | |||
{|class="wikitable" | |||
|- | |||
! Description !! Length !! Note | |||
|- | |||
| Data || 0x10 || contains the actual data of the file (either idps or psid) | |||
|- | |||
| plaintext public key || 0x28 || contains the section's public key (without padding) | |||
|- | |||
| R || 0x14 || part of the ecdsa signature pair (r,s) | |||
|- | |||
| S || 0x14 || part of the ecdsa signature pair (r,s) | |||
|- | |||
| public key || 0x28 || ecdsa public key (can be used to verify ecdsa signature RS) | |||
|- | |||
| encrypted private key || 0x20 || encrypted blob that contains the section's private key (with padding) | |||
|- | |||
| cmac || 0x10 || hash of the previous information in CMAC mode | |||
|- | |||
| padding || 0x8 || zero byte padding for AES 128 bits encryption | |||
|} | |||
* [https://web.archive.org/web/20141118233713/http://pastie.org/6169158 naehrwert's EID0 section 0 ECDSA verification] | |||
== EID1 == | |||
* Size: 0x2A0 bytes. | |||
{|class="wikitable" | |||
|- | |||
! Offset !! Length !! Description | |||
|- | |||
| 0 || 0x10 || INIT Seed | |||
|- | |||
| 0x10 || 0x80 || AUTH1 Reencrypted Keyseeds | |||
|- | |||
| 0x90 || 0x80 || AUTH2 Reencrypted Keyseeds | |||
|- | |||
| 0x110 || 0x40 || Keyseeds (Time Service Purpose) | |||
|- | |||
| 0x150 || 0x10 || KeySeed (SNVS/Time Related) | |||
|- | |||
| 0x160 || 0x120 || Padding (Zeroes) | |||
|- | |||
| 0x280 || 0x10 || CMAC of Encrypted Data Using Master Key 0x20 if on EEPROM to CMAC (and encrypt/decrypt) or Master Key 0x10 if on FLASH | |||
|- | |||
| 0x290 || 0x10 || CMAC of Encrypted FLASH Data Using Perconsole Key encrypted using root key and EID1 Seeds | |||
|} | |||
== EID2 == | |||
* Size: 0x730 bytes. | |||
Related to BD drive. See [[Hypervisor_Reverse_Engineering#Remarrying]]. | |||
{|class="wikitable" | |||
|- | |||
! Description !! Length !! Note | |||
|- | |||
| Header || 0x20 || | |||
|- | |||
| P(rimary) block || 0x80 || contains bd drive info | |||
|- | |||
| S(econdary) block || 0x690 || contains bd drive info | |||
|} | |||
== EID3 == | |||
* Size: 0x100 bytes. | |||
Related to Communicatio. See [[Hypervisor_Reverse_Engineering#Communication]]. | |||
{|class="wikitable" | |||
|- | |||
! Offset !! Description !! Length !! Note | |||
|- | |||
| 0x00 || Header || 0x20 || contains ckp_management_id, size of cprm keys + sha1 digest + padding and nonce | |||
|- | |||
| 0x20 || cprm player keys || 0xB8 || | |||
|- | |||
| 0xD8 || sha1 digest || 0x14 || sha1 digest of previous section | |||
|- | |||
| 0xEC || padding || 0x4 || | |||
|- | |||
| 0xF0 || omac1 digest || 0x10 || omac1 digest of whole eid3 | |||
|} | |||
== EID4 == | |||
* Size: 0x30 bytes. | |||
{|class="wikitable" | |||
|- | |||
! Description !! Length !! Note | |||
|- | |||
| Drive Key 1 || 0x10 || Encrypts data sent from host to bd drive | |||
|- | |||
| Drive Key 2 || 0x10 || Decrypts data sent from bd drive to host | |||
|- | |||
| CMAC/OMAC1 || 0x10 || Hash of the previous bytes in CMAC/OMAC1 mode | |||
|} | |||
== EID5 == | |||
* Size: 0xA00 bytes. | |||
The largest and quite possibly the most important EID of all 6. It's unknown what is inside this specific EID. We'll probably never know what's inside it without analyzing every possible clue about the PS3. And even then, it might be impossible to find its real use. Its size is similar to EID0, but it has an additional 0x1A0 bytes. | |||
{{Reverse engineering}}<noinclude>[[Category:Main]]</noinclude> | {{Reverse engineering}}<noinclude>[[Category:Main]]</noinclude> |