Slashdot Mirror


18th International Obfuscated C Code Contest Opens

chongo writes "The 18th International Obfuscated C Code Contest, the Internet's longest running contest, is now open. The goals, rules, and guidelines are available. Use the online submission tool to submit your obfuscated C code by 22-May-2005 23:59:59 UTC."

8 of 187 comments (clear)

  1. I wonder... by slobber · · Score: 3, Interesting

    is there a similar contest for Perl? I imagine much crazier submissions with Perl than what can be done with C (no offense to C programmers ;))

    --
    "You mortals are so obtuse." -Q
    1. Re:I wonder... by Crspe · · Score: 5, Interesting

      Well, there is kind of a similar competition for perl ... perl golf ... where the aim is to write the smallest possible perl program to fulfill a particular task. The winners of these competitions are invariably amazingly obfuscated, and unbelievably small!
      One example - one competition involved calculating and printing out the huffman codes for a given input - the winner achieved this with a 76 character perl program!

      find more here:
      http://www.google.com/search?hl=en&q=perl+golf
      or here http://terje.perlgolf.org/

  2. Maze of Code by Anonymous Coward · · Score: 5, Interesting

    Compile with -fwritable-strings, run, type in a number like 20, find your way out...

    char*M,A,Z,E=40,J[40],T[40];main(C){for( *J=A=scanf(M="%d",&C);
    -- E; J[ E] =T
    [E ]= E) printf("._"); for(;(A-=Z=!Z) || (printf("\n|"
    ) , A = 39 ,C --
    ) ; Z || printf (M ))M[Z]=Z[A-(E =A[J-Z])&&!C
    & A == T[ A]
    |6<<27<rand()||!C&!Z?J[T[E]=T[A]]=E,J[T[A]=A-Z ]=A,"_.":" |"];}

  3. Re:Past Winners with Spoilers by mirko · · Score: 2, Interesting
    My personal favorite is the following:
    http://remus.rutgers.edu/~rhoads/Obfuscated_C/hagu e


    It's a command line based ascii to morse converter...
    I especially like the fact it's a bunch of DAH DAHDIT!
    --
    Trolling using another account since 2005.
  4. Re:Past Winners with Spoilers by aliasptr · · Score: 2, Interesting

    After running arg.c (just a file with the original source code in it) through the preprocessor and some indentation:

    # 1 "arg.c"
    # 1 ""
    # 1 ""
    # 1 "arg.c"
    # 9 "arg.c"
    char _DAH_[]="ETIANMSURWDKGOHVFaLaPJBXCYZQb54a3d2f16g7c 8a90l?e'b.s;i,d:";
    main ( )
    {
    char * _DIT,* DAH_,* DIT_,* _DIT_,* malloc (),* gets ( );

    for ( _DIT=malloc ( 81 ),DIT_=_DIT++;_DIT== gets ( _DIT );__DIT('\n') )
    for ( DAH_=_DIT; *DAH_; __DIT ( *_DIT_?_DAH ( * DIT_ ):'?'),__DIT(' '),DAH_ ++ )
    for (* DIT_=2,_DIT_=_DAH_; * _DIT_ && (* _DIT_!=( * DAH_>='a'? *DAH_&223:* DAH_ ) ); (* DIT_ ) ++,_DIT_ ++ )
    * DIT_+= ( * _DIT_>='a'? * _DIT_-'a':0);
    }_DAH
    ( DIT_ )
    {__DIT
    (DIT_>3?_DAH ( DIT_>>1 ):'\0');
    return DIT_&1?'-':'.';
    }__DIT
    ( DIT_ ) char DIT_;

    {
    ( void ) write ( 1,&DIT_,1 );
    }

    (arg.c is just the original source file)

    And there you have it. As mentioned on the page the similar names are annoyingly hard to read, ternary operator usage, weird function exits (I think I am not very good with C... corrections or resources about what exactly is going on with {__DIT ... }__DIT? Or perhaps some Google searching :-P . I had wasted my time making this so I figured I'd post it.

    --
    It takes all types in this world. I sincerely mean it... This is just my perspective.
  5. A tattoo of obfuscated C ... by Crspe · · Score: 5, Interesting

    This I love - One guy went and had the first ever entry in the ioccc (from 1984) tattooed on his forearm ...
    http://tattoo.thomasscovell.com/index.html

    This I also love - the first ever entry was a hello world program!

    That entry was the longest one ever made into a tattoo, however there are hundreds of people around the world who have unknowingly had this entry tattoed on their forearm:
    http://www.de.ioccc.org/years.html#1994_smr

    This is really a great competition - lots of fun, lots to learn. Try understanding how some of the entries work, its really a challenge sometimes, and you can learn plenty about C and the preprocessor.

  6. Last Year's Winners by ajs318 · · Score: 2, Interesting

    I actually quite liked Hibachi. And not just for the animated logo! You can even run multiple instances on separate ports, and use NAT and port forwarding to get a poor man's virtual server setup.

    I'd recommend you stick to v1.0 {which is actually PD}, for licencing reasons. The v2.8 licence is unnecessarily restrictive.

    --
    Je fume. Tu fumes. Nous fûmes!
  7. Re:You want obfuscated? by m50d · · Score: 2, Interesting

    It's pretty simple really though, you just have to convert it and then you've got your basic language, as long as you can handle stack-based programming it's a breeze. Ook is more to my liking.

    --
    I am trolling