The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

08.06.2026 15:22 (MSK)

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

Среди победителей:

  • Эмулятор компьютера с архитектурой URISC, набор команд в котором ограничивается одной инструкцией SUBLEQ (SUbtract and Branch if Less than or EQual to zero). Размер эмулятора всего 366 байт, при том, что помимо CPU он эмулирует фреймбуфер с разрешением 800x512, используя для вывода графики библиотеку SDL3, и может загрузить образ с Linux и запустить в нём игру doom.
  • Генератор изображения чёрной дыры. Приложение включает простой интерпретатор для подмножества языка Fortran 66, программа для которого задана в форме перфокарт, закодированных через пробелы и табуляции в исходном коде. Закодированная Fortran-программа повторяет первый код для симуляции чёрной дыры, опубликованный Жан-Пьером Люмине в 1978 году. Изображение формируется в виде облака точек и сохраняется в формате PGM. Кроме симуляции чёрной дыры предложены варианты с закодированными "перфокартами" для расчёта множества Мандельброта, вычисления простых чисел и трассировки лучей.
  • Вариант утилиты patch, генерирующий утилиту diff через серию трансформаций собственного кода. На первом этапе скомпилированной утилите patch передаётся собственный исходных код, на основе которого формируется diff-файл. После применения этого diff-а к собственному коду на выходе получается программа, которая в цикле на основе своего кода генерирует набор коммитов с патчами в формате "git am". При объединении данных коммитов командой "git log --pretty=format:%s > final.c" получается код с реализацией утилиты diff.
  • Игра в жанре Roguelike, работающая в текстовом терминале и позволяющая проходить автоматически генерируемый лабиринт, собирать артефакты и избегать монстров. Код оформлен в виде изображения подземного жителя и обфусцирован (строки зашифрованы, циклы реализованы через goto, при работе с массивами используется синтаксис "индекс[массив]").

  • Генератор ASCII-анимации, воссоздающий заставку сериала "Доктор Кто" с симуляцией видеоэффекта "HowlRound" (туннель из уменьшающихся копий изображения), применявшегося в заставке 1963 года.
  • Эмулятор игровой приставки GameBoy, оптимизированный для запуска тетриса, но способный выполнять и другие игры (протестирован запуск ROM-файлов для десятка игр). Вывод формируется в форме псевдографики из Unicode-символов.
  • Симулятор звука морского прибоя на фоне автоматически генерируемой медитативной музыки. На выходе генерируется wav-файл, продолжительностью 5 минут.
  • Реализация самомодифицирующегося игрового автомата Quine Pong, предоставляющего две игры - пинг-понг и перепрыгивающий препятствия динозавр (как в пасхальном яйце из Google Chrome). Программа примечательна тем, что отображение кадров реализовано через цикличную перегенерацию кода программы (запуск приводит к выводу исходного кода для первого кадра, после компиляции этого кода формируется код для следующего кадра и так далее). Игровой процесс реализован через shell-скрипт, выполняющий цикличную перекомпиляцию кода.
  • Компилятор и генератор кода для языка Zoltraak. Язык включает только одно слово "zoltraak", которое комбинируется в разной форме с пробелами и пустыми строками. На вход подаётся любой текстовый файл, который преобразуется в программу на языке Си, состоящую из заголовка и последовательности на языке Zoltraak. Компиляция и выполнение сгенерированной Си-программы приводит к выводу содержимого исходного текстового файла.


