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."
Here are some past winners with "Spoilers" for what they do. It's already pretty slow though and I'm first post.
Webmaster Wanted - Entropic Reactions
Trolling using another account since 2005.
The legacy code I have to work on must be submitted. No body knows how it works and there is no documentation.
~Aha~
DOS C:\DOS C:\DOS\RUN RUN DOS RUN.. Wait... that's C isn't it? God damn it. I'll never win at this rate...
www.tw.ioccc.org - Hsin-Chu, Taiwan
www.au.ioccc.org - Sydney, Australia
www.de.ioccc.org - Frankfurt/Main, Germany
www.es.ioccc.org - Madrid, Spain
www.gr.ioccc.org - Athens, Greece
www0.us.ioccc.org - Sunnyvale California, US
www1.us.ioccc.org - Saint Paul, Minnesota US
Once upon a midnight dreary, gcc compiled, growing weak and weary,
code obfuscated like ne'er seen before.
I could hear a faint grinding,
As the preprocessor went on finding,
it was a noise I could plainly say I abhor.
T'was an executable destined to dump quite a core.
It was a nice sunny day, I remember, in May,
and there lay pizza boxes scattered all o'er the floor.
But because of this Gentoo, I felt I was being sent to
the depths of hell for damnation evermore.
All for a program that would dump its core.
In time, day diminished, and gcc was finished,
and the program was a size worthy of lore,
because of the a.out, my hard drive near ran out,
as the program took up gigabytes galore,
and when I ran it, quoth the output, "I've just dumped a core."
No, they have the UNobfuscated version of the event for Perl - much harder to win.
d /
http://humorix.org/articles/2000/09/unobfuscate
Compile with -fwritable-strings, run, type in a number like 20, find your way out...
,C --Z ]=A,"_.":" |"];}
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
) ; 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-
If you haven't been there yet, you should check out TheDailyWTF... it's not obfuscated code, but rather unmaintainable code people submit to show what they've been left to deal with at work. Quite interesting, and sometimes as difficult to understand as intentionally obfuscated code.
500GB of disk, 5TB of transfer, $5.95/mo
May your signals all trap
...
May your references be bounded
All memory aligned
Floats to ints rounded
Remember
Non-zero is true
++ adds one
Arrays start with zero
And NULL is for none
For octal, use zero
0x means hex
= will set
== means test
use -> for a pointer
a dot if its not
? : is confusing
use them a lot
a.out is your program
there's no U in foobar
And char (*(*x())[])() is a function returning a pointer to an array of pointers to functions returning char.
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.
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/
Unproductive labor is bad. Only productive units can be allowed in hive. Workers who waste energy must be sent to the vats. It is therefore in interests of workers to be productive. To conserve energy. To obey.
(This message brought to you by the World Utilitarian Council).
Whence? Hence. Whither? Thither.
Yes, they do have this in Perl. It's called programming.
B: Why did the chicken cross the road?
A: Windows sucks!