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.
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.
Would you be able to create the sdat for F1 2012 EUR? Because the patch that was released by DUPLEX is using the sdat file for the USA version so when you start the patched EUR version, it installs the USA version on the hard disk.