Talk:PARAM.PFD: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
(added a rare "game save" from "mirros edge"... very useful for the examples, is perfect)
(→‎This is a VERY USEFUL game save: mapped the indexed entries from "mirror's edge" game save... from the first 2 tables)
Line 32: Line 32:
The structure of this PARAM.PFD can be considered "rare", and is perfect to be used for explains and to understand how it works, the structure contains all the "problems" not present in "standard" files that can be considered unknown... there are other game saves that can be used (MotoGP10, Heavy rain)... but the list of protected files in heavy rain is HUGE (use this file if you are coding an app as a "stress test", but not for examples)
The structure of this PARAM.PFD can be considered "rare", and is perfect to be used for explains and to understand how it works, the structure contains all the "problems" not present in "standard" files that can be considered unknown... there are other game saves that can be used (MotoGP10, Heavy rain)... but the list of protected files in heavy rain is HUGE (use this file if you are coding an app as a "stress test", but not for examples)


From now on... lest use this PARAM.PFD for the examples in the main page
From now on... lest use the PARAM.PFD from "mirror's edge "game save" for the examples in the main page
 
===Header===
 
 
{| class="wikitable"
|-
! Offset !! Size !! Value !! Description
|-
| 0x00 || 0x08 bytes || PFDB || Magic value in ASCII
|-
| 0x08 || 0x08 bytes || 00000000 00000003 || constant
|-
| 0x10 || 0x10 bytes || 69152C97 812B25C5 2AD4FA18 E4B816A8 || key to en/decrypt
|-
| 0x20 || 0x14 bytes || 7C1F5C28 A7EE4D39 22ADC828 E6CD7888 980F33B6 || encrypted, decrypted by vtrm
|-
| 0x34 || 0x14 bytes || 2394EEE9 9706774E 71912413 A7CFDBE5 E38E8D0C || encrypted, decrypted by vtrm
|-
| 0x48 || 0x14 bytes || 5BCF8807 FCB7B59C 4C5A3D98 3904B6CE EDE27152 || encrypted, decrypted by vtrm
|-
| 0x5C || 0x04 bytes || AA9C2F85 || padding, encrypted by vtrm
|-
| 0x60 || 0x08 bytes || 0000000000000039 || Number of reserved entries in the '''X table''' & '''Y table''' (57 in decimal)
|-
| 0x68 || 0x08 bytes || 0000000000000072 || Number of reserved entries in the '''Protected files table''' (114 in decimal)
|-
| 0x70 || 0x08 bytes || 0000000000000021 || Number of used entries in the '''Protected files table''' (33 in decimal)
|-
|}
 
 
===X table===
 
In this table there are 25 entries "indexed"
 
{| class="wikitable"
|-
! Position in table !! Virtual Index ID
|-
| 1 || {{No}}
|-
| 2 || 01
|-
| 3 || {{No}}
|-
| 4 || 0C
|-
| 5 || {{No}}
|-
| 6 || {{No}}
|-
| 7 || 1F
|-
| 8 || 10
|-
| 9 || 1B
|-
| 10 || {{No}}
|-
| 11 || 14
|-
| 12 || {{No}}
|-
| 13 || {{No}}
|-
| 14 || 0B
|-
| 15 || 0D
|-
| 16 || {{No}}
|-
| 17 || {{No}}
|-
| 18 || 15
|-
| 19 || 19
|-
| 20 || {{No}}
|-
| 21 || 13
|-
| 22 || 17
|-
| 23 || {{No}}
|-
| 24 || {{No}}
|-
| 25 || 0E
|-
| 26 || 11
|-
| 27 || {{No}}
|-
| 28 || {{No}}
|-
| 29 || 18
|-
| 30 || {{No}}
|-
| 31 || {{No}}
|-
| 32 || 1A
|-
| 33 || 12
|-
| 34 || {{No}}
|-
| 35 || {{No}}
|-
| 36 || 04
|-
| 37 || {{No}}
|-
| 38 || {{No}}
|-
| 39 || 1C
|-
| 40 || 07
|-
| 41 || {{No}}
|-
| 42 || {{No}}
|-
| 43 || {{No}}
|-
| 44 || {{No}}
|-
| 45 || {{No}}
|-
| 46 || {{No}}
|-
| 47 || 03
|-
| 48 || {{No}}
|-
| 49 || {{No}}
|-
| 50 || 1D
|-
| 51 || {{No}}
|-
| 52 || {{No}}
|-
| 53 || 20
|-
| 54 || 0F
|-
| 55 || {{No}}
|-
| 56 || {{No}}
|-
| 57 || 1E
|-
|}
 
 
 
===Protected files table===
 
And the other 8 "indexed" are in this table
 
{| class="wikitable"
|-
! Position in table !! Virtual Index ID !! File Name
|-
| 1 || {{No}} || PARAM.SFO
|-
| 2 || {{No}} || SAVTOC0.BIN
|-
| 3 || {{No}} || SAV33.BIN
|-
| 4 || {{No}} || SAV14.BIN
|-
| 5 || {{No}} || SAV3.BIN
|-
| 6 || {{No}} || SAV22.BIN
|-
| 7 || {{No}} || SAV21.BIN
|-
| 8 || {{No}} || SAV13.BIN
|-
| 9 || {{No}} || SAV5.BIN
|-
| 10 || {{No}} || SAV6.BIN
|-
| 11 || {{No}} || SAV7.BIN
|-
| 12 || {{No}} || SAV8.BIN
|-
| 13 || {{No}} || SAV16.BIN
|-
| 14 || 06 || SAV0.BIN
|-
| 15 || {{No}} || SAV19.BIN
|-
| 16 || {{No}} || SAV15.BIN
|-
| 17 || {{No}} || SAV20.BIN
|-
| 18 || {{No}} || SAV11.BIN
|-
| 19 || {{No}} || SAV12.BIN
|-
| 20 || {{No}} || SAV9.BIN
|-
| 21 || {{No}} || SAV17.BIN
|-
| 22 || 02 || SAV18.BIN
|-
| 23 || {{No}} || SAV2.BIN
|-
| 24 || 05 || SAV1.BIN
|-
| 25 || 16 || SAV23.BIN
|-
| 26 || {{No}} || SAV10.BIN
|-
| 27 || {{No}} || SAV35.BIN
|-
| 28 || 00 || SAVTOC1.BIN
|-
| 29 || {{No}} || SAV36.BIN
|-
| 30 || 08 || SAV26.BIN
|-
| 31 || 09 || SAV27.BIN
|-
| 32 || 0A || SAV28.BIN
|-
| 33 || {{No}} || SAV38.BIN
|-
| Up to 114 || {{No}}  || Not used
|-
|}
 
