- Das IOCCC28 wurde nach vier Jahren Pause wieder aufgenommen und verzeichnete zahlreiche Einreichungen hochausgearbeitet obfuskierten C-Codes von Entwicklerinnen und Entwicklern aus aller Welt.
- Durch den Neuaufbau von Website und Infrastruktur, die Einführung des mkiocccentry Toolkits und Verbesserungen beim Einreichungssystem wurde die betriebliche Effizienz deutlich gesteigert.
- Der Bewertungsprozess wurde im Vergleich zur Vergangenheit komplexer und strenger, doch die Bewertungsdauer wurde im Vergleich zu üblichen Abläufen stark verkürzt.
- Obwohl die Codegrößenbeschränkung gelockert wurde, wurden zahlreiche kleine und qualitativ hochwertige Beiträge ausgewählt, weshalb nur geringe Änderungen der zukünftigen Contest-Regeln zu erwarten sind.
- Mit interessanten und originellen Gewinnerwerken, Obfuskationstechniken sowie experimentellen Virtuellen Maschinen und Emulatoren wurde ein Beitrag zur Weiterentwicklung der C-Programmierung geleistet.
Überblick und Hintergrund von IOCCC28
- Die 2024 ausgerichtete 28. Ausgabe des International Obfuscated C Code Contest (IOCCC28) war ein Wettbewerb für kreative und schwer lesbare C-Codes, an dem Entwickelnde aus aller Welt teilnahmen.
- In dieser Zeit wurde die offizielle IOCCC-Website im Rahmen von „Great Fork Merge" mit über 6.168 Commits grundlegend neu aufgebaut.
- Auf operativer Ebene wurden unter anderem das mkiocccentry Toolkit, ein neues Registrierungsverfahren und der Submissionsserver eingeführt, wodurch sich die Effizienz der Prüfung und die Geschwindigkeit der Codeveröffentlichung verbessert haben.
- Die Einreichungen liefen vom 5. März 2025 bis zum 5. Juni 2025, und die Juryphase endete in nur 33 Tagen; der Quellcode wurde dann innerhalb von rund zwei Stunden nach Ende des Wettbewerbs vollständig veröffentlicht.
Trends bei Einreichungen und Gewinnern
- Beim diesjährigen IOCCC28 stieg durch die deutliche Zunahme von Anzahl und Qualität der Einreichungen auch die Schwierigkeit der Bewertung, wodurch insgesamt 23 Gewinner – ein historischer Höchstwert – ausgewählt wurden.
- „Obwohl die vierjährige Pause zu besseren Einreichungen geführt hat, haben die Teilnehmenden insgesamt deutliche Fortschritte sowohl in der Obfuskation als auch in der C-Programmierung erzielt.“
- Obwohl eine neue Codegrößenbegrenzung eingeführt wurde (ca. 21 % höher), wurden mehr als die Hälfte der Gewinner mit weniger als zwei Dritteln des Gesamtlimits eingereicht, zehn sogar mit unter der Hälfte, was Effizienz und Qualität gleichermaßen zeigt.
- Daraus wird erwartet, dass sich die Codegrößenregeln in den nächsten zehn Jahren kaum verändern werden.
Bewertungsregeln und Ausblick
- Die IOCCC-Regeln und Leitlinien sollen künftig noch innovativ und intuitiver angepasst werden; die IOCCC-Juroren bereiten außerdem die für Dezember 2025 geplante Vorbereitung auf IOCCC29 vor.
- Es sind außerdem auf Pull-Request-Basis ergänzende Patches für das GitHub-Repository der IOCCC-Winner und das Repository des mkiocccentry-Toolkits vorgesehen.
Gewinner und Highlights
-
Es wurden Gewinner aus unterschiedlichen Themenfeldern ausgewählt, mit folgenden Hauptbeiträgen und Merkmalen:
- ChatIOCCC: Implementiert ein auf Meta's LLaMA-2 basierendes Open-Source-Large-Language-Modell als weltweit kleinstmöglichen LLM-Inferenz-Engine und bietet eine unterhaltsame Chatbot-Funktion.
- Eh: Ein verschleierter Editor mit UTF-8-Akzent, der eine praktischere Umsetzung als ed(1) liefert.
- 135-Byte-One-Liner: Extrem kurzer Obfuskationscode, der basierend auf eingegebenen Hexadezimalwerten unterschiedliche Ausgaben erzeugt.
- C-Preprocessor-Art: Führt den C-Präprozessor von tausenden bis hunderttausenden Mal aus, um Bild-Rendering zu realisieren, und bietet eine sehr lange Skriptausführungszeit mit einem einzigartigen Erlebnis.
- Z₃ Virtual Machine: Implementierung einer virtuellen Maschine basierend auf der dritten Version der Z-Machine, bei der das Interpretieren von Quellcode wie ein Spiel erlebt werden kann.
- Virtualisierung inklusive C64-Emulator: Eine VM, in der auch riskante Szenarien wie Fork Bomben oder Dateilöschvorgänge sicher getestet werden können; inkl. C64.
- Intel-4004-Chip-Emulation: Künstliche Repräsentation eines 1971 veröffentlichten kommerziellen Mikroprozessor-Layouts auf Gatterebene in C-Code.
- Mehrsprachiges Puzzle: Originelle Obfuskation für Personen, die mit mindestens drei Sprachen (C, Englisch und weiteren) vertraut sind.
Teilnehmende und künftige Hinweise
- Obfuskationen, die bestehenden Gewinnerwerken ähneln, erhalten nur wenige Zusatzpunkte; Originalität und Fertigstellung sind die Hauptkriterien der Bewertung.
- Nicht ausgezeichneten Teilnehmenden wird empfohlen, ihre Beiträge zu überarbeiten und neu einzureichen oder unterschiedliche Herangehensweisen zu erproben.
- Die separate Veröffentlichung von Nicht-Gewinnern wird ebenfalls begrüßt.
Anleitung zum Kompilieren und Ausführen der Gewinner
- Für mögliche Kompatibilitätsprobleme mit einigen C-Compilern wird empfohlen, die jeweils neuesten Versionen von clang oder gcc zu verwenden.
- In den FAQ und offiziellen Dokumenten werden Fehlerbehebung und das Einreichen von Korrekturen erläutert.
IOCCC28-Gewinner 2024 herunterladen
- Das komplette Gewinnerpaket steht als Archivdatei (2024.tar.bz2) bereit; über die Detailseiten der einzelnen Beiträge, den Quellcode und die Autorenkommentare können kreative Obfuskationstechniken erlernt werden.
(Der direkte Zugriff auf die Download-Links der Gewinnerbeiträge sowie deren detaillierte Beschreibungen pro Beitrag findet sich auf der offiziellen Website.)
Noch keine Kommentare.