Ce beignet est un exemple de la magie du code obscurci: c’est ainsi que les programmeurs jouent pour déguiser le code de quelque chose d’autre.

Ce beignet est un exemple de la magie du code obscurci: c'est ainsi que les programmeurs jouent pour déguiser le code de quelque chose d'autre.

En 2006, un programmeur Andy Sloane s’ennuyait, alors il s’est dit: “Je vais essayer de faire quelque chose avec du code obscurci.” Dit et fait. Créé un petit programme dont l’apparence dans l’éditeur de code était celle d’un simple beignet. Vous le voyez et vous dites “eh bien, il est en forme de beignet et il y a des lettres à l’intérieur.”

Mais ce ne sont pas que des lettres. Ce beignet contient un code qui, une fois compilé et exécuté, montre sa magie. Dans ce cas, dessinez un beignet 3D avec des caractères ASCII qui est également animé et tourne sur un axe. C’est un exemple de code obscurci, une discipline qui attire les développeurs de différents langages de programmation et qui leur permet de créer des morceaux de code uniques déguisés, par exemple de l’art ASCII, ou de générer des fonctions surprenantes à partir de lignes de code apparemment inoffensives.

Un fabricant de beignets enfermé dans un beignet

Vous pouvez testez-le vous-même rapidement sur votre ordinateur si vous avez accès à Linux (également sous Windows grâce au bash fourni par WSL, il est facile d’y accéder) et à un compilateur comme gcc.

Créez simplement un nouveau fichier texte appelé donut.c par exemple et copiez le contenu de ce code. À partir de là, vous enregistrez, compilez avec ‘gcc -o donut donut.c -lm’ et exécutez le résultat. Un beignet apparaîtra en rotation en 3D similaire à la vidéo ci-dessus.

L’exemple est simple mais tout aussi surprenant, et à partir de ce point de départ cet utilisateur a pris son exemple pour une implémentation plus ambitieuse et a ensuite expliqué (cinq ans plus tard) ce code simple il avait beaucoup plus de miettes qu’il n’en avait l’air.

A lire :  WhatsApp permettra (enfin) de désactiver les groupes pour toujours

Obfusquer le code est un art, et il a son propre championnat (avec des pièges)

Obtenir le code pour faire des choses qu’il ne semble pas faire est un art en soi, et les programmeurs friands de cette discipline vont souvent à contre-courant et produire du code qui est tout sauf compréhensible d’une manière simple.

Avion

Le but est souvent de parvenir, par exemple, à cacher ce code dans des images ASCII apparemment inoffensives, mais aussi pour protéger le code pour le rendre difficile à comprendre comme on dit et ainsi protéger sa finalité (la sécurité par l’obscurité).

Des langages comme C ou Perl sont particulièrement adaptés pour ce type de tâche, et cette discipline a en fait conduit à des concours et des championnats tels que le célèbre International Obsfuscated C Code Contest qui se déroule de manière irrégulière (parfois un événement annuel, d’autres peuvent passer deux, trois ans ou même plus entre édition et édition) et dans lesquels nous pouvons trouver des exemples spectaculaires de ce qui est réalisé avec ce code.

Le résumé de ce que fait chaque petit programme participant à ces éditions le montre clairement. Nous avons tout: des transcodeurs audio au morse, petites démos de Flappy Bird, Encodeur QR, générateurs GIF animés à partir de texte, simulateurs d’anciens ordinateurs comme un PDP-7/11, outils d’affacturage visuel, calculatrices hexadécimales, petits jeux de chars ou même lecteurs de fichiers musicaux.

CodifCodif

Le concours a certaines règles, mais depuis qu’une des règles a été créée, il tente précisément de les enfreindre. “Le piratage des règles du championnat est une tradition“a déclaré Landon Curt Noll, l’un de ses créateurs, en 2011. Ces règles sont créées avec des lacunes que les programmeurs doivent trouver et exploiter pour gagner le concours.

A lire :  Le film Beyond Good & Evil arrive sur Netflix

Code obscurci partout

Les techniques et les éléments que les programmeurs utilisent non seulement pour obtenir le code pour faire quelque chose, mais il importe également le format du code, qui est souvent caché sous la forme d’images d’art ASCII ou que peut également être un code auto-modifiable (c’est-à-dire qu’il modifie ses propres instructions pendant son exécution).

Échecs1Échecs1 Le moteur d’échecs est incroyable: il montre le plateau d’une manière très basique, mais la machine joue contre vous comme s’il s’agissait d’une partie d’échecs complète.

Les exemples sont nombreux et il y a de tout, mais par exemple l’un des plus frappants est le soi-disant Toledo Nanochess, un moteur d’échecs programmé en seulement 1 255 caractères par Oscar Toledo Gutiérrez, un programmeur mexicain qui a remporté le championnat IOCCC cinq fois et qui a fini par écrire un livre pour expliquer ce qui rendait ce code si unique. Plus tard, il est allé plus loin et a créé le Toledo Picochess, encore plus petit et avec seulement 944 caractères, il a fait de même.

Ces techniques sont bien sûr frappantes et ont conduit à l’existence d’un sous-crédit dédié à ce type de code, par exemple, mais également toutes sortes de défis dans d’autres forums tels que Stack Exchange ou Stack Overflow dans lequel, par exemple, des défis sont proposés que les programmeurs parviennent à résoudre de manière aussi différente qu’originale. Certaines personnes essaient simplement d’expliquer comment ces programmes font ce qu’ils font.

Les exemples sont également nombreux sur des sites comme GitHub – attentifs à cette animation de fluides en ASCII – et bien sûr tout cela montre que nous avons affaire à un autre exemple particulier de la créativité de certains développeurs qui ne sont plus satisfaits de la programmation: ils le font de manière vraiment originale (et alambiquée).

A lire :  Astronomie : des scientifiques identifient des astéroïdes d'origine interstellaire

45secondes est un nouveau média, n’hésitez pas à partager notre article sur les réseaux sociaux afin de nous donner un solide coup de pouce. 🙂

  • vhbw batterie remplace Kinzo 25C995EP pour outil électrique (1500mAh,
    Electricité Alimentation Batterie et chargeur Batterie VHBW, La batterie de remplacement compatible de la marque vhbw est idéale pour vos outils comme par exemple votre perceuse, perforatrice, ponceuse, tournevis rechargeable, ainsi que votre radio, scie à main et taille-bordures. Nos batteries
  • EVE Détecteur EVE Détecteur d'ouverture EVE
    Eve Door & Window, c'est un capteur connecté capable de détecter l'ouverture et la fermeture de vos portes et fenêtres. Vous pouvez ainsi vérifier que tout est fermé dans votre maison, obtenir des statistiques pour savoir quand vous avez aéré votre intérieur, mais aussi automatiser des scénarios : par exemple
  • MINERVA MCGONAGALL CHAT / HARRY POTTER / FIGURINE FUNKO POP / EXCLUSIVE SPECIAL EDITION
    Minerva McGonagall est la chef de la maison Gryffondor et la professeur de charmes de l'école de magie Poudlard. Elle a aussi la particularité d'être une animagus qui peut se transformer en chat à volonté. C'est ainsi qu'elle est représentée sur cette figurine, sous la forme d'un chat tigré gris, noir et