PGD
Jump to navigation
Jump to search
PGD is a data format used on PSP since late firmwares, to store some games' data. PGD means "Protected Game Data".
Location
PGD data can be:
- packed inside .pgd files: seen somewhere?
- stored in DATA.PSAR (PSISOIMG0000 for PS1 games), themselves part of EBOOT.PBP. EBOOT.PBP can be stored in .pkg. There can be many .PGD files in one DATA.PSAR.
Stucture
Offset | Length | Name | Description |
---|---|---|---|
0x0 | 0x4 | Magic | PGD |
0x4 | 0x4 | Version | 01 00 00 00 |
0x8 | 0x4 | Offset or (encryption mode + padding) | 01 00 00 00 |
0xC | 0x4 | Maybe padding | 00 00 00 00 |
0x10 | 0x10 | Key | AES-128 bit hash key used for header decryption. |
0x20 | 0x10 | Hash | Generated hash from the 0x10 key. |
0x30-5F | 0x30 | ?encrypted? | Encrypted header of the PGD which when decrypted reveals a new hash key and four bit fields. The first is NULL, the second represents the decrypted data size, the third is the decrypting chunk size and the fourth is the data hash address. |
0x60 | 0x10 | ?encrypted? | File hash. |
0x70 | 0x10 | ?encrypted? | Hash generated from the sceIoIoctl key. |
0x80 | 0x10 | ?encrypted? | Encrypted hash generated from the sceIoIoctl key. |
0x90 | 0x10 | ?encrypted? | Data hash. |
0xA0 | 0x10 | ?encrypted? | Encrypted data hash. |
List of games using PGD
This is a non-exhaustive list.
- Most PS1onPSP games. ?Every?
- Kingdom Hearts: Birth by Sleep: big PGD files
- God of War: Ghost of Sparta: small PGD files
- ?Sword Art Online?
- ?Naruto Shippuden Ultimate Ninja Heroes 3?
Notes
See Hykem's explanation.