28º Concurso Internacional de Código C Ofuscado
(ioccc.org)- O IOCCC28 deste ano foi retomado após 4 anos e recebeu numerosas entradas de código C de alta complexidade de desenvolvedores de todo o mundo
- A reconstrução do site e da infraestrutura, a adoção do mkiocccentry toolkit e a melhoria do sistema de submissão elevaram muito a eficiência operacional
- Embora o processo de julgamento tenha ficado ainda mais complexo e rigoroso do que antes, o período de avaliação foi bastante reduzido em relação ao normal
- Embora a regra de tamanho do código tenha sido relaxada, vários trabalhos pequenos e de alta qualidade foram selecionados, o que sugere que mudanças futuras nas regras do concurso serão limitadas
- Trabalhos vencedores interessantes e originais, técnicas de ofuscação e máquinas virtuais/emuladores experimentais foram apresentados, contribuindo para elevar o nível da programação em C
Visão geral do IOCCC28 e contexto de realização
- O 28º International Obfuscated C Code Contest (IOCCC28), realizado em 2024, foi uma competição de código C criativo e de leitura difícil com participação de desenvolvedores do mundo todo, após um hiato de 4 anos
- Durante esse período, o site oficial da IOCCC foi totalmente reconstruído em grande escala sob o nome de "Great Fork Merge", com mais de 6.168 commits
- Em termos operacionais, foram aplicadas várias inovações, como a adoção do mkiocccentry toolkit, novo fluxo de cadastro e servidor de submissão, melhorando a eficiência de julgamento e a velocidade de divulgação do código
- As inscrições foram aceitas de 5 de março de 2025 a 5 de junho de 2025, e o julgamento terminou em apenas "33 dias", com o código-fonte de todas as obras sendo publicado em cerca de 2 horas após o fim do concurso
Entradas e tendência de seleção
- Como o número de entradas e a qualidade do IOCCC28 aumentaram bastante este ano, a dificuldade de seleção também subiu, e foram emitidos 23 vencedores, o maior número já registrado
- "Embora a pausa de 4 anos tenha permitido a vinda de melhores entradas, no geral os participantes também mostraram progresso evidente em habilidades de ofuscação e programação em C"
- Embora tenha sido aplicado um novo limite de tamanho de código (com aumento de cerca de 21%), mais da metade dos vencedores foi submetida com menos de 2/3 do limite total, e 10 delas abaixo de menos de metade do tamanho, mostrando eficiência e qualidade
- Por isso, prevê-se que haja pouca alteração nas regras de tamanho de código nos próximos 10 anos
Regras de julgamento e planos futuros
- As regras e diretrizes da IOCCC serão revisadas para ficarem ainda mais inovadoras e intuitivas, e os IOCCC Judges devem iniciar os preparativos para o IOCCC29, previsto para dezembro de 2025
- Também há planos de preparar correções com base em Pull Request para o repositório GitHub de vencedores da IOCCC e para o repositório do mkiocccentry toolkit
Destaques e vencedores
-
Foram selecionados vencedores de diversos temas, com as seguintes obras e características principais:
- ChatIOCCC: implementação de um mecanismo de inferência LLM de código aberto baseado em LLaMA 2 da Meta como o mecanismo de inferência LLM mais minimalista do mundo, oferecendo uma função de chatbot divertida
- Eh: implementação de um código ofuscado de editor com acento UTF-8 que é mais prática que o ed(1)
- One-liner de 135 bytes: código extremamente curto e ofuscado que executa várias saídas com base em valores hexadecimais inseridos
- C Preprocessor Art: renderização de imagem executando o pré-processador entre milhares e centenas de milhares de vezes, com tempo de execução de script muito longo e experiência única
- Z₃ Virtual Machine: máquina virtual baseada na terceira versão da Z-machine; a interpretação do código-fonte pode ser apreciada como um jogo
- Ambiente virtual com emulador C64: máquina virtual onde é possível testar com segurança cenários potencialmente danosos, como fork bomb, exclusão de arquivos etc., incluindo o C64
- Emulação do chip Intel 4004: reprodução artística que emula em nível de porta o circuito do primeiro microprocessador comercial do mundo lançado em 1971
- Multilingual Puzzle: ofuscação inovadora para pessoas familiarizadas com pelo menos três linguagens (C, inglês e outras)
Participantes e recomendações futuras
- A ofuscação semelhante a obras vencedoras anteriores recebe pontuação menor, e originalidade e acabamento são critérios principais de julgamento
- Para participantes não premiados, recomenda-se tentar novamente com melhorias ou explorar abordagens diferentes
- A publicação separada de obras não vencedoras também é bem-vinda
Guia de compilação e execução dos vencedores
- Podem existir problemas de compatibilidade com alguns compiladores C; recomenda-se usar a versão mais recente do clang ou gcc
- O FAQ e a documentação oficial orientam sobre como resolver problemas e enviar correções
Download dos vencedores do IOCCC28 de 2024
- O conjunto completo dos vencedores é fornecido como arquivo compactado (2024.tar.bz2), e é possível aprender técnicas de ofuscação originais revisando a página detalhada de cada obra, o código-fonte e os comentários do autor
(Para links de download de vencedores e a descrição detalhada por vencedor acessíveis diretamente no conteúdo, consulte o site oficial)
1 comentários
Comentários no Hacker News
Este código desenha a fase atual da Lua no console. Se eu fosse um lobisomem, poderia observar a fase da Lua.
donut.cLink de referência do donut.c
Referência do código de cálculo de pi de 1988
Ir para o Compiler Explorer
git cloneEstá escrito: "Embora a concisão seja mais valorizada do que a obscuridade, este programa ainda atende claramente ao padrão de clareza característico do IOCCC"
log2da quantidade de avaliações de MD5 que uma GPU de cinco anos de idade consegue fazer em uma horajqVer persano.c de 2005
Entrada macke de 2024
Este programa é um emulador que executa um sistema Linux moderno inteiro com funcionalidade minimizada