Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming

Source Code For 22nd IOCCC Winners Has Been Released 47

An anonymous reader writes "The source code for the 22nd International Obfuscated C Code Contest winners has finally been released. Many entries exploited bugs in the size check program, making the 2013 entries possibly the most featureful submissions ever."
This discussion has been archived. No new comments can be posted.

Source Code For 22nd IOCCC Winners Has Been Released

Comments Filter:
  • Perl (Score:5, Funny)

    by Threni ( 635302 ) on Saturday January 04, 2014 @07:11PM (#45867741)

    Is there one for Perl, but the other way around - where it's clear what the code is actually doing?

  • by LikwidCirkel ( 1542097 ) on Saturday January 04, 2014 @07:29PM (#45867809)
    I find this very impressive, not so much for the obfuscation, but for packing so much functionality into a small bit of code....

    http://ioccc.org/2013/cable3/hint.html [ioccc.org]
    • There might be more to that entry than meets the eye. Quoting its description:

      CPU supports the full 8086/186 instruction set. Due to the complexities of the 8086’s arbitrary-length instruction decoding and flags, 8086 instructions are first converted to a simpler intermediate format before being executed. This conversion, along with instruction lengths and how each instruction modifies the flags, is assisted by some lookup tables which form part of the BIOS binary.

      The BIOS binary is over 12 kilobytes, so it raises the question as to which extent the emulation might be actually achieved by the BIOS.

    • by icebike ( 68054 )

      I'm just glad the published these guys names.
      Every HR department now will know never to hire them for work on any production code.

      • Actually, the reverse is mostly true.

        Most companies want to be able to find developers who can do this, as it means that they have someone on staff (or available) who will go to the trouble of figuring out just what it is that the spagetti code that did make it to production actually does. Someone who can write this level of code, can often get the company in question out of trouble that even the original developer could not, or perhaps would charge excessively high "support" fees based on the perception th

        • by icebike ( 68054 )

          Code audit? Who's going to do that?
          One guy who wants to put obfuscated code in production systems is not likely to be audited by someone with the skills to detect it.

      • we have guys at work who are paid to write obfuscated code (in java, no less) so that its harder for people to disassemble and figure out what the code is doing. whether I agree with that or not, I'm not the boss, but we have guys who do this at work, for actual pay (yes).

  • For example... (Score:4, Insightful)

    by bhlowe ( 1803290 ) on Saturday January 04, 2014 @07:53PM (#45867893)
    char*_ = "'""/*"; #include #define m 21 #define o(l, k) for(l=0; lGP9$5-,#C?NX"]-35)>>t*3 o(e,4){ c[T] [e][t]=("5'##>4(" [T+t+T]-35)>>e*2 } } n(15) { s=T>9?m:(T&3)-3?15:36;o(e,s)o(t,2)c[T+19][e][t]="6*6,8*6.608.6264826668\ 865::(+;0(6+6-6/8,61638065678469.;88))()3(6,8*6.608.6264826668865:+;4)-*6-6/616365,\ -6715690.5;,89,81+,(023096/:40(8-7751)2)65;695(855(+*8)+;4**+4(((6.608.626482666886\ 5:+;4+4)0(8)6/61638065678469.;88)-4,4*8+4(((60(/6264826668865:+;4-616365676993-9:54\ +-14).;./347.+18*):1;-*0-975/)936.+:4*,80987(887(0(*)4.*""/4,4*8+4(((6264826668865:\ +;4/4-4+8-4)0(8)6365678469.;88)1/(6*6,6.60626466686:8)8-8*818.8582/9863(+;/""*6,6.6\ 0626466686:4(8)8-8*818.8582/9863(+;/,6.60626466686:8-818.8582/9864*4+4(0())+;/.6062\ 6466686:8/8380/7844,4-4*4+4(0())69+;/0626466686:818582/9864.4/4,4-4*4+4(0())+;" [e+E +e+t]-40; E+=s+s; } n(45){ if(T>i) { v(2,T,7); v(46,T,7); } v(2+T,44,7); } T=0; o(e, 42)o(t,m)h[T][e][t]--; while(R+i) { s = D=0; if (r-R) { n(19) if (G[R+i][T]+i) V=T/2 ; else if(G[R][T]+i) s++; if(s) { if(V>4){ V=9-V; D++; } V+=29; n(20) q(c[V][T][0],c [V][T][i],D); } } n(19) if((L=G[R][T])+i) { O=T-L; e=O>9; t=e?18-O :O; o(K,((t&3)-3? 16:37)){ if(K){ L=c[t+19][K-i][0]; O=c[t+19][K-i][i] ; } q(L,O,K && e); } } if(s) q( c[V][20][0], c[V][20][i], D); R--; } printf("\33[47;1f\33[?25h\33[40m"); return 0; } // TODO: Add comments.
  • by Anonymous Coward on Saturday January 04, 2014 @08:13PM (#45867955)

    For a contest involving writing source code, it's astounding and infuriating that the judges did not link to the source code in the results.

  • by hydrofix ( 1253498 ) on Saturday January 04, 2014 @08:16PM (#45867963)

    I found this one [ioccc.org] a pretty mind-blowing entry. When compiled and run, it creates a web server at http://localhost:8224 [localhost], which can be opened in a browser to display a ray-traced 3D scene of steel ball bearings on a checker-pattern surface, arranged to display the current time. Quoting the description:

    The program wears many hats (not literally). It is
    * a web server
    * a PNG encoder
    * a ray tracer
    * a clock

    Unlike the PC emulator entry, it does not require a binary blob and all the code and data fit within the 4 kilobyte limit.

    • Unlike the PC emulator entry, it does not require a binary blob and all the code and data fit within the 4 kilobyte limit.

      If you liked this you might have liked the 64k and 4k comp.s in the demoscene, which is unfortunately dead.

      • Re: (Score:2, Insightful)

        by Anonymous Coward

        in the demoscene, which is unfortunately dead

        Uh, no it's not? [pouet.net]

    • I found this one [ioccc.org] a pretty mind-blowing entry. ...

      The program wears many hats (not literally). It is

      * a web server
      * a PNG encoder
      * a ray tracer
      * a clock

      Unlike the PC emulator entry, it does not require a binary blob and all the code and data fit within the 4 kilobyte limit.

      And this is why I'm a big fan of OpenBSD's [openbsd.org] continuous code audits [openbsd.org] and general outlook regarding security.

  • by Flammon ( 4726 ) on Saturday January 04, 2014 @09:19PM (#45868239) Journal

    Humbled after reading Largest small system emulator. http://ioccc.org/2013/cable3/hint.html [ioccc.org]

  • by Anonymous Coward

    Can someone parse this quote from the README [ioccc.org] for me?

    This year, several 8 people won 9 people won 15 awards.

  • by Trax3001BBS ( 2368736 ) on Saturday January 04, 2014 @11:18PM (#45868677) Homepage Journal

    "As I was writing up this description, I discovered I'm not the first person to write an obfuscated C sparkline utility! Vicent Martí created
    [this one](https://gist.github.com/vmg/1368661) years (!) ago. (My implementation is completely independent.)" http://ioccc.org/2013/dlowe/hint.text [ioccc.org]

    I fully believe this was a coincidence, but one can never say they hadn't seen it or similar before as it's would appear within their circle of interest.

    But to complete this project then find an older version must be deflating in some manner.

  • by Anonymous Coward

    The International logically desiged, well documented, comprehensible and maintainable C code contest yet again received no entries this year.

Every program is a part of some other program, and rarely fits.

Working...