Twenty Eighth International Obfuscated C Code Contest
Website structure and presentation
- People note the amusing literalness of linking every entry as
name/index.htmlinstead of relying on default index serving, given the contest’s obsession with bytes. - Some notice a placeholder “XXX-add-show-URL-here-XXX” left on the main page and hunt for the missing livestream link.
- The recent redesign broke many historic URLs and pushes users through JavaScript-heavy GitHub pages; text-mode/JS-averse users complain and resort to
git clone.
LLMs and obfuscated code
- Initial suspicion that “increased quantity and quality” might be due to LLMs is met with broad skepticism.
- Several argue LLMs are tuned toward readable, conventional code and do poorly at intentional misdirection and dense tricks that IOCCC entries rely on.
- Someone involved with the show says current LLMs largely failed to understand this year’s entries beyond superficial comments.
- Attempts to get LLMs to either write or explain entries often produce verbose, pseudo-explanatory code that misses the real mechanisms, sometimes blocked by malware filters.
- Idea floated: a separate competition for LLMs to deobfuscate IOCCC programs.
Discussion of specific entries
- Enthusiasm for the MD5-based image decompression one-liner that outputs its own logo from the hash of its source; long subthread on MD5 collisions, “magic constants,” and brute-forcing via non-semantic source variations (variable names, declaration order).
- The moon-phase ASCII program draws strong reactions; connections made to earlier IOCCC entries using the synodic month constant and to donut.c / Pi-calculator classics.
- Other praised 2024 entries: a tiny Linux emulator that also embeds a C64 emulator; a browser-based VM running Doom via
doomp.bin; a Wordle implementation whose source is shaped like the Wordle grid; the Unicode-heavy entry whose main body never runs due to cleverly abused TAG characters andputchar. - Many cite older favorites (e.g., stereogram/3D-image code, Pi-from-source), highlighting the tradition of programs whose source is itself an image or data.
Rules, loopholes, and culture
- Rule 2’s oddly specific size limits (4993 bytes / 2503 “iocccsize units”) spark curiosity; people note potential data hiding in filenames via
argv[0]or__FILE__. - Stories of teachers and coworkers using obfuscated C to teach pitfalls and style; references to “On Trusting Trust” and the Underhanded C Contest as conceptual cousins.
- Debate over whether IOCCC is an argument against C; consensus that any language can be abused, though C’s flexibility makes extreme obfuscation unusually easy.