Close Menu

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    What's Hot

    U Mobile deploys ULTRA5G in Kota Kinabalu

    AKASO Launches Keychain 2: A Pocket-Sized 4K Action Camera Built for Creators on the Move

    Huawei Malaysia beings preorders for Pura 80

    Facebook X (Twitter) Instagram
    • Artificial Intelligence
    • Business Technology
    • Cryptocurrency
    • Gadgets
    • Gaming
    • Health
    • Software and Apps
    • Technology
    Facebook X (Twitter) Instagram Pinterest Vimeo
    Tech AI Verse
    • Home
    • Artificial Intelligence

      Blue-collar jobs are gaining popularity as AI threatens office work

      August 17, 2025

      Man who asked ChatGPT about cutting out salt from his diet was hospitalized with hallucinations

      August 15, 2025

      What happens when chatbots shape your reality? Concerns are growing online

      August 14, 2025

      Scientists want to prevent AI from going rogue by teaching it to be bad first

      August 8, 2025

      AI models may be accidentally (and secretly) learning each other’s bad behaviors

      July 30, 2025
    • Business

      Why Certified VMware Pros Are Driving the Future of IT

      August 24, 2025

      Murky Panda hackers exploit cloud trust to hack downstream customers

      August 23, 2025

      The rise of sovereign clouds: no data portability, no party

      August 20, 2025

      Israel is reportedly storing millions of Palestinian phone calls on Microsoft servers

      August 6, 2025

      AI site Perplexity uses “stealth tactics” to flout no-crawl edicts, Cloudflare says

      August 5, 2025
    • Crypto

      Japan Auto Parts Maker Invests US Stablecoin Firm and Its Stock Soars

      August 29, 2025

      Stablecoin Card Firm Rain Raise $58M from Samsung and Sapphire

      August 29, 2025

      Shark Tank Star Kevin O’Leary Expands to Bitcoin ETF

      August 29, 2025

      BitMine Stock Moves Opposite to Ethereum — What Are Analysts Saying?

      August 29, 2025

      Argentina’s Opposition Parties Reactivate LIBRA Investigation Into President Milei

      August 29, 2025
    • Technology

      It’s time we blow up PC benchmarking

      August 29, 2025

      If my Wi-Fi’s not working, here’s how I find answers

      August 29, 2025

      Asus ROG NUC 2025 review: Mini PC in size, massive in performance

      August 29, 2025

      20 free ‘hidden gem’ apps I install on every Windows PC

      August 29, 2025

      Lowest price ever: Microsoft Office at $25 over Labor Day weekend

      August 29, 2025
    • Others
      • Gadgets
      • Gaming
      • Health
      • Software and Apps
    Check BMI
    Tech AI Verse
    You are at:Home»Technology»28th International Obfuscated C Code Contest
    Technology

    28th International Obfuscated C Code Contest

    TechAiVerseBy TechAiVerseAugust 3, 2025No Comments14 Mins Read2 Views
    Facebook Twitter Pinterest Telegram LinkedIn Tumblr Email Reddit
    Share
    Facebook Twitter LinkedIn Pinterest WhatsApp Email

    BMI Calculator – Check your Body Mass Index for free!

    28th International Obfuscated C Code Contest

    Twenty Eighth International Obfuscated C Code Contest

    Where to start

    See below for links to the 2024 winning IOCCC entries.

    Check out the index.html web pages for each winning entry. They have
    most of the information you need to compile and run the winning program.
    Take a look at the winning source code and try to figure out how it works.
    You might also want to check out the author’s remarks for even more details.

    You may download all winning entries in the form
    of a compressed tarball, for this year’s contest.

    This year marked the 40th anniversary of the IOCCC.
    The IOCCC28 opened submissions from 2025-03-05 23:19:17.131107 UTC to 2025-06-05
    04:03:02.010099 UTC
    after a 4 year pause.

    A significant portion of those 4 years was an effort by a number of people,
    with over 6168+ commits, to rebuild the Official IOCCC website
    in what became known as the Great Fork Merge.

    Another portion of those 4 years went into retooling the IOCCC, including the creation of
    the mkiocccentry toolkit, a new
    IOCCC registration process, and a new
    IOCCC submit server (which may not be up if the contest is closed).

    The major motivation for the above was to:

    • Present IOCCC winners that that honors the contributions of all of the winning authors from around the world,

    • Reduce the administrative effort required by the IOCCC Judges to run the contest, and

    • Minimize the time between when the winners of the IOCCC are selected and when the source is made available.

    On the last point, for IOCCC28 the Judging started on 2025-06-05 04:03:02.010099 UTC and then the winners were selected by the IOCCC Judges on 2025-07-07 20:05:07.000000 UTC:

    • Winners were announced during a live the Our Favorite Universe YouTube Channel that started on 2025-08-02 18:00:00.000000 UTC

    • Near the end of the 2 hour XXX-add-show-URL-here-XXX YouTube show, the source code of the IOCCC28 winning entries was published on IOCCC GitHub winner repo and on the Official IOCCC website.

    No longer will there be many months between when the winners are
    announced and their source code is made available. For IOCCC28
    the time was less than 2 hours. 🙂

    Increased submission quantity and quality

    The submissions to IOCCC28 were remarkable when compared with previous contests, in both the
    increased quantity and quality of the submissions. As a result the judging process for IOCCC28
    was more challenging and required greater effort. Thankfully due to the above mentioned improvements,
    the judging process took only 33 days. Under the previous system it would have taken much longer!

    One thing that began to emerge after we exits the early rounds of judging and entered the middle rounds
    of judging was that we were very likely to have more winning entries than in previous contests.
    Even so, the final rounds of judging required more rounds and tool longer than in any previous IOCCC.

    At the end of the final round of the final rounds of judging, we had a record 23 winners of IOCCC28,
    eclipsing the record of 15 winners!

    While we suspect that the 4 year gap between IOCCC27 and IOCCC28 allowed people extra
    time to improve their submissions, we also believe that people submitting to the IOCCC have
    adept in obfuscation and have become more skilled in the programming in the C language.

    Code size and Rule 2

    We were pleased to observe that while the IOCCC size limit
    increased by about 21%, we received many submissions that were well under the new
    Rule 2 size limit including a fair number of quality
    small and medium sized submissions. Half of the IOCCC28 winners were less than
    2/3 of the size limit, and 10 of the IOCCC28 winners were less than
    1/2 of the size limit!

    IMPORTANT NOTE: The IOCCC size limit increase for IOCCC28
    was the first size increase in over 10 years. Given the quality of submissions we received
    that were well under the limit, we do NOT expect to change the
    Rule 2 size limit for at least another 10 years (and likely longer).

    IMPORTANT HINT: Only 3 of 23 the IOCCC28 winners came close to the Rule 2 size limit.
    Large code size isn’t everything. 🙂 Those submitting to future contents should
    take a careful note of that fact.

    Rules and Guidelines for this contest

    Here are the final versions of the IOCCC rules and guidelines that were in effect for this contest:

    • 2024 rules version 28.30 2025-03-03
    • 2024 guidelines version 28.47 2025-03-15

    Looking forward to the next contest

    The IOCCC Judges realize that the IOCCC rules and
    the IOCCC guidelines need to be greatly improved and streamlined.
    We decided to not overhaul them for IOCCC28 so as to NOT delay the opening of the contest.

    After the IOCCC Judges take a short IOCCC Vacation (we have been working solid
    on IOCCC28 since 2020 Dec 30), we plan to update, improve and streamline the
    IOCCC rules and the IOCCC guidelines for IOCCC29.
    Then we will address whatever bug fixes in the form of GitHub Pull Requests to both the
    IOCCC GitHub winner repo and the
    mkiocccentry toolkit repo that may be pending.

    Once we are all caught up, we will set the opening date for IOCCC29. It is our plan
    to open IOCCC29 sometime in 2025 December.

    There were a number of remarkable winning entries for IOCCC28. We wish to call
    attention to a few of them:

    • 2024/kurdyukov1

    This entry is a fun revisit of the theme of 2000/natori,
    only better and without using any floating point arithmetic. You are invited
    to try and understand why the constant 2551443 is common to both entries.

    • 2024/cable1

    This entry claims to be “the world’s smallest LLM (large language
    model) inference engine
    ”: running open-source model based on Meta’s
    LLaMA 2 with 7 billion parameters. After downloading the model via the
    2024/cable1/get_model.sh script,
    we invite you explore this ChatIOCCC tool. While not super fast,
    the tool’s output can be amusing.

    You might wish to ask ChatIOCCC: “Why did this entry win IOCCC28?”?

    We encourage you to read and understand the
    2024/cable1/prog.c source code. Then see
    if the ChatIOCCC tool can offer any new, or even correct insights
    into the code’s obfuscation. 🙂

    • 2024/howe

    “Eh”? The source code, with its UTF-8 conforming accent gives you a
    polite editor that is more functional an ed(1).

    We invite you to use the program to view the UTF-8 fun in the
    2024/howe/prog.c source code.

    HINT to emacs users: type Q or press CTRL+C to exit. 🤓

    • 2024/stedolan

    When you view the prog.c source code,
    notice magic numbers. This one liner packs a significant amount
    of obfuscation in only 135 bytes!

    Try giving 10 hex digits to standard input of the program. Then try a
    different hex digits value. Then feed the MD5 hash of the
    2024/stedolan/prog.c source code and
    “C” what happens. 🙂

    • 2024/endoh1

    The 2024/endoh1/try.sh will carry you on
    a journey that tests your patience as well as the patience of the C-preprocessor.

    Building a 8×8 image requires order of 20 seconds of C-preprocessor
    time, when running 6 jobs on 4 CPU cores in parallel. Unfortunately,
    with such a tiny image, it is hard to appreciate the image being rendered.

    So you might try building a 32×32 form of the image, invoking the
    C-preprocessor 1024 times. When using 6 jobs on 4 CPU cores in parallel,
    this might take about 5.5 minutes to complete. However, the small image
    only gives you a hint of the image being rendered.

    If you have the time you might try building a 128×128 image, invoking
    the C-preprocessor 16384 times. With 6 jobs on 4 CPU cores in parallel,
    this will take about 1.5 hours. At this scale you might consider it
    worthwhile to render a more detailed image.

    Using 6 jobs on 4 CPU cores in parallel, to build a 512×512 image invoking
    the C-preprocessor 262144 times over a period of about 23.5 hours, you
    will be given an image with a reasonable amount of detail to appreciate
    what is being rendered.

    One fun aspect of the 2024/endoh1/prog.c source code
    is that when it is compiled an executed, the program outputs C code.
    That C code, call it rt.c will fail to compile! But that is OK because the C-preprocessor
    has enough work to do without bothering the C compiler. 🙂

    We plan to recognise those who report that they rendered a new record sized image.

    • 2024/weaver

    As the expression goes, “Seeing (and hearing) is believing”: or at least can lead to better understanding of the code. :o)

    After studying the 2024/weaver/prog.c source code,
    we suggest you compile and run the program for more information.

    • 2024/mills

    This won the “Prize in ℤ₃”, but what does that mean? Well,
    the “double-struck Z” is NOT a reference to a set of integers,
    nor is the “double-struck Z subscript 3” a reference to a ring of
    3-adic integers. Instead, it is a reference to the 3rd version of a
    certain virtual machine.

    If you use the 2024/mills/try.sh script, you will first be given
    an opportunity to view the 2024/mills/prog.c source code.
    Then you will be given 10 choices to play.

    HINT: If you select 0: Try to not be eaten by a Grue when
    reading/navigating the twisty mazes of this source code! 🙂

    • 2024/codemeow

    As you study the 2024/codemeow/prog.c source code,
    try not to lose track of the forest of obfuscation while tracking down the execution path trees.

    We think this code will “grow on you” as the C expression goes just a compiled C code “grows on parse trees”. 🙂

    • 2024/kurdyukov2

    If seeing is believing, and you believe you understand the
    2024/kurdyukov2/prog.c source code,
    then you might be able to see how the code words.

    QUESTION: How many of the “magic numbers” in the program do you understand?

    • 2024/kurdyukov3

    The prize, “virtual quietus”, is a virtual reference to the doom that awaits you when
    you run this code: let alone when your try to figure out how the author was able to
    encode the virtual machine in under 2.5K bytes of prog.c source code!

    NOTE: The implementation runs without sound or mouse
    input. You will need reply on your keyboard skills. The
    2024/kurdyukov3/try.sh
    demonstration script will give you some useful keyboard hints.

    • 2024/cable2

    To those who follow the concept of “seeing is believing” will very
    likely be “deceived” when they try to see the source in terminal window:

        cat 2024/cable2/prog.c

    Viewing the prog.c source code in most editors
    might suggest that the is something fishy 🐠 with the code.

    • 2024/straadt

    Have you ever wondered would what would happen if you recursively removed
    files starting from the root directory? Are you curious what happens when
    you launch a fork bomb?
    You can safely give those and other scenarios under this virtual machine.

    We invite you to explore the prog.c source code
    to explore this interesting virtual machine implementation. And as a bonus, a
    full-fledged C64 emulator is included!

    • 2024/ferguson2

    The “Prize in yil-tas” provides a hint as to what this marvelous
    winning entry is going, provided that you are someone familiar in at
    least 3 languages (hint: One of them is C, another id English).

    The IOCCC is honored to present this entry for your enjoyment and you ponder
    the prog.c source code.

    • 2024/carlini

    The IOCCC has seen a number of winning entries that allow code designed to
    run on early Intel processors, however none of them emulate a processor as
    early as the Intel 4004.
    Launched in 1971, the 4004 was the core of the first commercially marketed
    microprocessor chipset.

    The 2024/carlini/prog.c
    code runs rather slow, so patience is required to watch
    4004
    code run. This is very understandable when you realize that the
    2024/carlini/prog.c is actually
    emulating the entire
    4004 chip circuit
    by computing the output of each gate in a loop, effectively running the CPU and associated RAM/ROM chips!

    • Depending on the address of a variable, as not all platforms support
      ASLR,
      as the single source of pseudo-randomness isn’t a good idea. It’s
      much better to mix in other sources of variability (e.g. time, process
      ID, etc.) so that subsequent runs will behave differently.

    • If a submission’s obfuscation strongly resembles a past IOCCC winning
      entry, and the submission’s obfuscation is mainly in the C code source,
      then the submission likely to not make it into the final rounds of judging.

    • When working with modern C compilers, it’s crucial to explicitly
      declare variable and function types. Don’t assume they’ll
      automatically default to an int.

    • Sadly, K&C-style C code does not compile well under modern C compilers.

    • A submission that only works under gcc or clang does not work as well
      as submissions that can work under either compiler.

    • Shrinking an existing open-source program to meet rule 2 size might
      be an impressive feat of code shrinking, but it might not be enough to
      make it into the final rounds of judging. Originality is key, and this
      might not be the most innovative approach.

    • If your submission relies on mathematical algorithms, be sure that the
      C code that implements the mathematics is well obfuscated.

    • Just a friendly reminder that before you upload your submissions,
      uncompress the compressed tarball into a different directory. This way,
      you can be sure you didn’t miss uploading any important files!

    • Using a lot of goto statements to make your code harder to understand
      might not help it pass the final rounds of judging.

    Encouragement for those who did not win this year

    We know many of you that submitted to the IOCCC put in a ton of effort
    into your submissions for this year’s IOCCC. We can’t just give out
    awards to everyone. That would mean taking away from the submissions
    that we think are the best and deserve to win.

    Sometimes, a final round submission might be good enough to be a
    winning IOCCC entry, only to be beaten by a similar, but slightly better
    submission. If you think this happened with your submission, consider
    submitting an enhanced version to the next IOCCC.

    PLEASE DO NOT give up hope! There are some submissions that have been
    submitted with revisions, multiple times before rising to the level of
    a winning IOCCC entry. You might also want to try with a different type
    of submission altogether for the next IOCCC.

    If you’re not planning to improve and resubmit your non-winning entry
    for the next IOCCC, you’re welcome to publish it.

    On Compiling and running winning entries

    Some C compilers aren’t as great as they could be. If yours isn’t
    working well, you might want to try compiling with an updated version
    of clang and/or gcc instead.

    If you encounter problems in compiling and/or running the winning entries, see the FAQ on:

    • Compiling IOCCC entries
    • IOCCC entry dependencies
    • Problems compiling entries
    • Running IOCCC entries

    For additional information on how to submit fixes, see the FAQ on:

    • How to submit a fix – how to submit a fix to an entry
    • Update author information – how to correct or update an IOCCC author’s information

    For even more information

    • Reporting an IOCCC website problem
    • Submitting a fix to the IOCCC website
    • How to contact the IOCCC – up to date contact details
    • IOCCC FAQ – additional information on the IOCCC
    • www.ioccc.org – the primary IOCCC website

    Winning Entries of 2024 – The 28th IOCCC

    Download all winning entries from 2024

    • 2024/anders – Prize in imitative rebooting
    • 2024/burton – Prize in pentagrammatology
    • 2024/cable1 – Prize in bot talk
    • 2024/cable2 – Prize in murky waters
    • 2024/carlini – Prize in perfect timing
    • 2024/codemeow – Prize in tray planting
    • 2024/endoh1 – Prize in patient pointillism
    • 2024/endoh2 – Prize in solid body physics
    • 2024/ferguson1 – Prize in diabolical logistics
    • 2024/ferguson2 – Prize in yil-tas
    • 2024/howe – Nice accent eh-ward
    • 2024/kramer – Prize in linguistic arithmetic
    • 2024/kurdyukov1 – Prize in phased periodicity
    • 2024/kurdyukov2 – Prize in art restoration
    • 2024/kurdyukov3 – Prize in virtual quietus
    • 2024/kurdyukov4 – Prize in embiggening
    • 2024/maffiodo – Prize in creative interpretation
    • 2024/mills – Prize in ℤ₃
    • 2024/stedolan – Best one liner
    • 2024/straadt – Prize in sound coding
    • 2024/tmarrec – Prize in cyclonic coding
    • 2024/tompng – Prize in quasi bijection
    • 2024/weaver – Sur prize

    Jump to: top

    BMI Calculator – Check your Body Mass Index for free!

    Share. Facebook Twitter Pinterest LinkedIn Reddit WhatsApp Telegram Email
    Previous ArticleSeed7 – The Extensible Programming Language
    Next Article Arcee opens up new enterprise-focused, customizable AI model AFM-4.5B trained on ‘clean, rigorously filtered data’
    TechAiVerse
    • Website

    Jonathan is a tech enthusiast and the mind behind Tech AI Verse. With a passion for artificial intelligence, consumer tech, and emerging innovations, he deliver clear, insightful content to keep readers informed. From cutting-edge gadgets to AI advancements and cryptocurrency trends, Jonathan breaks down complex topics to make technology accessible to all.

    Related Posts

    It’s time we blow up PC benchmarking

    August 29, 2025

    If my Wi-Fi’s not working, here’s how I find answers

    August 29, 2025

    Asus ROG NUC 2025 review: Mini PC in size, massive in performance

    August 29, 2025
    Leave A Reply Cancel Reply

    Top Posts

    Ping, You’ve Got Whale: AI detection system alerts ships of whales in their path

    April 22, 2025166 Views

    6.7 Cummins Lifter Failure: What Years Are Affected (And Possible Fixes)

    April 14, 202548 Views

    New Akira ransomware decryptor cracks encryptions keys using GPUs

    March 16, 202530 Views

    Is Libby Compatible With Kobo E-Readers?

    March 31, 202528 Views
    Don't Miss
    Gadgets August 29, 2025

    U Mobile deploys ULTRA5G in Kota Kinabalu

    U Mobile deploys ULTRA5G in Kota Kinabalu After unveiling its new ULTRA5G network for in-building…

    AKASO Launches Keychain 2: A Pocket-Sized 4K Action Camera Built for Creators on the Move

    Huawei Malaysia beings preorders for Pura 80

    It’s time we blow up PC benchmarking

    Stay In Touch
    • Facebook
    • Twitter
    • Pinterest
    • Instagram
    • YouTube
    • Vimeo

    Subscribe to Updates

    Get the latest creative news from SmartMag about art & design.

    About Us
    About Us

    Welcome to Tech AI Verse, your go-to destination for everything technology! We bring you the latest news, trends, and insights from the ever-evolving world of tech. Our coverage spans across global technology industry updates, artificial intelligence advancements, machine learning ethics, and automation innovations. Stay connected with us as we explore the limitless possibilities of technology!

    Facebook X (Twitter) Pinterest YouTube WhatsApp
    Our Picks

    U Mobile deploys ULTRA5G in Kota Kinabalu

    August 29, 20252 Views

    AKASO Launches Keychain 2: A Pocket-Sized 4K Action Camera Built for Creators on the Move

    August 29, 20252 Views

    Huawei Malaysia beings preorders for Pura 80

    August 29, 20252 Views
    Most Popular

    Xiaomi 15 Ultra Officially Launched in China, Malaysia launch to follow after global event

    March 12, 20250 Views

    Apple thinks people won’t use MagSafe on iPhone 16e

    March 12, 20250 Views

    French Apex Legends voice cast refuses contracts over “unacceptable” AI clause

    March 12, 20250 Views
    © 2025 TechAiVerse. Designed by Divya Tech.
    • Home
    • About Us
    • Contact Us
    • Privacy Policy
    • Terms & Conditions

    Type above and press Enter to search. Press Esc to cancel.