28e International Obfuscated C Code Contest
(ioccc.org)- Cette année, IOCCC28, relancé après 4 ans, a vu un grand nombre d’œuvres de code C extrêmement complexe soumis par des développeurs du monde entier
- La refonte du site web et de l’infrastructure, l’adoption du kit d’outils mkiocccentry et l’amélioration du système de soumission ont considérablement amélioré l’efficacité opérationnelle
- Le processus de sélection est devenu plus complexe et plus exigeant qu’auparavant, mais sa durée a été considérablement raccourcie par rapport à l’habitude
- Bien que la règle de taille de code ait été assouplie, de nombreuses œuvres petites et de qualité ont été primées, ce qui laisse penser que les règles futures du concours ne changeront que peu
- Les lauréats aux concepts intéressants et originaux, les techniques d’obfuscation, ainsi que les machines virtuelles et émulateurs expérimentaux présentés ont contribué à améliorer le niveau de programmation en C
Aperçu de l’IOCCC28 et contexte de l’édition
- L’IOCCC28 tenue en 2024 a repris après une interruption de 4 ans avec des développeurs du monde entier participant à une compétition de code C créatif et obfusqué
- Au cours de cette période, le site officiel d’IOCCC a été totalement reconstruit à grande échelle sous le nom de "Great Fork Merge" avec plus de 6 168 commits
- Sur le plan opérationnel, plusieurs innovations ont été mises en place, notamment l’outil mkiocccentry, les nouvelles procédures d’inscription et le serveur de soumission, ce qui a amélioré l’efficacité de la revue et la vitesse de publication du code
- Les soumissions ont été acceptées du 5 mars 2025 au 5 juin 2025, et le jugement s’est terminé en seulement « 33 jours », avec publication de l’intégralité des codes sources environ 2 heures après la fin du concours
Soumissions et tendances de sélection
- Pour l’IOCCC28, la hausse marquée du nombre et de la qualité des soumissions a également accru la difficulté de la correction, et un nombre record de 23 lauréats a été retenu
- « La pause de 4 ans a permis d’obtenir de meilleures soumissions dans certains cas, mais globalement, les participants ont montré un progrès notable en matière d’obfuscation et de maîtrise du C »
- Malgré l’instauration d’une nouvelle limite de taille du code (environ +21 %), plus de la moitié des lauréats font moins de 2/3 de la limite globale, tandis que 10 d’entre eux sont en dessous de la moitié de la taille, montrant à la fois efficacité et qualité
- En conséquence, on prévoit qu’il y aura très peu d’évolution des règles de taille du code au cours des 10 prochaines années
Règlement de sélection et plans futurs
- Les règles et lignes directrices de l’IOCCC seront revues plus en profondeur à l’avenir, de manière plus innovante et plus intuitive, et les IOCCC Judges préparent l’IOCCC29 prévu pour décembre 2025
- Des correctifs additionnels basés sur des pull requests sont également prévus pour le dépôt GitHub des lauréats IOCCC et le dépôt du toolkit mkiocccentry
Présentation des lauréats et points forts
-
Des lauréats de thèmes variés ont été retenus, avec les œuvres et caractéristiques principales suivantes
- ChatIOCCC : implémente un moteur d’inférence LLM open source basé sur LLaMA 2 de Meta, l’un des plus compacts au monde, avec une fonction de chatbot originale
- Eh : implémente un code obfusqué d’éditeur plus pratique qu’
ed(1), avec des accents UTF-8 - One-liner de 135 octets : un code obfusqué extrêmement court, basé sur des valeurs hexadécimales saisies, qui produit des sorties diverses
- C-Preprocessor Art : rend un affichage d’images en exécutant le préprocesseur entre plusieurs milliers et plusieurs centaines de milliers de fois, avec des temps d’exécution de script très longs et une expérience unique
- Machine virtuelle Z₃ : implémente une machine virtuelle inspirée de la troisième version de la Z-machine, permettant de lire le code source comme dans un jeu
- Environnement virtuel avec émulateur C64 : une machine virtuelle qui permet de tester en toute sécurité des scénarios potentiellement dangereux comme les fork bombs et la suppression de fichiers, avec C64 intégré
- Émulation de la puce Intel 4004 : reproduction artistique reproduisant au niveau des portes logiques le circuit du premier microprocesseur commercial au monde, lancé en 1971, en code C
- Puzzle multilingue : une obfuscation originale pour les personnes à l’aise avec au moins trois langages (C, anglais et autres)
Participants au concours et recommandations futures
- Une obfuscation similaire aux lauréats précédents rapporte peu de points ; l’originalité et le niveau de finition sont des critères clés de la sélection
- Pour les participants non primés, il est recommandé d’améliorer puis de présenter à nouveau leur soumission, ou d’essayer diverses approches
- La publication séparée des œuvres non lauréates est également la bienvenue
Instructions de compilation et d’exécution des lauréats
- Selon les cas, des problèmes de compatibilité peuvent survenir avec certains compilateurs C, donc il est recommandé d’utiliser la version la plus récente de clang ou gcc
- Le guide pour résoudre les problèmes et soumettre des corrections est fourni via la FAQ et la documentation officielle
Téléchargement des lauréats de l’IOCCC28 2024
- L’ensemble des lauréats est fourni sous forme d’archive (2024.tar.bz2), et les pages web détaillées de chaque œuvre, les sources ainsi que les commentaires des auteurs permettent d’apprendre des techniques d’obfuscation créatives
(Consultez le site officiel pour les liens de téléchargement des lauréats et les descriptions détaillées de chaque lauréat disponibles directement depuis cette publication.)
Aucun commentaire pour le moment.