Vyhlásení víťazi 29. ročníka súťaže v písaní kódu C Obfuscated Code

Zdrojový kód víťazných prác v dvadsiatom deviatom ročníku súťaže IOCCC (International Obfuscated C Code Contest) bol zverejnený. Účastníci mali vytvoriť čo najzložitejší a najťažšie analyzovateľný kód v jazyku C. Práce musia na jednej strane brániť analýze a pochopeniu riešeného problému, ale na druhej strane musia byť zaujímavé a pozoruhodné (práce môžu mať nezvyčajný formát alebo zdôrazňovať neočakávané aspekty jazyka C). Veľkosť súboru s programovým kódom nesmie presiahnuť 4993 bajtov a čistý kód nesmie po spracovaní pomocou nástroja ioccsize presiahnuť 2503 bajtov.

Medzi víťazmi:

  • Počítačový emulátor URISC, ktorého sada inštrukcií je obmedzená na jednu inštrukciu SUBLEQ (SUbtract and Branch if Less than or Equal to zero). Emulátor má veľkosť iba 366 bajtov, napriek tomu, že okrem CPU emuluje aj framebuffer s rozlíšením 800x512, používa knižnicu SDL3 pre grafický výstup a dokáže načítať obrázok z Linux a spustite v ňom hru Doom.
  • Generátor obrázkov čiernych dier. Aplikácia obsahuje jednoduchý interpreter pre podmnožinu jazyka Fortran 66, ktorého program je špecifikovaný vo forme diernych štítkov, kódovaných pomocou medzier a tabulátorov v zdrojovom kóde. Kódovaný program vo Fortrane replikuje prvý kód simulácie čiernych dier publikovaný Jean-Pierrom Luminetom v roku 1978. Obrázok sa generuje ako mračno bodov a ukladá sa vo formáte PGM. Okrem simulácie čiernych dier sa ponúkajú aj kódované varianty „diernych štítkov“ na výpočet Mandelbrotovho množiny, výpočet prvočísel a sledovanie lúčov.
  • Variant utility patch, ktorá generuje utilitu diff prostredníctvom série transformácií vlastného kódu. V prvom kroku sa skompilovanej utilite patch odovzdá vlastný zdrojový kód, ktorý sa použije na vygenerovanie súboru diff. Po aplikovaní tejto zmeny na zdrojový kód výsledný program prechádza vlastným kódom a generuje sadu opravených commitov vo formáte „git am“. Keď sa tieto commity skombinujú s príkazom „git log --pretty=format:%s > final.c“, výsledný kód implementuje utilitu diff.
  • Roguelike hra hraná v textovom termináli, hráči sa pohybujú v automaticky generovanom bludisku, zbierajú artefakty a vyhýbajú sa príšerám. Kód je formátovaný ako obrázok obyvateľa žalára a je obfuskovaný (reťazce sú šifrované, slučky sú implementované pomocou goto a polia sú spracované pomocou syntaxe „index[pole]“).

  • Generátor animácií ASCII, ktorý znovu vytvára úvodnú sekvenciu Doctora Who a simuluje efekt „HowlRound“ (tunel zmenšujúcich sa obrázkov) použitý v úvodnej sekvencii z roku 1963.
  • Emulátor GameBoyu optimalizovaný pre Tetris, ale schopný spúšťať aj iné hry (boli testované ROM súbory pre tucet hier). Výstup je generovaný ako pseudografika s použitím znakov Unicode.
  • Simulátor zvuku surfovania s automaticky generovanou meditatívnou hudbou na pozadí. Výstupom je 5-minútový súbor WAV.
  • Implementácia samoupravujúceho sa výherného automatu Quine Pong, ktorý obsahuje dve hry: ping-pong a prekážkovú dráhu s dinosaurom (ako veľkonočné vajíčko v prehliadači Google Chrome). Program je pozoruhodný zobrazením snímok, čo sa dosahuje cyklickou regeneráciou kódu (spustenie programu má za následok výstup zdrojového kódu pre prvú snímku; kompilácia tohto kódu generuje kód pre ďalšiu snímku atď.). Hrateľnosť je implementovaná prostredníctvom shell skriptu, ktorý vykonáva cyklickú rekompiláciu kódu.
  • Kompilátor a generátor kódu pre jazyk Zoltraak. Jazyk pozostáva iba z jedného slova „zoltraak“, ktoré sa kombinuje v rôznych tvaroch s medzerami a prázdnymi riadkami. Vstupom je ľubovoľný textový súbor, ktorý sa prevedie na program v jazyku C pozostávajúci zo záhlavia a sekvencie Zoltraak. Kompilácia a spustenie vygenerovaného programu v jazyku C vygeneruje obsah pôvodného textového súboru.


Prehrať video
/


Zdroj: opennet.ru
Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster