EDAT files: Difference between revisions
Jump to navigation
Jump to search
m (→Header Structure (Encrypted Format): to talk page) |
|||
Line 24: | Line 24: | ||
* Decrypt EDAT using corresponding klic (minis,psxclassics,etc) and rifkey | * Decrypt EDAT using corresponding klic (minis,psxclassics,etc) and rifkey | ||
=====''' | ====='''Structure (Encrypted Format)'''===== | ||
{| class="wikitable" style="text-align: center;" | {| class="wikitable" style="text-align: center;" | ||
|- | |- | ||
| 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. | | 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 02:26, 6 September 2013
This article is marked for rewrite/restructuring in proper wiki format. You can help PS3 Developer wiki by editing it. |
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 |
| |
0x08 | License Types | 4 | uint32 | for PS2 games, require to be with 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)
| |
0x83 | Metadata type | 3 | uint8 | (Flags description from talk page)
| |
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 |
Description | Size | Note |
---|---|---|
Name | 5 | "EDATA" or "SDATA" |
Space | 1 | 0x20 |
Revision Version? | 8 |
|
End of the file | 2 | 00 00 |
Note: Applied for normal ps3 edats and minis.edat