Paskelbti 29-ojo „C Obfuscated Code Writing“ konkurso nugalėtojai

Paskelbtas dvidešimt devintojo IOCCC (Tarptautinio užmaskuoto C kodo konkurso) laimėjusių darbų išeities kodas. Dalyvių buvo paprašyta sukurti labiausiai užmaskuotą ir sunkiausiai analizuojamą C kodą. Darbai, viena vertus, turi trukdyti analizuoti ir suprasti sprendžiamą problemą, kita vertus, kodas turi būti įdomus ir vertas dėmesio (darbai gali turėti neįprastą formatą arba išryškinti netikėtus C kalbos aspektus). Programos kodo failo dydis neturi viršyti 4993 baitų, o švarus kodas, apdorotas naudojant „iocccsize“ programą, neturi viršyti 2503 baitų.

Tarp nugalėtojų:

  • URISC kompiuterio emuliatorius, kurio instrukcijų rinkinys apsiriboja viena SUBLEQ (SUbtract and Branch if Less than arba Equal to zero) instrukcija. Emuliatorius yra tik 366 baitų dydžio, nepaisant to, kad be procesoriaus, jis emuliuoja 800x512 skiriamosios gebos kadrų buferį, grafinei išvesčiai naudoja SDL3 biblioteką ir gali įkelti vaizdą iš Linux ir paleisk jame žaidimą „Doom“.
  • Juodosios skylės vaizdų generatorius. Programa apima paprastą „Fortran 66“ kalbos pogrupio interpretatorių, kurio programa pateikta perfokortų pavidalu, užkoduota naudojant tarpus ir tabuliacijos simbolius šaltinio kode. Užkoduota „Fortran“ programa atkartoja pirmąjį juodosios skylės modeliavimo kodą, kurį 1978 m. paskelbė Jean-Pierre Luminet. Vaizdas generuojamas kaip taškų debesis ir išsaugomas PGM formatu. Be juodosios skylės modeliavimo, siūlomi užkoduoti „perfokortų“ variantai Mandelbroto aibės skaičiavimui, pirminių skaičių skaičiavimui ir spindulių sekimui.
  • Pataisų įrankio variantas, kuris generuoja diff įrankį atlikdamas savo kodo transformacijų seriją. Pirmajame etape sukompiliuotai pataisų įrankinei perduodamas jos pačios šaltinio kodas, kuris naudojamas diff failui generuoti. Pritaikius šį diff failą šaltinio kodui, gauta programa kartoja savo kodą, kad sugeneruotų pataisytų pakeitimų rinkinį „git am“ formatu. Kai šie pakeitimai sujungiami su komanda „git log --pretty=format:%s > final.c“, gautas kodas įdiegia diff įrankį.
  • Teksto terminale žaidžiamas „roguelike“ tipo žaidimas, kuriame žaidėjai naršo automatiškai sugeneruotą labirintą, renka artefaktus ir vengia monstrų. Kodas suformatuotas kaip požemio gyventojo vaizdas ir užmaskuotas (eilutės šifruojamos, ciklai įgyvendinami naudojant „goto“, o masyvai tvarkomi naudojant „index[array]“ sintaksę).

  • ASCII animacijos generatorius, kuris atkuria „Doctor Who“ įžangos seką, imituodamas „HowlRound“ vaizdo efektą (susitraukiančių vaizdų tunelį), naudotą 1963 m. įžangos sekoje.
  • „GameBoy“ emuliatorius, optimizuotas „Tetris“, bet galintis paleisti ir kitus žaidimus (išbandyti keliolikos žaidimų ROM failai). Išvestis generuojama kaip pseudografika naudojant Unicode simbolius.
  • Banglenčių garso simuliatorius su automatiškai generuojama meditacine muzika fone. Rezultatas – 5 minučių WAV failas.
  • Savaime modifikuojančio „Quine Pong“ lošimo automato įgyvendinimas, apimantis du žaidimus: stalo tenisą ir dinozaurų kliūčių ruožo šuolį (kaip „Google Chrome“ Velykų kiaušinis). Programa pasižymi kadrų rodymu, kuris pasiekiamas ciklinio kodo regeneravimo būdu (paleidus programą, išvedamas pirmojo kadro šaltinio kodas; kompiliuojant šį kodą generuojamas kito kadro kodas ir t. t.). Žaidimas įgyvendinamas naudojant apvalkalo scenarijų, kuris atlieka ciklinį kodo perkompiliavimą.
  • Zoltraak kalbos kompiliatorius ir kodo generatorius. Kalba susideda tik iš vieno žodžio „zoltraak“, kuris įvairiomis formomis derinamas su tarpais ir tuščiomis eilutėmis. Įvestis yra bet koks tekstinis failas, kuris konvertuojamas į C programą, sudarytą iš antraštės ir Zoltraak sekos. Sugeneruotos C programos kompiliavimas ir vykdymas išveda pradinio tekstinio failo turinį.


Atkurti vaizdo
/


Šaltinis: opennet.ru
Pirkite patikimą prieglobą svetainėms su DDoS apsauga, VPS VDS serveriais 🔥 Įsigykite patikimą svetainių talpinimą su DDoS apsauga, VPS VDS serveriais | ProHoster