Домой Статьи и аналитика Технологии Объявлены победители 29 конкурса по написанию запутанного кода на языке Си

Объявлены победители 29 конкурса по написанию запутанного кода на языке Си

От 366-байтного эмулятора до самомодифицирующегося «Понга»: как выглядят лучшие работы конкурса IOCCC этого года.

Объявлены победители 29 конкурса по написанию запутанного кода на языке Си
Объявлены победители 29 конкурса по написанию запутанного кода на языке Си — иллюстрация к материалу. Источник: linux.org.ru

Опубликованы результаты 29-го ежегодного конкурса IOCCC (International Obfuscated C Code Contest), участники которого соревнуются в создании самого запутанного и сложного для восприятия кода на языке Си. Основное требование к работам — сочетание максимальной нечитаемости исходников с интересной функциональностью или оригинальным использованием возможностей языка. Каждый проект ограничен строгими рамками: размер файла не может превышать 4993 байта, а «чистый» код после обработки утилитой iocccsize должен укладываться в 2503 байта.

Лучшие работы конкурса

В этом году жюри выбрало несколько наиболее примечательных проектов:

  • Эмулятор URISC: Код размером всего 366 байт реализует эмулятор компьютера с архитектурой URISC, использующей единственную инструкцию SUBLEQ (вычитание с переходом при результате меньше или равном нулю). Несмотря на миниатюрность, эмулятор с помощью SDL3 выводит графику в разрешении 800×512 и способен запускать ОС Linux с игрой Doom.
  • Симулятор чёрной дыры: Приложение содержит интерпретатор подмножества Fortran 66, где логика программы зашифрована в пробелах и табуляциях исходного кода. Алгоритм воспроизводит модель чёрной дыры Жана-Пьера Люмине (1978 год). Помимо этого, инструмент поддерживает генерацию множества Мандельброта, вычисления простых чисел и трассировку лучей.
  • Рекурсивный патчинг: Оригинальная вариация утилиты patch, которая сама себя трансформирует в утилиту diff. В процессе работы программа генерирует набор коммитов в формате git am, из которых при объединении получается готовый исходный код полноценного diff.
  • Roguelike-игра: Проект представляет собой полноценную игру в жанре «рогалик» для терминала, где можно собирать артефакты и сражаться с монстрами в лабиринте. Код мастерски обфусцирован: строки зашифрованы, циклы выполнены через goto, а массивы обращаются через специфический синтаксис «индекс[массив]» и визуально оформлены в виде изображения человечка.
  • ASCII-анимация: Воссоздание легендарной заставки сериала «Доктор Кто» 1963 года с эффектом «HowlRound» — динамическим туннелем из уменьшающихся копий изображения.
  • Эмулятор GameBoy: Оптимизированная версия приставки, ориентированная на запуск «Тетриса», однако поддерживающая и другие ROM-файлы. Вывод реализован с помощью псевдографики на основе Unicode-символов.
  • Звуковой генератор: Программа, создающая пятиминутный WAV-файл с медитативным звуком морского прибоя и фоновой музыкой.
  • Quine Pong: Самомодифицирующийся игровой автомат, сочетающий классический пинг-понг и «динозавра» из Google Chrome. Отрисовка кадров происходит через постоянную перегенерацию и перекомпиляцию исходного кода программы.
  • Компилятор языка Zoltraak: Система, где программа состоит исключительно из слова «zoltraak», комбинированного с пробелами и пустыми строками. Утилита превращает любой текстовый файл в код на Си, который при запуске выводит содержимое исходника.
Источник: https://www.linux.org.ru