Talk:PARAM.PFD: Difference between revisions
(pfd tool source) |
m (request filled) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
[https:// | [https://www.sendspace.com/file/jmo0do pfd_sfo_tools_code by flat_z] | ||
== Sperimental PFD Reader == | == Sperimental PFD Reader == |
Latest revision as of 19:12, 5 November 2015
Sperimental PFD Reader[edit source]
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)
Link: pfd.c
Other Sources[edit source]
- Xploder PS3
The guys at http://us.xploder.net are the first ones that reversed the .PFD structure/encryption/signing. By reversing what this disc does we can understand the decryption method
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
Example Files[edit source]
Just a collection of PARAM (.bin .pfd .sfo .tpf) files: http://www.mirrorcreator.com/files/0OAXGOHN/PARAM.rar_links
PARAM.PFD Structure generation process[edit source]
- This is more than speculation, is a representation of how mirror's edge PARAM.PFD was generated, and how the index numbers are used to "jump" to the next one. I did this table weeks ago, and there was something wrong i realized at the end but thanks to it i understood how the PARAM.PFD is generated using timestamps, probably the table is wrong (because the mirror's edge file im using as example has been updated several times by his owner) but we need to use something like this to order them also it can help others
From files timestamps----->to----->PARAM.PFD
Last time modifyed timestamp
Timestamp | File Name (by timestamp) | Next jump offset from Xtable | Next jump offset from Filetable | Generated table |
---|---|---|---|---|
2009/06/14 7:20:12 | PARAM.SFO | 0x72 + 0x01 | No | PARAM.SFO |
SAVTOC0.BIN | 0x72 + 0x0C | No | SAVTOC0.BIN | |
2009/06/14 7:20:14 | SAV0.BIN | ?? | 0x06 | SAV33.BIN |
SAV3.BIN | 0x72 + 0x72 + 0x1F | No | SAV14.BIN | |
SAV5.BIN | 0x10 | No | SAV3.BIN | |
SAV6.BIN | 0x1B | No | SAV22.BIN | |
SAV7.BIN | 0x72 + 0x14 | No | SAV21.BIN | |
SAV8.BIN | 0x72 + 0x72 + 0x0B | No | SAV13.BIN | |
SAV13.BIN | 0x0D | No | SAV5.BIN | |
SAV14.BIN | 0x72 + 0x72 + 0x15 | No | SAV6.BIN | |
SAV16.BIN | 0x19 | No | SAV7.BIN | |
SAV21.BIN | 0x72 + 0x13 | No | SAV8.BIN | |
SAV22.BIN | 0x17 | No | SAV16.BIN | |
SAV33.BIN | 0x72 + 0x72 + 0x0E | No | SAV0.BIN | |
2009/06/14 7:20:16 | SAV1.BIN | ??? | 0x05 | SAV19.BIN |
SAV2.BIN | 0x11 | No | SAV15.BIN | |
SAV9.BIN | 0x72 + 0x72 + 0x18 | No | SAV20.BIN | |
SAV10.BIN | 0x72 + 0x72 + 0x1A | No | SAV11.BIN | |
SAV11.BIN | 0x12 | No | SAV12.BIN | |
SAV12.BIN | 0x72 + 0x72 + 0x04 | No | SAV9.BIN | |
SAV15.BIN | 0x72 + 0x72 + 0x1C | No | SAV17.BIN | |
SAV17.BIN | 0x07 | No | SAV18.BIN | |
SAV18.BIN | ??? | 0x02 | SAV2.BIN | |
SAV19.BIN | 0x72 + 0x72 + 0x72 + 0x72 + 0x72 + 0x72 + 0x03 | No | SAV1.BIN | |
SAV20.BIN | 0x72 + 0x72 + 0x1D | No | SAV23.BIN | |
SAV23.BIN | ??? | 0x16 | SAV10.BIN | |
SAV26.BIN | ??? | 0x08 | SAV35.BIN | |
SAV27.BIN | ??? | 0x09 | SAVTOC1.BIN | |
SAV28.BIN | ??? | 0x0A | SAV36.BIN | |
SAV35.BIN | 0x72 + 0x72 + 0x20 | No | SAV26.BIN | |
SAV36.BIN | 0x0F | No | SAV27.BIN | |
SAV38.BIN | 0x72 + 0x72 + 0x1E | No | SAV28.BIN | |
SAVTOC1.BIN | ??? | 0x00 | SAV38.BIN |
- The problem is the timestamps of the "protected files" changed when the owner of this game save updated it (we must suppose he did lot of times). Its needed to understand if this update process rebuilds all the tables reasigning the "index nº's" or if the positions of the "protected files" are moved inside "protected files table". Also is needed to verify how new files are added to the "protected files table" when the game generate new ones. To verify all this is needed to begin with a "fresh created" game save, understand how has been built, and compare how it changes after several updates, this is where i stopped ;)
- This means the examples from this mirror's edge game save (downloaded from gamefaq) are not enought to explain how it works, are needed at least 3 different game saves generated by the same user in the same ps3, or in other words... all the examples must be replaced :/
- 1.- A copy of the folder the first time the game save is generated (copyed from hdd, NOT exported to usb)
- 2.- A copy of the folder after a "normal" update (no new files are added to the "protected files table")
- 2.- A copy of the folder after a "special" update (new files are added to the "protected files table")
- This completes all the behaviours/functions possibles for PARAM.PFD related with his creation/updates