dans

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.

A lire :  "Notre application bannie sans preuves du Google Play Store": l'explosion des développeurs italiens

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.

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.

A lire :  Il y a un bot sur Telegram qui utilise deepfake pour dépouiller des photos de femmes habillées

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.

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.

A lire :  Crysis Remastered annonce sa configuration PC minimale et recommandée

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).

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. 🙂

  • 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
Iphone 12: Indications D'une Batterie Avec Moins De Capacité Que

iPhone 12: Indications d’une batterie avec moins de capacité que dans l’iPhone 11

Limité Et Très, Très Cher: Ronaldo Est Récompensé Par Des

Limité et très, très cher: Ronaldo est récompensé par des super voitures