EDAT files: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
Line 24: Line 24:
* Decrypt EDAT using corresponding klic (minis,psxclassics,etc) and rifkey
* Decrypt EDAT using corresponding klic (minis,psxclassics,etc) and rifkey


====='''Header Structure (Encrypted Format)'''=====
====='''Structure (Encrypted Format)'''=====
{| class="wikitable" style="text-align: center;"
{| class="wikitable" style="text-align: center;"
|-
|-
! style="background-color:#123EDA; color:#FFFFFF;" |Offset  || style="background-color:#123EDA; color:#FFFFFF;" |Description || style="background-color:#123EDA; color:#FFFFFF;" |Size || style="background-color:#123EDA; color:#FFFFFF;" |Type || style="background-color:#123EDA; color:#FFFFFF;" |Note
| style="background-color:#EDAEDA; color:#FFFFFF;" |
| style="background-color:#123EDA; color:#FFFFFF;" |Offset   
| style="background-color:#123EDA; color:#FFFFFF;" |Description
| style="background-color:#123EDA; color:#FFFFFF;" |Size
| style="background-color:#123EDA; color:#FFFFFF;" |Type
| style="background-color:#123EDA; color:#FFFFFF;" |Note
|-
| rowspan="19" style="background-color:#123EDA; color:#FFFFFF;" |Header
|-
|-
| 0x00  || magic      || 4      || uint32 ||"NPD" (4E 50 44 00)
| 0x00  || magic      || 4      || uint32 ||"NPD" (4E 50 44 00)
Line 49: Line 56:
| 0x10  || [[PARAM.SFO#CONTENT_ID|CONTENT ID]]    || 48 (0x30) || uint8 || Content Identificator
| 0x10  || [[PARAM.SFO#CONTENT_ID|CONTENT ID]]    || 48 (0x30) || uint8 || Content Identificator
|-
|-
| 0x40  || Digest        || 16 (0x10) || uint8 || QA digest (seems like to be a SHA-1 hash of the non-finalized file) : hash of the original data which is unknown until the whole file is read, can not be used as check. Used as watermark on custom edat.
| 0x40  || Digest        || 16 (0x10) || uint8 || QA digest (seems like to be a SHA-1 hash of the non-finalized file) : hash of the original data which is unknown until the whole file is read, can not be used as check. Can be used as watermark or zeroed on forged file.
|-
|-
| 0x50  || NPD hash 1    || 16 (0x10) || uint8 || CID-FN hash (an AES CMAC hash of concatenation of Content ID and File Name using the third [[Keys#NPDRM_OMAC_Keys|NPDRM OMAC key]] as CMAC key)
| 0x50  || NPD hash 1    || 16 (0x10) || uint8 || CID-FN hash (an AES CMAC hash of concatenation of Content ID and File Name using the third [[Keys#NPDRM_OMAC_Keys|NPDRM OMAC key]] as CMAC key)
Line 87: Line 94:
| 0xB0  || Unknown data?    || 40 (0x28)  ||  ||
| 0xB0  || Unknown data?    || 40 (0x28)  ||  ||
|-
|-
| 0xD8  || ECDSA signature  || 40 (0x28)  ||  || Enabled (only?) for PS2 classic: all custom firmwares are patched to skip the ECDSA check.
| 0xD8  || ECDSA signature  || 40 (0x28)  ||  || Enabled (only?) for PS2 classic: all custom firmwares are patched to skip the ECDSA check. Zeroed on forged file.
|-
| colspan=6 style="background-color:#010EDA; color:#FFFFFF;" |     
|-
| rowspan="21" style="background-color:#123EDA; color:#FFFFFF;" |Body
|-
| 0x100  || Encrypted file      || Variable  ||  ||
|-
| 0x**  || Padding    || Variable  ||  ||
|-
|-
|}
|}
Line 112: Line 127:
| End of the file || 2 || 00 00
| End of the file || 2 || 00 00
|}
|}
 
----
Note: Applied for normal ps3 edats and minis.edat
Note: Applied for normal ps3 edats and minis.edat

Revision as of 03:26, 6 September 2013

Info on the talk page

Info on the talk page

The info on this page is an extract of conversations and forum posts, please digest the info and move it this page

Decryption of EDATS

Three ways to do it:

  • act.dat,rif,idps combo
  • rap
  • free content (npdrm1 klic)

Free Content

Simply decrypted with appldr keys and free klic

Using RAP

Overview of steps:

  • Obtain rifkey from rap (flatz's rap2rifkey)
  • Decrypt EDAT using corresponding klic (minis,psxclassics,etc) and rifkey
Structure (Encrypted Format)
Offset Description Size Type Note
Header
0x00 magic 4 uint32 "NPD" (4E 50 44 00)
0x04 version 4 uint32
  • 01
  • 02
  • 03
  • 04
0x08 License Types 4 uint32 for PS2 games, require to be with license check.
  • 00 Debug / SDAT
  • 01 Network License: requires network authentification every time.
  • 02 Local License: requires first time activation online.
  • 03 Free License: without license check.
0x0B Application Type 4 uint32
0x10 CONTENT ID 48 (0x30) uint8 Content Identificator
0x40 Digest 16 (0x10) uint8 QA digest (seems like to be a SHA-1 hash of the non-finalized file) : hash of the original data which is unknown until the whole file is read, can not be used as check. Can be used as watermark or zeroed on forged file.
0x50 NPD hash 1 16 (0x10) uint8 CID-FN hash (an AES CMAC hash of concatenation of Content ID and File Name using the third NPDRM OMAC key as CMAC key)
0x60 NPD hash 2 16 (0x10) uint8 header hash (an AES CMAC hash of the 0x60 bytes from the beginning of file using xored bytes of the first NPDRM OMAC key and the second NPDRM OMAC key as CMAC key)
0x70 Activation dates 8 unkn (Since and up to) filled with 00 if not used
0x78 Activation dates 8 unkn (Since and up to) filled with 00 if not used
0x80 NPD type 1 uint8 (Separated from Metadata type for wiki format)
  • 00 Finalized EDAT
  • 01 Finalized SDAT
  • 80 Non Finalized EDAT
  • 81 Non Finalized SDAT
0x83 Metadata type 3 uint8 (Flags description from talk page)
  • 00
  • 01 Compressed?
  • 02 Plain text?
  • 03 Compressed plain text?
  • 05 Compressed?
  • 06 Plain text?
  • 07 Compressed plain text?
  • 0C ?
  • 0D Compressed data?
  • 3C data/misc?
0x84 Segment size 4 uint8 default block is 16384 bytes = 0x4000. Seen also 0x8000.
0x88 Data size 8 uint8 decoded data size
0x90 Unknown hash? 16 (0x10)
0xA0 Unknown hash? 16 (0x10)
0xB0 Unknown data? 40 (0x28)
0xD8 ECDSA signature 40 (0x28) Enabled (only?) for PS2 classic: all custom firmwares are patched to skip the ECDSA check. Zeroed on forged file.
Body
0x100 Encrypted file Variable
0x** Padding Variable
Footer Structure (Encrypted Format)
Description Size Note
Name 5 "EDATA" or "SDATA"
Space 1 0x20
Revision Version? 8
  • Version 1: "packager"
  • Version 2: "2.4.0.L "
  • Version 2: "2.4.0.W "
  • Version 2: "2.7.0.L "
  • Version 3: "3.3.0.L "
  • Version 3: "3.3.0.W "
  • Version 4: "4.4.0.L "
  • Version 4: "4.4.0.W "
End of the file 2 00 00

Note: Applied for normal ps3 edats and minis.edat