01-04-2012, 03:37 PM
(01-04-2012, 11:46 AM)popsdeco Wrote: Hi there:
As Savedata En/Decrypter on PSP isn't so handy, I tried to create PC version.
But it seems PARAM.SFO's hash isn't proper (as of r2038). New saves can be read on Jpcsp but not on PSP.
I hope your investigation will be completed...
BTW the source code to "Savedata En/Decrypter on PSP" isn't available, so I don't know how PARAM.SFO hashing is done...
Savedata Decrypter on PC: http://pastebin.com/RFDXKCAf
I think ScrambleSD()'s buf handling is buggy (due to improper ByteBuffer porting). Encryption result is different from Jpcsp(but re-decryption still works)...
PS. It seems ScrambleSD against libkirk ( C ) requires if(kirk==4||kirk==5)memmove(buf,buf+0x14,size);
Hi!
Thanks a lot for this! Porting this routine to C will sure make testing it much easier.
I had a small sample application for this purpose, but I stopped working on it when the development of the algorithm began growing up intensively, so I really appreciate this contribution.
Indeed, the only current issue resides in the hashes located in the PARAM.SFO. I'm currently analyzing several games and matching their data to track down which function is giving the wrong result.
With your application this process should be much faster now.