*Note about the "virtual index"
The addition of the "indexed" entries in this 2 tables makes the total of '''33 protected files'''... are "indexed" by spreading his ID numbers between "X table" and "protected files table"

Revision as of 06:04, 16 July 2012

Sperimental PFD Reader

pfd.c

to compile it just place it inside the ps3tools folder and add pfd into the makefile in the last TOOLS += line

Deroad 20:09, 15 July 2012 (MSK)


The guys at http://us.xploder.net are the first ones that reversed the .PFD structure/encryption/signing

His "Xploder PS3 Cheats System" (is a disc intended to be used in PC) is able to decrypt and reencrypt .PFD files in a PC

In difference with the previous cheat hacks as (Code Freak, PS3UserCheat, E3 GoldenFinger, P3Go Cheat, PS3 Cheat Enabler) this old methods depends of a dongle that patches the firmware to bypass the .PFD checks


By reversing what this disc does we can understand the decryption method


Just a collection of PARAM (.bin .pfd .sfo .tpf) files: http://www.mirrorcreator.com/files/0OAXGOHN/PARAM.rar_links




This is a VERY USEFUL game save

http://db.gamefaqs.com/console/ps3/save/mirror_s_edge.zip

The structure of this PARAM.PFD can be considered "rare", and is perfect to be used for explains and to understand how it works, the structure contains all the "problems" not present in "standard" files that can be considered unknown... there are other game saves that can be used (MotoGP10, Heavy rain)... but the list of protected files in heavy rain is HUGE (use this file if you are coding an app as a "stress test", but not for examples)

From now on... lest use the PARAM.PFD from "mirror's edge "game save" for the examples in the main page

Header

Offset Size Value Description
0x00 0x08 bytes PFDB Magic value in ASCII
0x08 0x08 bytes 00000000 00000003 constant
0x10 0x10 bytes 69152C97 812B25C5 2AD4FA18 E4B816A8 key to en/decrypt
0x20 0x14 bytes 7C1F5C28 A7EE4D39 22ADC828 E6CD7888 980F33B6 encrypted, decrypted by vtrm
0x34 0x14 bytes 2394EEE9 9706774E 71912413 A7CFDBE5 E38E8D0C encrypted, decrypted by vtrm
0x48 0x14 bytes 5BCF8807 FCB7B59C 4C5A3D98 3904B6CE EDE27152 encrypted, decrypted by vtrm
0x5C 0x04 bytes AA9C2F85 padding, encrypted by vtrm
0x60 0x08 bytes 0000000000000039 Number of reserved entries in the X table & Y table (57 in decimal)
0x68 0x08 bytes 0000000000000072 Number of reserved entries in the Protected files table (114 in decimal)
0x70 0x08 bytes 0000000000000021 Number of used entries in the Protected files table (33 in decimal)


X table

In this table there are 25 entries "indexed"

Position in table Virtual Index ID
1 No
2 01
3 No
4 0C
5 No
6 No
7 1F
8 10
9 1B
10 No
11 14
12 No
13 No
14 0B
15 0D
16 No
17 No
18 15
19 19
20 No
21 13
22 17
23 No
24 No
25 0E
26 11
27 No
28 No
29 18
30 No
31 No
32 1A
33 12
34 No
35 No
36 04
37 No
38 No
39 1C
40 07
41 No
42 No
43 No
44 No
45 No
46 No
47 03
48 No
49 No
50 1D
51 No
52 No
53 20
54 0F
55 No
56 No
57 1E


Protected files table

And the other 8 "indexed" are in this table

Position in table Virtual Index ID File Name
1 No PARAM.SFO
2 No SAVTOC0.BIN
3 No SAV33.BIN
4 No SAV14.BIN
5 No SAV3.BIN
6 No SAV22.BIN
7 No SAV21.BIN
8 No SAV13.BIN
9 No SAV5.BIN
10 No SAV6.BIN
11 No SAV7.BIN
12 No SAV8.BIN
13 No SAV16.BIN
14 06 SAV0.BIN
15 No SAV19.BIN
16 No SAV15.BIN
17 No SAV20.BIN
18 No SAV11.BIN
19 No SAV12.BIN
20 No SAV9.BIN
21 No SAV17.BIN
22 02 SAV18.BIN
23 No SAV2.BIN
24 05 SAV1.BIN
25 16 SAV23.BIN
26 No SAV10.BIN
27 No SAV35.BIN
28 00 SAVTOC1.BIN
29 No SAV36.BIN
30 08 SAV26.BIN
31 09 SAV27.BIN
32 0A SAV28.BIN
33 No SAV38.BIN
Up to 114 No Not used
  • Note about the "virtual index"

The addition of the "indexed" entries in this 2 tables makes the total of 33 protected files... are "indexed" by spreading his ID numbers between "X table" and "protected files table"