-
When a savegame has been properly decrypted and unpacked it's a normal xml document..
example:
Code:
<SaveGame>
<Timer curTime="1421886927" ticksPerSecond="1948261"/>
<TerrainState m_bOcean="1" m_moonRotationLatitude="240" m_moonRotationLongitude="45" time="10.5" AdvInfoStart="10.5" AdvInfoEnd="10.5">
<TerrainState>
<TerrainMods />
</TerrainState>
<StaticDecals />
<ParticleEmitters />
<VariableValues>
<HDR_dynamic_power_factor Val0="1.5" Val1="-4" Val2="4"/>
<HDR_contrast Val0="1.5" Val1="1" Val2="2"/>
<HDR_blueshift Val0="0.79691702" Val1="0.907547" Val2="1"/>
<Sky_brightening__terrain_occlusion_ Val0="1" Val2="1"/>
<SSAO_amount_multiplier Val0="1.5" Val2="2.5"/>
<SSAO_contrast_multiplier Val0="1.5" Val1="1" Val2="2"/>
<Global_illumination_multiplier Val0="1" Val2="100"/>
...
-
@ fairchild you mean the key works for you ?
-
I got that from the memory right before encryption...
So far this is how i think the save process goes:
GameData -> XML -> ?Encryption? -> Compressed + MD5 checksum
This might be wrong but i have been watching the data in the memory today and At first the data is saved in a buffert as XML document, this is then (Maybe) encrypted or Serialized. After this the data is being Compressed (Maybe ZLib or custom) and a MD5 checksum is added.
-
mhh might be harder then we think :( one thing i know is that crysis 2 use a custom zlib version and x.509.
-
Okey, i have spent quite some time with this now, and it turned out that i was looking at the wrong encryption all along....
Now i have turned around and just about now i have found the loading routine for the profile.xml file.
I will try to solve this before i go away for the weekend, else i will continue when i get back unless someone else figures this out.
-
-
I thought i would give some heads up on this project.
As of now i can encrypt and decrypt files written by the PC version (Magic header: CRYePC1), although the Xbox 360 version uses a different key and different API than the PC version, i can attach encrypted and decrypted file if someone's interested.
As i don't have my XDK here with me where i live currently this might take a little longer for me to finish this, but as i got more and more into this i am facinated by the number of ciphers and protection this game has i will continue as much as i can. I already know the encryption scheme for extracting the data files from the demo and the online connection + storing online profiles.
So down to some technical information to drool on:
Savegames:
They are encrypted and has the magic header "CRYe<platform>", and when decrypted the savegame contains a number of zlib compressed blocks.
The decompressed blocks are XMLSerialized so no plain xml here, but values and so on should still be visible for editing.
The files are also protected by a MD5 checksum to prevent tampering.
Demo datafile
The demo data file named "Nigel" in the demo is a xxtea encrypted zip archive, and aluigi has done a quickbms script for unpacking this.
If someone is interested in what encryptions the different parts are using let me know and i can give you some insights.
-
me playing tomorrow --> Crysis 2 ( AT Uncut Promocopy thx to someone special ) ^^
@ fairchild do you want my source files ? :)