|
|
#41 | |
![]() ![]() Join Date: Jul 2011
Location: Belgium
Posts: 469
Likes: 101
Liked 188 Times in 113 Posts
Mentioned: 18 Post(s)
Tagged: 0 Thread(s)
|
|
|
|
|
|
|
Likes: (1) |
|
|
#42 |
|
Homebrew Developer
![]() Join Date: Oct 2011
Posts: 20
Likes: 11
Liked 369 Times in 19 Posts
Mentioned: 68 Post(s)
Tagged: 0 Thread(s)
|
mallory: don't worry about credits. The devs know that I published the algorithm and those are the ones who rellay count. My only regret is that the info made it to the front page when it wasn't noob's proof. About IRC, I don't like chats however if I have time I will enter to say hello.
jester: Yep, the edat is completely different. The edat structure is totally different: -An NPD element -Then info for the lv2/vsh: the key index, blocksize (the SPU has a max size for reading), and decrypted/decompressed file length. -Then I expect some metadata for keys. -Then structures defining length and offset for ¿decryption? and inflating. -The data itself. pirate: Thank you for the upgrade. |
|
|
|
|
|
#43 |
|
Member
![]() Join Date: Nov 2007
Posts: 128
Likes: 67
Liked 38 Times in 24 Posts
Mentioned: 3 Post(s)
Tagged: 0 Thread(s)
|
Both of you deserve it and more.
I have never seen a more through and precise explanation of a such an obscure process in any console hack. More over openly sharing this with everyone is: Awesome. Mallory's implementation is near genius in its simplistic approach. I have learned a lot from this. Thank you very much! |
|
|
|
|
|
#45 |
|
Member
![]() Join Date: Oct 2011
Posts: 83
Likes: 31
Liked 50 Times in 9 Posts
Mentioned: 15 Post(s)
Tagged: 0 Thread(s)
|
So... we had some tests here and:
PJ Shooter - work Flower - don't work PJ Eden - work Locoroco - don't work Why is this happen? I'm think it's because PJ Shooter, PJ Eden don't have EDAT files, Flower have one file in directory "Guard", LocoRoco have all files in EDAT archives. And also we have error with decrypting elfs later then 3.30, we think its becouse of keys. Last edited by Octopus; 10-15-2011 at 04:03 AM. |
|
|
|
|
|
#46 |
|
Apprentice
Join Date: Oct 2011
Posts: 3
Likes: 1
Liked 7 Times in 3 Posts
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
|
I think it is not necessary to decrypt edat files, but eboot.bin files need to be patched against edat file checks.
Read (my) post (#5) and JuanNadie's post (#8). There may even edat reading functions in eboot.bin's waiting to be patched. By decrypting eboot.bin's only VerifyLicense checks defeated. Even you decrypt edat files, eboot.bin wants to read them via system calls. So they need to be in an encrypted form, unless eboot.bin patched. Last edited by yolbulduran; 10-15-2011 at 04:45 AM. |
|
|
|
|
Likes: (1) |
|
|
#47 |
|
Member
![]() Join Date: Oct 2011
Posts: 83
Likes: 31
Liked 50 Times in 9 Posts
Mentioned: 15 Post(s)
Tagged: 0 Thread(s)
|
Look, EDAT encrypted with the same keys like eboot.bin right? so if my ps3 #2 dont have rif and act.dat it can't be decrypted, or I dont get it? LocoRoco has all files in EDAT, so I cant delete all EDAT reads, yeah?
|
|
|
|
|
|
#48 | |
|
Member
![]() Join Date: Oct 2011
Posts: 83
Likes: 31
Liked 50 Times in 9 Posts
Mentioned: 15 Post(s)
Tagged: 0 Thread(s)
|
JuanNadie's post (#8):
|
|
|
|
|
|
|
#49 | |
|
Homebrew Developer
Join Date: Oct 2011
Posts: 9
Likes: 0
Liked 33 Times in 6 Posts
Mentioned: 6 Post(s)
Tagged: 0 Thread(s)
|
|
|
|
|
|
|
|
#50 |
|
Apprentice
![]() Join Date: Dec 2010
Posts: 9
Likes: 9
Liked 11 Times in 2 Posts
Mentioned: 4 Post(s)
Tagged: 0 Thread(s)
|
Congratulations and thanks for sharing JuanNadie.
Regarding EDAT files, IMHO their encryption is FW version independent, at least for the free content. I have changed geohot's make_self_npdrm to encrypt elfs using a given keypair rather than the static one. Using that tool and unself2 I have managed create and install LBP2 updates 1 to 4 on a 3.41 PS3. Those updates contains EDAT files and were decrypted by the game flawlessly. I don't know if it is ok to post links to those pkgs. The npdrm diff (just) the important stuff is: Code:
+#ifdef NPDRM2 + memcpy(&md_header, KEY(keypair), sizeof(md_header)); +#endif ----------------- +#ifdef NPDRM2 + AES_set_encrypt_key(KEY(erk), 256, &aes_key); + memcpy(iv, KEY(iv), 16); + AES_cbc_encrypt(&output_self_data[metadata_offset], &output_self_data[metadata_offset], 0x40, &aes_key, iv, AES_ENCRYPT); + u8 d_klic[0x10]; + AES_set_decrypt_key(KLicenseeDecryptKey, 128, &aes_key); + AES_decrypt(npdrm_omac_key1, d_klic, &aes_key); + AES_set_encrypt_key(d_klic, 128, &aes_key); + memset(iv, 0, sizeof iv); + AES_cbc_encrypt(&output_self_data[metadata_offset], &output_self_data[metadata_offset], 0x40, &aes_key, iv, AES_ENCRYPT); +#else memcpy(&output_self_data[metadata_offset], KEY(keypair_e), sizeof(md_header)); |
|
|
|
![]() |
| Bookmarks |
| Thread Tools | |
|
|