Reverse engineering d'un moteur de jeu de fiction interactives
19/11/2023 , A001

"Lectures Enjeu" est un logiciel ludo éducatif publié pour MS-DOS en 1994, proposant des aventures de type "fiction interactive". Il s'agit de jeux basés sur la lecture de textes et le choix d'actions pour avancer dans l'aventure.

Dans cette conférence, on explorera à l'aide d'un éditeur hexadécimal les fichiers de données utilisés par le jeu pour comprendre son fonctionnement, afin de réaliser un interpréteur permettant de rejouer ces aventures sur un système moderne non compatible avec MS-DOS.


Le format de fichiers relativement simple utilisé par ce jeu est un bon moyen de découvrir les techniques de "reverse engineering". Il n'y aura pas besoin de désassembler du code x86, mais on trouvera par contre un bytecode spécifique au programme, qu'il faudra comprendre et décoder.

Avec un éditeur hexadécimal avancé (par exemple rehex), on pourra écrire des scripts permettant d'analyser plus facilement les données. Ces scripts servent ensuite de base pour la réécriture d'un nouvel interpréteur permettant de lancer les jeux en observant leur fonctionnement via une fenêtre de débogage affichant l'état interne du jeu.

Je suis développeur C++ (entre autres), dans mes activités de logiciel libre principalement autour du projet Haiku. Je fais aussi un peu d'électronique, des trucs avec des ordinateurs 8 bit et de la rétro-ingénierie de consoles de jeux VTech.

Autre(s) intervention(s) de l'orateur :