Often a game's datafile (map, graphic, sound, etc.) will also contain a hash to prevent tampering. When the game engine loads the datafile, it'll recalculate the correct hash from the data (using a secret algorithm) and compare the result against the hash value in the datafile. If they match the data is accepted as valid and the game engine continues.
Altering a game's datafile contents means it will no longer match the datafile's original hash (IMG:
style_emoticons/default/sad.gif) -
unless the datafile's hash is also updated! (IMG:
style_emoticons/default/cool.gif) Disassembling the game engine can reveal the secret algorithm used to calculate the hash and the information can be used to calculate a new, accurate, hash for the modified content. (IMG:
style_emoticons/default/biggrin.gif)
An extension of this technique is the use of a
manifest (IMG:
style_emoticons/default/ohmy.gif) . A single manifest would contain the hashes of all the game titles datafiles - separate from the actual datafiles. This way only the manifest needs to be secured, often by being bound into the XEX, gaining all the digital signature protection thereof. (IMG:
style_emoticons/default/mad.gif)
Most of the games I saw with datafiles signed published by M$. Did somebody try to decrypt the secret algorithm calculating of hash? And is there a tool to define what game has a signed data and what hasn't?