IOCCC Regresa: Maestros Humanos de C Superan a la IA en Ofuscación

Thenewstack

Después de un hiato de cuatro años, el International Obfuscated C Code Contest (IOCCC) hizo un regreso triunfal este año, marcando su vuelta con un número sin precedentes de 23 entradas ganadoras. Este récord de galardones fue un testimonio de la inusualmente alta calidad de las presentaciones, mostrando el extraordinario dominio del lenguaje C por parte de programadores de todo el mundo. Entre los ganadores destacados se encontraban un programa que usaba ingeniosamente caracteres Unicode invisibles para imprimir una receta completa de salmón, y otro que memorablemente “rickrolleó” a los jueces con una música y gráficos de 8 bits meticulosamente recreados del Atari 2600.

Los jueces, incluido el fundador del concurso Landon Curt Noll, revelaron que habían experimentado con Grandes Modelos de Lenguaje (LLMs) para analizar el código enviado. Sin embargo, los resultados de estos modelos de IA fueron mixtos y, en última instancia, no se emplearon en el proceso de juicio final. Los jueces subrayaron la capacidad duradera de los programadores humanos para crear código que supera con creces las capacidades actuales de la inteligencia artificial. Un ejemplo sorprendente de esto fue un motor de inferencia LLM de 750 bytes desarrollado por uno de los ganadores, una hazaña que Noll cree que ningún modelo de IA actual podría replicar. El código fuente de todas las entradas ganadoras, incluido el infame “Rickroll”, ya está disponible públicamente en un repositorio dedicado de GitHub, y el IOCCC está programado para regresar en diciembre de 2025. Como Noll observó: “Cada concurso hay cosas nuevas que no sabía que se podían hacer con C que la gente muestra que pueden hacer”.

El evento de este año también vio la reactivación de una tradición de 40 años: un anuncio en vivo de los ganadores. Esto se remonta a la década de 1980, cuando los ganadores se daban a conocer en una sesión especial de la conferencia Usenix, a menudo inmediatamente después de una presentación sobre la última versión de BSD. Noll recordó con humor aquellos primeros días, donde presentaba los resultados “imprimiendo cosas en transparencias y usando un proyector de transparencias”, un marcado contraste con las proyecciones digitales de hoy. Los organizadores del concurso han modernizado desde entonces su infraestructura, ofreciendo ahora videos que demuestran la salida a menudo extraña y brillante de las entradas ganadoras compiladas. Noll, con la ayuda de David McInnis, orquestó una elaborada ceremonia de premios en 2025, con múltiples fuentes de video y audio y música original, asegurando que cada entrada ganadora recibiera el protagonismo que merecía.

Noll cree que el prolongado descanso de cuatro años, sin darse cuenta, proporcionó a los concursantes más tiempo para refinar sus presentaciones, lo que llevó al aumento de entradas de alta calidad. Si bien los concursos anteriores solían otorgar de 12 a 15 premios, los 23 ganadores de este año superaron todos los récords anteriores. El gran volumen de entradas excepcionales significó que no hubo un único ganador de “Mejor de la Exposición” o “Gran Premio”, ya que muchos fueron considerados dignos de los máximos honores.

En cuanto al impacto de la IA, Leonid A. Broukhis, dos veces ganador del IOCCC y juez de larga data, señaló que el hiato les permitió probar los LLM para el análisis de código. Si bien algunos modelos podían inferir vagamente el propósito de ciertas entradas basándose en la estructura general o la lógica matemática, otros estaban “completamente despistados”. Noll declaró explícitamente que los LLM no se utilizaron en el juicio, ni recomendó su uso para la creación de futuras entradas. Advirtió que el código generado por IA para un concurso tan matizado probablemente sería “basura”, a menudo fallando en la compilación o pareciéndose a C en apariencia pero no en funcionalidad. Noll, reflexionando sobre sus 40 años de juicio, elogió a los programadores humanos como “maestros del lenguaje C”, capaces de un inmenso esfuerzo y habilidad para condensar ideas complejas en pequeños fragmentos ofuscados. Si bien los LLM podrían eventualmente servir para futuros participantes, quizás para probar si su código es verdaderamente incomprensible para una IA, Noll destacó que el elemento humano sigue siendo primordial.

La infame entrada de Rickroll, presentada por el programador Vince Weaver, fue un punto culminante. Los jueces describieron su proceso desconcertado para descifrar el código, que implicaba declaraciones masivas de constantes, un proceso hijo bifurcado y retrasos estratégicos, antes de darse cuenta de que habían sido víctimas de la broma de internet de décadas de antigüedad. El programa era una adaptación rudimentaria de una versión de Atari 2600, completa con música y gráficos de 8 bits. Otra entrada asombrosa provino del legendario programador de C ofuscado Yusuke Endoh, cuyo programa mostraba hermosas animaciones ASCII de objetos giratorios, demostrando la física del mundo real de un cuerpo rígido en rotación. Endoh incluso incrustó inteligentemente la imagen de una peonza dentro del espacio en blanco de su código fuente altamente ofuscado. Adrian Cable, además de su motor de inferencia LLM, presentó una segunda entrada premiada: un programa aparentemente inofensivo de 15 líneas. Este código, que presentaba una declaración de variable engañosa (unsigned int *salmon = U" is very yummy";), imprimía mágicamente una receta completa de salmón a la parrilla. El truco residía en caracteres Unicode invisibles que formaban líneas de código adicionales, hábilmente ocultas de los editores de texto estándar, junto con un desconcertante bucle for señuelo que nunca se ejecutaba. Esta ingeniosa presentación le valió el premio “Aguas Turbias” del concurso.

De cara al futuro, el repositorio especial de GitHub ahora alberga el código fuente de todos los IOCCC desde 1984, haciendo que la historia del C ofuscado sea fácilmente accesible. Los planes futuros incluyen videos cortos que muestren ganadores anteriores, actualizaciones de las herramientas de empaquetado de entradas y mejoras en la infraestructura del servidor del concurso. Se anticipa que el próximo período de registro del IOCCC se abrirá en diciembre de 2025, y los organizadores planean revisar y refinar las reglas del concurso basándose en sus recientes experiencias de juicio. Por ahora, los jueces, que han dedicado miles de horas al proyecto desde diciembre de 2020, están tomando un merecido descanso, esperando desconectar y disfrutar de los frutos del increíble trabajo de los concursantes.