Un hacker est parvenu à trouver une faille dans le code de Doom II et d’y exécuter du code arbitraire. Il n’en fallait pas plus pour qu’il décide de faire tourner Doom dans Doom.
C’est depuis longtemps un défi cher aux nerds : faire tourner le vénérable jeu Doom sur toutes les plates-formes imaginables. Mais on peut dire que cette fois, on a fait le tour. Car un programmeur est parvenu à atteindre le hack ultime, le graal pour cette petite communauté au passe-temps étrange : faire tourner Doom… dans Doom.
Ce petit exploit technique, on le doit à un programmeur qui répond au pseudonyme de « kgsws ». Dans une longue et très technique vidéo Youtube, il explique comment il est parvenu à exécuter le vieil FPS dans une carte pour Doom II qu’il a créée pour l’occasion.
Et ce n’a pas été une mince affaire ! Après avoir analysé avec le soin le code du jeu, il a découvert un exploit permettant l’exécution de code arbitraire. Il a donc fait en sorte de charger en mémoire une seconde version de Doom par le biais de cette faille. Il a ensuite conçu une map qui affiche le jeu par le biais d’une texture animée.
Plutôt impressionnant, d’autant qu’il ne s’est pas arrêté là. Étant donné que kgsws était en mesure d’exécuter du code dans Doom, il a aussi intégré plusieurs autres jeux dans le jeu : une version minimaliste du célèbre Snake, un clone d’Asteroid et même Heretic, autre célèbre FPS du début des années 1990, qui reprenait le moteur de Doom.
Les curieux peuvent aller télécharger tout cela sur la page GitHub du développeur, qui tient tout de même à rappeler que le hack ne fonctionne que sur la version originelle de Doom II, car le code a évolué depuis. Et qu’il faut bien entendu ne pas oublier que cette version un peu particulière nécessite deux fois plus de RAM, étant donné que deux copies tournent en même temps. Cela ne devrait toutefois pas poser de grands soucis à un PC moderne, puisque kgsws estime l’empreinte mémoire à 16 Mo…
Doom, un jeu open source depuis 1997
Soyons précis : ce n’est pas tout à fait la première fois que Doom est jouable dans Doom. On peut en effet aussi en profiter dans le bien plus moderne Doom Eternal (2020), si l’on entre un code secret sur un ordinateur de la Forteresse de la Destruction. Mais difficile de comparer ce joli easter egg à la performance de rétro-ingénierie de kgsws !
Voilà des années que le portage de Doom passionne les hackers, qui ont réussi à le faire tourner sur des plates-formes toujours plus improbables. Il faut dire que le titre combine les avantages pour cela, au-delà de son statut de jeu culte : il a été écrit en C, un langage très répandu et au code facile à porter… Surtout, John Carmack -le créateur du jeu- a rendu son code open source en 1997, ce qui a permis aux bidouilleurs de se l’approprier.
Depuis, on a pu voir Doom tourner sur des calculatrices scientifiques, l’Apple Watch, des télécommandes pour drone, le nouveau Game & Watch et même Minecraft. Au-delà du défi amusant, c’est aussi un vrai symbole. Car lancer Doom prouve qu’on a le contrôle total de son outil informatique. Ce qu’il est bon de défendre, à une époque où les fabricants de matériel verrouillent de plus en plus leurs appareils.
Source :
Youtube