/


  1. Главная ссылка к новости (https://www.ioccc.org/news.htm...)
  2. OpenNews: Объявлены победители 28 конкурса по написанию запутанного кода на языке Си
  3. OpenNews: Возобновлено соревнование по написанию запутанного кода на языке Си
  4. OpenNews: Названы победители 27 конкурса по написанию запутанного кода на языке Си
  5. OpenNews: Опубликованы работы, победившие на 21 чемпионате по написанию запутанного кода на языке Си
  6. OpenNews: Результаты 22 чемпионата по написанию запутанного кода на языке Си
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65641-ioccc
Ключевые слова: ioccc
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (57) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 15:46, 08/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не понял про эмулятор в 366 байт.
     
     
  • 2.4, Аноним (4), 15:53, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Что именно непонятно про виртуальный проц с одной инструкцией?
     
     
  • 3.7, Аноним (1), 15:57, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Где он взял линпус и дум под это дело?
     
     
  • 4.11, Аноним (1), 16:00, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    И каким образом это рисуется через SDL.
     
  • 4.58, Аноним (58), 19:09, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А, ну теперь понятен Ваш уровень. Начать надо с гугления "SUBLEQ Cross-compiler", позволяющий скомпилировать Си-код в программу для URISC SUBLEQ процессора.
     
  • 3.8, Аноним (8), 15:58, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Не понятно как он Линукс с игрой дум запускает
     
     
  • 4.18, Аноним (18), 16:07, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Там по ссылке пример есть:

        wget https://raw.githubusercontent.com/adriancable/eternal/main/ioccc/vmlinux.booti
        xz -d vmlinux.bootimage.xz
        ./prog < vmlinux.bootimage

     
     
  • 5.23, Аноним (1), 16:21, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это ничего не объясняет.
     
  • 4.47, kusb (?), 18:10, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Можно ещё один эмулятор каго будь risv-c, тода не придётя портировать Linux пож возможно не подходящую архтуу
     
  • 2.19, Аноним (18), 16:14, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Там автор гигантскую работу проделал, кроме написания эмулятора, он написан бэкенд к LLVM для одкомандной архитектуры, портировал musl и библиотеку c программным FPU и смог собрать с его помощью ядро Linux.
     
     
  • 3.51, Аноним (51), 18:27, 08/06/2026 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     

  • 1.3, Аноним (4), 15:52, 08/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    > закодированных через пробелы и табуляции
    > комбинируется в разной форме с пробелами и пустыми строками

    Какой смысл в этих работах?

     
     
  • 2.6, Аноним (6), 15:57, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Милый исходник
    https://github.com/ioccc-src/winner/blob/master/2025/yang2/prog.c
     
     
  • 3.25, Аноним (1), 16:24, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это тян?
     
     
  • 4.27, Аноним (27), 16:29, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это Ферн, а Зольтраак это базовое атакующее заклинание, которым она в основном и пользуется в боях. Это база знать надо.
     
  • 4.28, Аноним (28), 16:29, 08/06/2026 Скрыто ботом-модератором     [к модератору]
  • +2 +/
     
  • 2.9, Аноним (9), 15:58, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    for fun
     
     
  • 3.50, Аноним (51), 18:25, 08/06/2026 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
  • 2.13, Аноним (13), 16:01, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Выиграть конкурс
     
  • 2.17, Соль земли2 (?), 16:06, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Чтобы ты завидовал и компенсировал это через критику.
     
  • 2.21, Аноним (28), 16:16, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Раньше было показать примеры, как надо прятать бекдоры от кожаных мешков. Теперь, наверное, как их прятать от ИИ.
     
  • 2.44, Джон Титор (ok), 18:01, 08/06/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.45, Джон Титор (ok), 18:03, 08/06/2026 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 2.54, Аноним (54), 18:51, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Лучшеб на Раст что-нибудь переписали !
     
     
  • 3.57, Аноним (57), 19:07, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Код должен быть непонятный, но рабочий, а с растом вышло бы всё наоборот.
     
     
  • 4.59, Аноним (58), 19:14, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > а с растом вышло бы всё наоборот

    Код на расте вроде бы рабочий, но не может пройти тесты. И никто не понимает, как это исправлять.

     

  • 1.10, Аноним (8), 15:59, 08/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Их бы усилия да в мирное русло.
     
     
  • 2.15, Аноним (13), 16:03, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Твои бы усилия про коментирование усилий да в мирное русло
     
     
  • 3.22, Аноним (22), 16:17, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Твои бы усилия про коментирование усилий да в мирное русло
     
     
  • 4.52, kusb (?), 18:28, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Здесь был условный вызов иногда приводящий к хвостовой рекурсии.
     

  • 1.16, Карлос Сношайтилис (ok), 16:06, 08/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    > конкурса по написанию запутанного кода на языке Си

    А конкурс по написанию понятного и безбажного кода на Си будет?

     
     
  • 2.20, Аноним (20), 16:16, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Можно организовать, а вот для, например, Rust'а написать понятный код не получится.
     
     
  • 3.35, Онанимус (?), 16:52, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Гордишься, что не осилил Раст?
     
     
  • 4.61, НяшМяш (ok), 19:24, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Здесь собираются персонажи, не осилившие эту жизнь. Какой там раст.
     
     
  • 5.63, Аноним (63), 19:47, 08/06/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.60, kusb (?), 19:14, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А как оценивать понятность и безбаж кода?
     

  • 1.24, King_Carlo (ok), 16:21, 08/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Однажды я сел на клавиатуру и получился код на asm.
     
     
  • 2.31, Аноним (31), 16:37, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    И почему ты не участвовал в конкурсе?
     
     
  • 3.34, Аноним (34), 16:52, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Он же не сказал что рабочий, а там условие, у меня племяш тоже чтото генерирует и иногда похоже призыв сотоны, но увы, император подземного царства не появляется.
     
  • 2.32, 12yoexpert (ok), 16:38, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    это был раст
     
     
  • 3.42, Аноним (42), 17:28, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    эх, а раньше получался перл
     
     
  • 4.49, Аноним (51), 18:21, 08/06/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.29, Аноним (29), 16:29, 08/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Разве это запутанный код? По мне так это просто непонятный эмодзи-код. Запутанный код, это когда невозможно отследить логику и понять что там к чему, разве нет?
     

  • 1.30, Аноним (31), 16:37, 08/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Хоть кто-то чем-то полезным занят.
     
     
  • 2.41, Alladin (?), 17:22, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    кто-то тот кто не пошел на этот конкурс? ты про это?
     
     
  • 3.55, 12yoexpert (ok), 18:52, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    кто-то, кто делает домашку по российскому
     

  • 1.33, Аноним (33), 16:40, 08/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Чтобы запутанный код писать на расте далее конкурсы не нужны.
     

  • 1.43, Джон Титор (ok), 17:48, 08/06/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     

  • 1.48, Аноним (51), 18:18, 08/06/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     
  • 1.53, kusb (?), 18:29, 08/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Они пишут непонятный код, а я едва понимаю даже понятный.
     
  • 1.62, Аноним (62), 19:38, 08/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Джаваскриптер сделал планер
    Крыльев нет, но есть седло
    Расбежавшись этот парень
    Поломал себе ребро

    Разработчик супераппов
    Тоже сделал летуна
    Тежелющий, дорогущий
    Словно он из чугуна

    Си разраб все сделал четко
    Из исходников собрал
    Уложился в строчек сотку
    За границу улетал

     
     
  • 2.64, 12yoexpert (ok), 20:01, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    на пикабу, животное
     

  • 1.65, Аноним (65), 20:20, 08/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот видите какая мощь языка С, всего в 2 килобайтах можно сделать невероятные вещи.
    А кто-то хочет выкинуть этот язык ...
     
     
  • 2.66, 12yoexpert (ok), 20:46, 08/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    майкрософт, потому что не контролирует, поэтому и пытается залочить всех на раст, в том числе пролоббируя законы через дружков элоны
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру