Image illustrant l'article : C'était le dernier mystère de Splinter Cell

C'était le dernier mystère de Splinter Cell

par Korben ✨ 3 min
En bref
  • Un expert craque en quelques semaines un format de fichier qui résistait depuis 20 ans... non pas parce qu'il était ultra-sécurisé, mais juste parce qu'il était optimisé pour du matos obsolète
  • Splinter Cell Xbox : quand la RAM limitée d'une console de 2001 protège mieux les fichiers qu'un chiffrement moderne, par accident
  • Il reverse un jeu vieux de deux décennies pour sauver son code de l'oubli : la vraie préservation du jeu vidéo, c'est pas télécharger des ROMs, c'est documenter avant qu'il soit trop tard
Résumé généré automatiquement par IA

L’expert en sécurité Lander, a passé des semaines à cracker le format .lin de Splinter Cell sur la Xbox originale. C’est un format de fichier qui est resté mystérieux pendant deux décennies et c’est pas parce qu’il était ultra-sécurisé ou chiffré de fou.

Non, c’est juste parce qu’il était optimisé pour du matos obsolète !

En effet, les fichiers .lin, c’est le format utilisé par la version Xbox de Splinter Cell pour stocker tous les assets du jeu. Ce sont des archives compressées en zlib contenant des packages Unreal Engine 2, sauf que contrairement aux formats classiques que vous pouvez ouvrir tranquille avec n’importe quel outil d’extraction, ceux-là résistaient à tout depuis +20 ans. Hé oui, durant toutes ces années, la communauté modding essayait de les décoder mais sans succès…

On pensait que le problème venait du chiffrement mais en fait, pas du tout ! Le problème c’est que ce format était juste conçu d’une manière totalement inadaptée aux outils modernes. C’est ce que Lander appelle dans son article un “non-seekable format with lazy loading and interleaved exports”. En gros, vous pouviez pas juste pointer sur un offset et lire le fichier car tout était entrelacé, chargé à la demande, et optimisé pour la RAM limitée de la Xbox originale.

Du coup, impossible d’utiliser les extracteurs classiques d’archives UE2. La seule solution qu’il restait c’était donc de comprendre exactement comment le jeu chargeait ces fichiers en mémoire sur la console d’origine.

Lander a alors sorti l’artillerie lourde. D’abord l’émulateur xemu pour faire tourner la Xbox sur PC et ensuite il a posé des breakpoints mémoire pour capturer le moment exact où le jeu charge un fichier .lin.

Il a ensuite sorti IDA Pro pour analyser le code assemblé du jeu et quand l’analyse statique suffisait plus, il a patché directement le binaire du jeu pour forcer certains comportements…

Et bien sûr, pour notre plus grand plaisir, il documente tout ça dans un article avec des captures d’écran d’IDA Pro et des explications sur les structures de données. Bref, c’est du bon gros reverse engineering pur et dur, à l’ancienne, avec hex editor et la patience d’un moine bouddhiste.

Lander a ainsi réussi à extraire une partie du contenu tels que les textures, certains fichiers système, des données sur les niveaux du jeu, mais surtout, il a documenté la structure complète du format. Et ça, c’est peut-être plus important que l’extraction elle-même, parce que dans 10 ans, quand un autre passionné voudra bosser sur la préservation de Splinter Cell Xbox, il aura la doc. Il comprendra pourquoi ce format était comme ça, comment ça fonctionnait, quelles étaient les contraintes hardware de l’époque et j’en passe…

Voilà, une fois encore la préservation du jeu vidéo, c’est pas juste télécharger des ROMs mais c’est aussi comprendre les architectures, documenter les formats propriétaires, et reverse engineerer le code avant que ce ne soit trop tard !

Bravo Lander !

Cet article peut contenir des images générées à l'aide de l'IA - J'apporte le plus grand soin à chaque article, toutefois, si vous repérez une boulette, faites-moi signe !
Photo de Korben
Vous avez aimé cet article ?

Alors rejoignez ma communauté sur Patreon et accédez à des articles exclusifs, des tutos avancés et plein d'autres surprises que je réserve à mes soutiens. C'est grâce à vous que je peux continuer à partager ma passion depuis 20 ans !

Rejoindre l'aventure

Articles récents

Les métiers de la cybersécurité avec Guardia