1 Punkte von GN⁺ 2025-08-04 | Noch keine Kommentare. | Auf WhatsApp teilen
  • 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.

Noch keine Kommentare.