Editing Trophy files
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
Trophies was introduced in 2.40 firmware | [[Category:Software]] | ||
Trophies was introduced in 2.40 firmware, games compiled with an SDK smaller than 2.40 doesnt have trophies | |||
=== Firmware related files === | === Firmware related files === | ||
Line 11: | Line 13: | ||
np_trophy_plugin.sprx (/dev_flash/vsh/module) | np_trophy_plugin.sprx (/dev_flash/vsh/module) | ||
np_trophy_util.sprx (/dev_flash/vsh/module) | np_trophy_util.sprx (/dev_flash/vsh/module) | ||
=== Harddrive related files === | === Harddrive related files === | ||
Line 25: | Line 24: | ||
**PARAM.PFD | **PARAM.PFD | ||
**PARAM.SFO | **PARAM.SFO | ||
** | **TROPxxx.PNG (e.g. TROP000.PNG ... TROP999.PNG for each individual trophy) | ||
**TROPCONF.SFM | **TROPCONF.SFM | ||
**TROPTRNS.DAT | **TROPTRNS.DAT | ||
Line 51: | Line 50: | ||
===== PARAM.SFO ===== | ===== PARAM.SFO ===== | ||
===== TROPCONF.SFM ===== | ===== TROPCONF.SFM ===== | ||
Line 60: | Line 57: | ||
The only way to update this file is by installing a new "trophy installer" (TROPHY.TRP) using the same ID's, but with a higher version (this happens with some "game expansions" that updates the trophy installation with new trophies related with the new content) | The only way to update this file is by installing a new "trophy installer" (TROPHY.TRP) using the same ID's, but with a higher version (this happens with some "game expansions" that updates the trophy installation with new trophies related with the new content) | ||
* Is language specific (texts are not common for all the languages) | * Is language specific (texts are not common for all the languages) | ||
Its the trophy installer (TROPHY.TRP) who decides wich '''TROPCONF.SFM''' will be installed depending of the language settings in the XMB | Its the trophy installer (TROPHY.TRP) who decides wich '''TROPCONF.SFM''' will be installed depending of the language settings in the XMB | ||
Line 144: | Line 141: | ||
|} | |} | ||
=== | ===== How XML is signed? ===== | ||
== How | |||
If you take ASCII hex bytes from Sce-Np-Trophy-Signature and convert them to bytes you will see a block of 160 bytes. It contains a header of 12 bytes (the signature header) which contains 4 bytes of a magic (0x4C39B98C), a version (0x01000000) and a padding of 4 zero bytes. There is a SHA1-HMAC hash after the header which is generated using a concatenation of the XML content itself (starting with ''trophyconf'' tag without a signature block) and the mentioned signature header (real bytes, not ASCII bytes!). You can find a HMAC key of 64 bytes inside np_trophy_util.prx module which begins with 6A C0...). After the hmac hash there is a RSA signature of 128 bytes. It is calculated from the SHA1 hash which is generated using a concatenation of the XML content itself (starting with ''trophyconf'' tag without a signature block) and the mentioned signature header (real bytes, not ASCII bytes!) and the SHA1-HMAC hash. A trophy utility uses PKCS1 as a padding scheme, the public exponent of 65537 and the modulus which is placed in a transformed way inside a module. There are 128 bytes started with 92 C8... inside np_trophy_util.prx followed by 8 bytes of a public exponent, they are 16 groups of 8 bytes each written in a reversed order. So the last group of 8 bytes will be the first group of 8 bytes, the penultimate group of 8 bytes will be the second group, etc. A SHA1-HMAC after the signature header and SHA1 hash from the decrypted signature should be equal to the computed hashes. There are different HMAC key and RSA modulus inside a module and I believe they are used for old trophy format which is not used for current games. | |||
== Keys == | |||
RSA modulus: | RSA modulus: | ||
<pre>CA 30 CE E5 9B F1 9E 04 1F 6F 02 C5 4A E4 2C D6 | <pre>CA 30 CE E5 9B F1 9E 04 1F 6F 02 C5 4A E4 2C D6 | ||
Line 181: | Line 156: | ||
F5 8B 9B A8 34 B3 58 8C 92 C8 41 1C 54 8B FC 49</pre> | F5 8B 9B A8 34 B3 58 8C 92 C8 41 1C 54 8B FC 49</pre> | ||
RSA public exponent: <code>65537</code> | |||
SHA1-HMAC key: | |||
<pre>6A C0 B3 FB 1E BB 4F B7 BC C2 A0 0D A3 A2 A4 BD | |||
BC B7 88 EC 45 67 48 CC 86 CD 9D 09 EF 37 93 7F | |||
6E E3 11 67 77 8E 41 4E 9B 71 1B E9 D8 CB B5 F8 | |||
95 6E 45 4E E9 4A 46 C3 9D C4 FF 0D 09 0B 92 B7</pre> | |||
== | ===== TROPTRNS.DAT ===== | ||
Fully encrypted, method unknown | |||
* Specullation | |||
Based in the name (trophy transmission or transfer) its a file derivated of TROPUSR.DAT, with an added layer of encryption, ready to be sended to PSN to synchronize the data related with this game with your trohpies in your online account | |||
It contains info related with user, either because its present in the source file (TROPUSR.DAT) or because it contains the file PARAM.SFO "incrusted" in the format | |||
===== TROPUSR.DAT ===== | ===== TROPUSR.DAT ===== | ||
Stores data related with the unlocked trophies for this specific game, included timestamps when the trophy was unlocked, etc... | Stores data related with the unlocked trophies for this specific game, included timestamps when the trophy was unlocked, etc... | ||
The file is updated | The file is updated everytime a trophy is unlocked, and at the same time his [[PARAM.PFD]] is updated to store the new signature | ||
The file is encrypted, some tricks can be done to tamper with this files to unlock trophies, but consider the methods not perfect (they generates semi-corrupted files that can be considered valid under some circunstancies, but are corrupted in the end) | The file is encrypted, some tricks can be done to tamper with this files to unlock trophies, but consider the methods not perfect (they generates semi-corrupted files that can be considered valid under some circunstancies, but are corrupted in the end) | ||
===== Content information files ===== | ===== Content information files ===== | ||
These are "multimedia" files, not | These are "multimedia" files, not cryticall and not protected in any way, for more information see: [[Content_Information_Files|Content Information Files]] | ||
=== | === Trophy Installer === | ||
In blu-ray discs in path: bdvb/PS3_GAME/TROPDIR/[[PARAM.SFO#NPCOMMID|NPCOMMID]]/''' | In blu-ray discs in path: bdvb/PS3_GAME/TROPDIR/[[PARAM.SFO#NPCOMMID|NPCOMMID]]/'''TROPHY.TRP'''. e.g: bdvb/PS3_GAME/TROPDIR/NPWR00001/TROPHY.TRP | ||
In HDD games in path: ??? | In HDD games in path: ??? | ||
Line 276: | Line 224: | ||
*TROP_'''xx'''.SFM (optionall) | *TROP_'''xx'''.SFM (optionall) | ||
Same than TROP.SFM but containing texts for other [[Languages]] | Same than TROP.SFM but containing texts for other languages. For a list of all languages see: [[Content_Information_Files#Regional_codes_in_file_names_.28languages.29|Content Information Files - Languages]] | ||
*ICON0.PNG, TROP'''xxx'''.PNG, and GR00'''x'''.PNG | *ICON0.PNG, TROP'''xxx'''.PNG, and GR00'''x'''.PNG | ||
ICON0.PNG is the main icon always visible in XMB | ICON0.PNG is the main icon always visible in XMB | ||
GR00'''x'''.PNG (optionall) is a subicon when trophies are grouped | GR00'''x'''.PNG (optionall) is a subicon when trophies are grouped | ||
TROP'''xxx'''.PNG is the icon for every trophy | TROP'''xxx'''.PNG is the icon for every trophy | ||
[[Content_Information_Files#Trophies|Content Information Files - Trophies]] | |||
==PSL1GHT and trophy's== | ==PSL1GHT and trophy's== | ||
Line 289: | Line 239: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Game type | ! Game type !! Platinum (180 points) !! Gold (90 points) !! Silver (30 points) !! Bronze (15 points) !! Points Max | ||
! | |||
! | |||
! | |||
! | |||
! Points Max | |||
|- | |- | ||
| Disc Game || {{yes}} || {{yes}} || {{yes}} || {{yes}} || 1230 | | Disc Game || {{yes}} || {{yes}} || {{yes}} || {{yes}} || 1230 | ||
Line 325: | Line 270: | ||
**Level 19 = 70,000 | **Level 19 = 70,000 | ||
**Level 20 and up = previous level plus 8,000 | **Level 20 and up = previous level plus 8,000 | ||