Profite du fait que je sois d'une humeur sympathique... parce qu'en théorie le forum n'a pas à expliquer/soutenir/légitimer une tentative de crack/hack de quelque sorte que ce soit sur un produit quel qu'il soit.
Toutefois, quelques explications
1° Le contenu d'un fichier numérique
S'il s'agit d'une sauvegarde du jeu (admettons le fichier contenant les stats/progrès d'un joueur), celui-ci sera encodé de telle sorte à préserver ces infos. Cela peut être fait de diverses manières, aussi bien dans un fichier .txt parfaitement lisible, que dans un format totalement inaccessible en soit.
quelques exemples
Fichier "plat"
[Fixed]
Stat
vitesse=190
agilite=55
[/fixed]
fichier "xml"
[Fixed]
<pilote>
<vitesse>190</vitesse>
<agilite>55</agilite>
</pilote>
[/fixed]
Fichier "binaire': illisible en tant que tel!
Modifier les premiers fichiers peut paraître "simple" parce qu'ils sont lisibles et, avec un peu d'entêtement, on peut parvenir à les bidouiller, voire même obtenir des résultats rigolos. Typiquement, le premier Driver (sur PC) avait la liste des missions en XML, ainsi que les stats des véhicules. Dès lors, avec de la bonne grosse bidouille sale, on pouvait ouvrir toutes les missions, et modifier la physique...
2° les fichiers binaires
Ce que tu vois, c'est la valeur Hexa vers ASCII. En gros, le fichier contient une suite d'adresses où sont stockées les valeurs en jeu. De là, ces valeurs, écrites en hexadécimal, sont "valables" pour la lecture par un programme adapté... pas pour une conversion en texte.
Petit exemple:
Admettons un fichier qui contient les deux valeurs 190 et 55.
Ces deux valeurs, quand on les convertit de numérique a Hexadécimal, cela donne
190 -> BE en hexadécimal
55 -> 37 en hexadécimal
En ouvrant le fichier au format hexa, on obtient visuellement un truc du style
BE -- 37 -- etc etc (les "--" sont pour montrer les séparateurs)
Cependant, de là, ton programme de texte lui va tenter de lire "BE" et "37" comme étant des codes de caractères (ANSI/ASCII/UTF8)
Résultat des courses, on obtient
conversion ASCII de la valeur "BE" ->¥
conversion ASCII de la valeur "37" ->7
donc...
en ouvrant avec notepad, tu vas obtenir CA
¥7
Ce qui pour toi, visuellement, n'aura aucun sens immédiat.
Et là, ce n'est que la théorie. En pratique, tu dois tenir compte des aspects suivants
- Les développeurs vont stocker énormément de données dans le fichier de sauvegarde... dont beaucoup te seront inutiles/incompréhensibles
- Pour éviter la triche, les données sont souvent cryptées et décryptées à la volée... ce qui parfois peut créer des conneries comme des jeux qui corrompent leur sauvegarde... (déjà vu hélas!)
Pour éviter la triche (à nouveau), le jeu peut également intégrer une clé de validation. Cela peut être, par exemple, une somme de valeurs. Petit exemple
Reprenons notre fichier précédent avees les valeurs "BE" et "37"
¥7
L'idée est d'ajouter une clé de contrôle en dernier caractère. Méthode? On additionne les deux valeurs précédentes en numérique(190+55) et on convertit le résultat comme le reste. Si la valeur dépasse 255 , on fait un caractère supplémentaire qui est le complément crypté à hauteur de 200.
si cela fonctionne simplement: le résultat est 245 (190+55), ce qui donne "§"
Donc le fichier est
¥7§
Admettons les valeurs 215 + 57 (soit Î et 9) Le résultat est 215+57=272
donc on a comme premières valeurs dans le fichier
Î9
La clé dépassant 255 on a alors
clé à 200 -> ╚
272-200 = 72 ->H
Ce qui donne
Î9╚H
Comme tu peux le voir, si tu modifies une valeur (par exemple tu passes 215 à 225) et que tu omets de refaire la clé... le jeu t'enverra sur les roses en te taxant de pirate ou pire encore en plantant lamentablement.
Enfin voilà un petit "cours" pour aborder la modification des fichiers de données.