26w ago - Today PlayStation 3 homebrew developer
Oakhead69 has shared a PC application to assist in the creation of PS3 SDAT files followed by an SDAT Creator CLI version with more details outlined below.
Download:
PS3 SDAT Creator Homebrew App /
PS3 SDAT Creator Homebrew App (Mirror) /
PS3 SDAT Creator Homebrew App (Mirror #2) /
EP0001-ASMO00001_00-SDATDECRYPTOR430.pkg /
479 Hitman SDATs (Decrypted and Unsorted) by
JonahUK /
SDAT Creator CLI (Command Line Interface) /
SDAT Decrypter Creator CLI /
SDAT Decrypter Creator CLI v1.1
Instructions:
- You first need to decrypt the original V4 SDAT file.
- You can use extttdpk coded by asmodean (asmodean.reverse.net) to decrypt it.
- This needs to be done on a PS3 with >3.56. e.g 4.21.
- There are compiled versions of this on the web for example link
- You need to modify the file decrsdat.lst with a list of SDATs to be decrypted e.g.
# input_file output_file
/dev_hdd0/model_shader_pack.SDAT /dev_hdd0/model_shader_pack.dat
There is code available that can decode V3 SDATs on the PC, but we can not decode the V4 SDATs as we do not have the EDATKEY1 that has a SHA-1 of 6ECDFEC0A11890C1F2A689062D3EFE562317B2FB. Once we have this key V4 SDATscan be decrypted on a PC.
This program is also useful for modifying the contents of SDAT file for language conversions etc. I know that this has been requested by people in the past. Now we can do it.
To use the SDAT Creator:
1) Provide the decrypted data as input to the SDAT creator.
2) Specify the output SDAT file.
3) Optionally provide the original V4 SDAT file and it will then use the hashes etc from this file otherwise it just uses some default values..
4) Press the 'Create SDAT' button and that's it.
The code I have provided is based on KDSBest's C# port of the Java code written by JuanNadie. Any keys used in the code are already publicly available on the internet.
Most of the information I used to create this program was gained from
this post NPDRM Self algorithm. Big thanks to JuanNadie, KDSBest and others that posted on this thread.
I have used it to create successful patches for:
- Test Drive: Ferrari Racing Legends (BLUS30842)
- Ice Age 4: Continental Drift (BLES01686).
- For Sports Champions 2.BCES01598 there are other issues with the EBOOT.BIN that I can not fix.
- For Air Conflicts Pacific Carriers.BLES01604 the V3 SDAT files to not work even on 4.21. I think this is because they contain elf files and V3 SDATs do not support executable content.
- Men.In.Black.Alien.Crisis.BLES01549. This should work but it has a 4gig+ sdat file, but I have tested my creator can handle files of this size.
- Disney.Epic.Mickey.2.The.Power.of.Two I have noticed that this has sdat files but I have not had any time to look at them.
Here is the smallest one of his SDATs and the content that I have just decrypted it on my PC.
This is a quick break down of the SDAT header block at the start of the SDAT. As you can see the eight byte i.e offset 0x00000007 in this example is 4. To be honest because the SDAT is encrypted with a different key very little will match. The lines 000000080 and 00000088 should match the rest will be different.
00000000 4E 50 44 00 00 00 00 04 : 4 Magic : 4 Version
00000008 00 00 00 00 00 00 00 00 : 4 license : 4 type
00000010 00 00 00 00 00 00 00 00 : Content ID
00000018 00 00 00 00 00 00 00 00 : Content ID
00000020 00 00 00 00 00 00 00 00 : Content ID
00000028 00 00 00 00 00 00 00 00 : Content ID
00000030 00 00 00 00 00 00 00 00 : Content ID
00000038 00 00 00 00 00 00 00 00 : Content ID
00000040 00 00 00 00 00 00 00 00 : Digest
00000048 00 00 00 00 00 00 00 00 : Digest
00000050 D3 13 D4 EA 5E 64 16 C7 : Title + File Name Hash : BLES-00000 + Filename
00000058 AC EF B0 CD F5 0F 92 80 : Title + File Name Hash : BLES-00000 + Filename
00000060 XX XX XX XX XX XX XX XX : Header Hash
00000068 XX XX XX XX XX XX XX XX : Header Hash
00000070 00 00 00 00 00 00 00 00 : Unknown 3
00000078 00 00 00 00 00 00 00 00 : Unknown 3
00000080 01 00 00 3C 00 00 40 00 : 1 Finalise : 3 Data Type : 4 Block Size
00000088 SS SS SS SS SS SS SS SS : Decoded Data Size
00000090
If you really want to learn more about this visit the PS3 wiki, this page (ps3devwiki.com/wiki/Talk:EDAT_files) discusses EDAT format.
SDAT Creator CLI:
Some of you have been asking for a CLI (Command Line Interface) version of the SDAT Creator. So here it is (linked above). I have also made the file name validation a little more rugged.
Options are:
1) No parameters launches the GUI as normal. If run from a command window it will minimise the window and restore it after it closes.
2) 2 or 3 parameters and it assumes a single command i.e. "SDAT Creator CLI" InputFile OutputFile (Optional SDAT reference file)
e.g. "SDAT Creator CLI" Input.dat Output.sdat original.sdat or "SDAT Creator CLI" Input.dat Output.sdat
3) 1 parameter and it assumes that it is a file containing a list of command lines for multi file handling.
e.g. "SDAT Creator CLI" filelist.txt
Contents of filelist.txt
input.dat "output file.sdat" ref.sdat
"input file.dat" "output file.sdat" "ref file.sdat"
"input file.dat" "output file.sdat"
Hope this is clear.
SDAT Decrypter Creator CLI
Hi Guys, Since a number of people have asked for this, I have added support for decryption of V3 and lower SDATs. Still no V4 decryption, need the latest EDAT keys.
GUI interface is I hope self explanatory. Options for CLI are:
Now has additional first parameter of E (Encrypt) or D (Decrypt)
1) No parameters launches the GUI as normal. If run from a command window it will minimise the window and restore it after it closes.
2) 3 or 4 parameters and it assumes a single command i.e. "SDAT Creator CLI" E/D InputFile OutputFile (Optional SDAT reference file)
e.g. "SDAT Creator Decryter CLI" E Input.dat Output.sdat original.sdat or"SDAT Creator Decryter CLI" E Input.dat Output.sdat or "SDAT Creator Decryter CLI" D InputV3.sdat Output.dat
3) 1 parameter and it assumes that it is a file containing a list of command lines for multi file handling. e.g. "SDAT Creator Decryter CLI" filelist.txt
Contents of filelist.txt is now
E input.dat "output file.sdat" ref.sdat
E "input file.dat" "output file.sdat" "ref file.sdat"
E "input file.dat" "output file.sdat"
D "input file.sdat" output.dat
I have tested it, I think in all case. Any problem you find just let me know.
SDAT Decrypter Creator CLI v1.1
Another release V1.1
This time I have added support for specifying the block size, some games use 8K blocks rather than 16K blocks. You can specify the block size using the API or it will read it from the original SDAT if provided.
The CLI change is a little dirty at the moment will clean it up when I get more time. For now just add the block size next to the 'E' e.g. E8 or E16. Same applies for the filelist see below.
E input.dat "output file.sdat" ref.sdat
E8 input.dat "output file.sdat" ref8.sdat
E16 input.dat "output file.sdat" ref16.sdat
E "input file.dat" "output file.sdat" "ref file.sdat"
E "input file.dat" "output file.sdat"
D "input file.sdat" output.dat
Also added a bug fix to the V3 decryption, there was an issue with the handling of 'BigNumbers'. Thanks to catalinnc for sending me the SDAT so that I could find and fix this issue.
Finally, from
Mistawes comes a DECRSDAT for 4.30
EP0001-ASMO00001_00-SDATDECRYPTOR430.pkg who states the following:
Used decrsdat to decrypt the original SDAT and use the 3.41 SDK to make an "old format" SDAT..
I'll give that F1 2012 a go tomorrow.
thx so much
Ok, I got it working. I had to recode the eboot for 4.21 and now its working.