Продолжаю разбирать эпические работы c «International Obfuscated C Code Contest», в этот раз рассказ пойдет о победителе 2018 года.
Рубрика «IOCCC»
IOCCC: Best of Show 2018
2025-08-03 в 8:20, admin, рубрики: BSD, bsd-системы, c-lang, demoscene, IOCCC, PDP-11, UNIXМаленькие программки на С — победители конкурса IOCCC
2025-05-26 в 9:01, admin, рубрики: FNV, IOCCC, National Semiconductor, ruvds_статьи, встроенное по, джон кармак, Курт Болл, Курт Нолл, наношахматы, оптимизация ПО, простые числа, самомодифицирующийся код, хэш-функция, числа мерсенна
Международный конкурс запутанного кода на С (IOCCC) — известное соревнование по программированию, которое проводилось до 2020 года.
В отличие от традиционных чемпионатов по спортивному программированию, здесь не нужно решать задачи на скорость. У участников сколько угодно времени, но размер программы ограничен 1536 байтами (не считая пробелы, табы и прочие служебные символы), в сумме обычно получается не более 2 кб.
Но программки делают реально сложные вещи: например, победитель 2004 года — это операционная система, исходный код 166 строк.
Посмотрим на шедевры разных лет и откуда вообще взялся этот конкурс.
Читать полностью »
Самый маленький эмулятор x86
2025-03-07 в 9:12, admin, рубрики: freebsd, IOCCC, системное программирование, эмуляторКопаясь в проектах-победителях IOCCC, неожиданно наткнулся на самый маленький эмулятор x86 архитектуры на свете — 4043 байт!
Как я участвовал в IOCCC-’19 (и проиграл). Часть 2: «Симулятор NOR»
2020-08-29 в 19:26, admin, рубрики: C, IOCCC, конкурс, отладка, системное программированиеЭто вторая часть цикла статей о том, как я участвовал в IOCCC'19

- Как я участвовал в IOCCC-'19 (и проиграл). Часть 1: «Крестики-нолики»
- Как я участвовал в IOCCC-'19 (и проиграл). Часть 2: «Симулятор NOR»
Я надеюсь, что данная статья поможет вам при разборе чужого кода или кода после декомпилятора или обфускатора.
Если вы еще не знаете, что такое IOCCC или вы хотите ознакомиться с более простым вариантом запутанного кода, то рекомендую обратиться к первой части.
Всем остальным я желаю приятного чтения.
Победители 22-го конкурса IOCCC
2014-01-07 в 9:56, admin, рубрики: IOCCC, ocr, Демосцена, ненормальное программирование, метки: IOCCC, ocr 
Опубликован исходный код программ-победителей 22-го конкурса программ с обфусцированным кодом на C. Участвовать в конкурсе могут готовые программы размером меньше 4096 байт, при этом количество значимых символов, без учёта пробелов, знаков табуляции и знаков; ( ), не должно превышать 2048. Впрочем, в этом году многие участники воспользовались эксплоитом для бага в модуле вычисления размера программы, так что в 2013 году на конкурс были представлены, пожалуй, самые продвинутые программы за все годы проведения соревнований.
Например, вызывает искреннее восхищение эмулятор 8086-компьютера размером 4043 байта (исходный код) с полным набором инструкций 8086/186, который поддерживает флоппи-диски и HDD и PC-спикер.
Читать полностью »
MySQL клиент формата A4
2013-07-15 в 9:09, admin, рубрики: c++, IOCCC, mysql, метки: c++, IOCCC, mysqlМожно ли уместить исходники MySQL клиента на 1 страничке формата A4? Оказывается, если 8 кеглем (в принципе читаемо) и после обфускации, то можно! А если читаемо, без обфускации и 10 кеглем, то нельзя: надо целых 6 страничек.
В ходе работы над всяким у меня тут случайно получился крохотный, но работающий MySQL клиент размером чуть больще 1000 строк. Стало интересно, насколько компактнее можно сделать. Потратил половину воскресенья, изолировал и минимизировал код. В результате появился nanomysql, CLI клиент для MySQL, полные исходники которого занимают чуть менее 380 строк, менее 1800 токенов и примерно 10500 байт, и при этом компилируются и работают под Linux, Window, MacOS. Написано на C++ с абсолютным минимумом STL.
Скриншоты, циферки и прочие подробности уикэнд-сумасшествия по изготовлению наноклиента под катом.
Читать полностью »
Итоги 21-го конкурса IOCCC
2012-10-18 в 21:30, admin, рубрики: Brainfuck, IOCCC, ненормальное программирование, непонятный код, обфускация, метки: IOCCC, непонятный код, обфускация
Объявлены победители 21-го международного конкурса обфусцированного кода на C. Как обычно, участники удивили способностью втиснуть совершенно невероятные вещи в программы до 4096 байт. Чтобы получить максимальное удовольствие, организаторы конкурса рекомендуют смотреть версию без спойлеров и пытаться понять по коду программы, что она делает.
Например, что делает такая программа?
main(l
,a,n,d)char**a;{
for(d=atoi(a[1])/10*80-
atoi(a[2])/5-596;n="@NKA
CLCCGZAAQBEAADAFaISADJABBA^
SNLGAQABDAXIMBAACTBATAHDBAN
ZcEMMCCCCAAhEIJFAEAAABAfHJE
TBdFLDAANEfDNBPHdBcBBBEA_AL
H E L L O, W O R L D! "
[l++-3];)for(;n-->64;)
putchar(!d+++33^
l&1);}

И не просто печатает, но ещё показывает на карте точку с заданными координатами, которые можно указать при запуске (символ " или #).
Кстати, это «лучшая маленькая программа» на IOCCC 1992 года.
Итоги 20-го международного конкурса непонятного кода на C
2012-04-30 в 14:40, admin, рубрики: IOCCC, ненормальное программирование, непонятный код, обфускация, метки: IOCCC, непонятный код, обфускация
Организаторы IOCCC (Международный конкурс на самый непонятный код C) нажали кнопку «турбо». Если результаты прошлого конкурса опубликовали спустя четыре года после проведения, теперь прошло всего два месяца — и вот они.
Участвовать в конкурсе могут готовые программы размером меньше 4096 байт, при этом количество значимых символов, без учёта пробелов, знаков табуляции и знаков ; ( ), не должно превышать 2048. Задачей конкурса является «проверять компиляторы на стресс, демонстрировать тонкости языка программирования Си и важность соблюдения стиля программирования (делая обратное)».
Читать полностью »

