Add preview of 1984-2019
The 2020 winners are hinted it, but the source code is not there,
nor are the hints. Someone could look into the HTML and
see what was commented out, but that is not a problem because
WHO won is known and the name of their AWARD is known already.
Moreover a number of the winners have talked about what their
entirs do, so the commented out spoiler text is not a bit problem.
One will find HTML commented out with:
<!-- XXX remove when 2020 is ready
2020 links here
XXX remove when 2020 is ready -->
The "XXX remove when 2020 is ready" string is found at the
start and end comment blocks. Again, soneone could read
what was commented out, but that is OK since most of that
information is known or can be known. The following files
have such HTML comment blocks in them.
./winners.html
./years-spoiler.html
./years.html
In addition, ./all/summary.txt was modified to not
include the 2020 entries for the momemt.
The 2020 winner code AND write-ups are NOT part of this set.
p.s. The all/all.tar.bz2 does not contain the 2020 source code (yet?).
This commit is contained in:
1 parent
28efc67f5d
commit
c0663537cb
1683 files changed
+220064
No files matched your search
Binary file not shown.
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env make
|
||||
#
|
||||
# Orwellian 1984 makefile
|
||||
#
|
||||
# This work by Landon Curt Noll, Simon Cooper, and Leonid A. Broukhis
|
||||
# is licensed under:
|
||||
#
|
||||
# Creative Commons Attribution-ShareAlike 3.0 Unported License.
|
||||
#
|
||||
# See: http://creativecommons.org/licenses/by-sa/3.0/
|
||||
|
||||
|
||||
################
|
||||
# tool locations
|
||||
################
|
||||
#
|
||||
SHELL= /bin/bash
|
||||
CP= cp
|
||||
CPP= cpp
|
||||
GUNZIP= gunzip
|
||||
LD= ld
|
||||
MAKE= make
|
||||
RM= rm
|
||||
SED= sed
|
||||
TAR= tar
|
||||
TRUE= true
|
||||
|
||||
# ANSI compiler
|
||||
#
|
||||
# Set CC to the name of your ANSI compiler.
|
||||
#
|
||||
CC= cc
|
||||
|
||||
|
||||
###############
|
||||
# IOCCC winners
|
||||
###############
|
||||
#
|
||||
WINNERS= anonymous laman decot mullender
|
||||
|
||||
###################
|
||||
# build all entries
|
||||
###################
|
||||
#
|
||||
all:
|
||||
@for i in ${WINNERS} ; do \
|
||||
echo "(cd $$i && $(MAKE) $@)"; \
|
||||
(cd $$i && $(MAKE) $@); \
|
||||
done
|
||||
|
||||
|
||||
###############
|
||||
# utility rules
|
||||
###############
|
||||
#
|
||||
clean:
|
||||
@for i in ${WINNERS} ; do \
|
||||
echo "(cd $$i && $(MAKE) $@)"; \
|
||||
(cd $$i && $(MAKE) $@); \
|
||||
done
|
||||
|
||||
clobber:
|
||||
@for i in ${WINNERS} ; do \
|
||||
echo "(cd $$i && $(MAKE) $@)"; \
|
||||
(cd $$i && $(MAKE) $@); \
|
||||
done
|
||||
|
||||
install:
|
||||
@for i in ${WINNERS} ; do \
|
||||
echo "(cd $$i && $(MAKE) $@)"; \
|
||||
(cd $$i && $(MAKE) $@); \
|
||||
done
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
In 1984, the first contest was held. The name of the contest was simply
|
||||
``Obfuscated C Code Contest''.
|
||||
|
||||
Restrictions against machine dependent code were not in the rules in 1984.
|
||||
The source file size restriction was only 512 bytes. Rules and results
|
||||
were posted to net.lang.c and net.unix-wizards.
|
||||
|
||||
Copyright (c) 1984, Landon Curt Noll.
|
||||
All Rights Reserved. Permission for personal, educational or non-profit use is
|
||||
granted provided this this copyright and notice are included in its entirety
|
||||
and remains unaltered. All other uses must receive prior permission in writing
|
||||
from both Landon Curt Noll and Larry Bassel.
|
||||
@@ -0,0 +1,26 @@
|
||||
# %W% %G% %U%
|
||||
#
|
||||
# 1984 makefile
|
||||
#
|
||||
# Copyright (c) 1984, Landon Curt Noll.
|
||||
# All Rights Reserved. Permission for personal, educational or non-profit
|
||||
# use is granted provided this this copyright and notice are included in its
|
||||
# entirety and remains unaltered. All other uses must receive prior permission
|
||||
# from Landon Curt Noll and Larry Bassel.
|
||||
|
||||
|
||||
SHELL= /bin/sh
|
||||
WINNERS= anonymous
|
||||
|
||||
all: ${WINNERS}
|
||||
|
||||
anonymous: anonymous.c
|
||||
cc $? -o $@
|
||||
|
||||
clean:
|
||||
rm -f core
|
||||
clobber: clean
|
||||
rm -f ${WINNERS}
|
||||
|
||||
install: all
|
||||
@echo are you kidding'??'
|
||||
@@ -0,0 +1,2 @@
|
||||
int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hell\
|
||||
o, world!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i);}
|
||||
@@ -0,0 +1,18 @@
|
||||
<h1>Dishonorable mention</h1>
|
||||
|
||||
<p>Anonymous</p>
|
||||
|
||||
<h2>Judges' comments:</h2>
|
||||
|
||||
<p>The author was too embarrassed that he/she could write such trash, so I
|
||||
promised to protect their identity. I will say that the author of this
|
||||
program has a well known connection with the C programming language.</p>
|
||||
|
||||
<p>This program is a unique variation on the age old “Hello, world”
|
||||
program. What reads like a read may be written like a write!</p>
|
||||
|
||||
<p>Copyright © 1984, Landon Curt Noll.
|
||||
All Rights Reserved. Permission for personal, educational or non-profit use is
|
||||
granted provided this this copyright and notice are included in its entirety
|
||||
and remains unaltered. All other uses must receive prior permission in writing
|
||||
from both Landon Curt Noll and Larry Bassel.</p>
|
||||
@@ -0,0 +1,18 @@
|
||||
# Dishonorable mention
|
||||
|
||||
Anonymous
|
||||
|
||||
## Judges' comments:
|
||||
|
||||
The author was too embarrassed that he/she could write such trash, so I
|
||||
promised to protect their identity. I will say that the author of this
|
||||
program has a well known connection with the C programming language.
|
||||
|
||||
This program is a unique variation on the age old "Hello, world"
|
||||
program. What reads like a read may be written like a write!
|
||||
|
||||
Copyright (c) 1984, Landon Curt Noll.
|
||||
All Rights Reserved. Permission for personal, educational or non-profit use is
|
||||
granted provided this this copyright and notice are included in its entirety
|
||||
and remains unaltered. All other uses must receive prior permission in writing
|
||||
from both Landon Curt Noll and Larry Bassel.
|
||||
@@ -0,0 +1,26 @@
|
||||
# %W% %G% %U%
|
||||
#
|
||||
# 1984 makefile
|
||||
#
|
||||
# Copyright (c) 1984, Landon Curt Noll.
|
||||
# All Rights Reserved. Permission for personal, educational or non-profit
|
||||
# use is granted provided this this copyright and notice are included in its
|
||||
# entirety and remains unaltered. All other uses must receive prior permission
|
||||
# from Landon Curt Noll and Larry Bassel.
|
||||
|
||||
|
||||
SHELL= /bin/sh
|
||||
WINNERS= decot
|
||||
|
||||
all: ${WINNERS}
|
||||
|
||||
decot: decot.c
|
||||
cc $? -o $@ -lm
|
||||
|
||||
clean:
|
||||
rm -f core
|
||||
clobber: clean
|
||||
rm -f ${WINNERS}
|
||||
|
||||
install: all
|
||||
@echo are you kidding'??'
|
||||
@@ -0,0 +1,32 @@
|
||||
#define x =
|
||||
#define double(a,b) int
|
||||
#define char k['a']
|
||||
#define union static struct
|
||||
|
||||
extern int floor;
|
||||
double (x1, y1) b,
|
||||
char x {sizeof(
|
||||
double(%s,%D)(*)())
|
||||
,};
|
||||
struct tag{int x0,*xO;}
|
||||
|
||||
*main(i, dup, signal) {
|
||||
{
|
||||
for(signal=0;*k *x * __FILE__ *i;) do {
|
||||
(printf(&*"'\",x); /*\n\\", (*((double(tag,u)(*)())&floor))(i)));
|
||||
goto _0;
|
||||
|
||||
_O: while (!(char <<x - dup)) { /*/*\*/
|
||||
union tag u x{4};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
while(b x 3, i); {
|
||||
char x b,i;
|
||||
_0:if(b&&k+
|
||||
sin(signal) / * ((main) (b)-> xO));/*}
|
||||
;
|
||||
}
|
||||
|
||||
*/}}}
|
||||
@@ -0,0 +1,30 @@
|
||||
<h1>Second place award</h1>
|
||||
|
||||
<p>Dave Decot</p>
|
||||
|
||||
<h2>Compile with:</h2>
|
||||
|
||||
<pre><code>cc decot.c -o decot -lm
|
||||
</code></pre>
|
||||
|
||||
<h2>Judges' comments:</h2>
|
||||
|
||||
<p>Some new compilers disliked line 15 of the source, so we changed it from:</p>
|
||||
|
||||
<pre><code>for(signal=0;*k * x * __FILE__ *i;) do {
|
||||
</code></pre>
|
||||
|
||||
<p>to:</p>
|
||||
|
||||
<pre><code>for(signal=0;*k *x * __FILE__ *i;) do {
|
||||
</code></pre>
|
||||
|
||||
<p>This program prints out a string of garbage.</p>
|
||||
|
||||
<p>The judges also offer this one comment: understand comments!</p>
|
||||
|
||||
<p>Copyright © 1984, Landon Curt Noll.
|
||||
All Rights Reserved. Permission for personal, educational or non-profit use is
|
||||
granted provided this this copyright and notice are included in its entirety
|
||||
and remains unaltered. All other uses must receive prior permission in writing
|
||||
from both Landon Curt Noll and Larry Bassel.</p>
|
||||
@@ -0,0 +1,27 @@
|
||||
# Second place award
|
||||
|
||||
Dave Decot
|
||||
|
||||
## Compile with:
|
||||
|
||||
cc decot.c -o decot -lm
|
||||
|
||||
## Judges' comments:
|
||||
|
||||
Some new compilers disliked line 15 of the source, so we changed it from:
|
||||
|
||||
for(signal=0;*k * x * __FILE__ *i;) do {
|
||||
|
||||
to:
|
||||
|
||||
for(signal=0;*k *x * __FILE__ *i;) do {
|
||||
|
||||
This program prints out a string of garbage.
|
||||
|
||||
The judges also offer this one comment: understand comments!
|
||||
|
||||
Copyright (c) 1984, Landon Curt Noll.
|
||||
All Rights Reserved. Permission for personal, educational or non-profit use is
|
||||
granted provided this this copyright and notice are included in its entirety
|
||||
and remains unaltered. All other uses must receive prior permission in writing
|
||||
from both Landon Curt Noll and Larry Bassel.
|
||||
@@ -0,0 +1,26 @@
|
||||
# %W% %G% %U%
|
||||
#
|
||||
# 1984 makefile
|
||||
#
|
||||
# Copyright (c) 1984, Landon Curt Noll.
|
||||
# All Rights Reserved. Permission for personal, educational or non-profit
|
||||
# use is granted provided this this copyright and notice are included in its
|
||||
# entirety and remains unaltered. All other uses must receive prior permission
|
||||
# from Landon Curt Noll and Larry Bassel.
|
||||
|
||||
|
||||
SHELL= /bin/sh
|
||||
WINNERS= laman
|
||||
|
||||
all: ${WINNERS}
|
||||
|
||||
laman: laman.c
|
||||
cc $? -o $@
|
||||
|
||||
clean:
|
||||
rm -f core
|
||||
clobber: clean
|
||||
rm -f ${WINNERS}
|
||||
|
||||
install: all
|
||||
@echo are you kidding'??'
|
||||
@@ -0,0 +1,34 @@
|
||||
<h1>Third place</h1>
|
||||
|
||||
<p>Mike Laman</p>
|
||||
|
||||
<h2>Judges' comments:</h2>
|
||||
|
||||
<p>Some new compilers dislike lines 6 and 10 of the source, so we changed
|
||||
them from:</p>
|
||||
|
||||
<pre><code>;++f)a[ b<<5|c] =d++,b+ =e;for( f=0;f<O
|
||||
<<5|c]^ =a[b<<5 |c]^=a[ (k-(b+1 ))<<5|c]
|
||||
</code></pre>
|
||||
|
||||
<p>to:</p>
|
||||
|
||||
<pre><code>;++f)a[ b<<5|c] =d++,b+= e;for( f=0;f<O
|
||||
<<5|c]^= a[b<<5 |c]^=a[ (k-(b+1 ))<<5|c]
|
||||
</code></pre>
|
||||
|
||||
<p>I hope you have the C beautifier! The program accepts ONE positive
|
||||
argument. Seeing is believing, so try things like:</p>
|
||||
|
||||
<pre><code>laman 4
|
||||
laman 9
|
||||
laman 16
|
||||
</code></pre>
|
||||
|
||||
<p>This code should run you in circles.</p>
|
||||
|
||||
<p>Copyright © 1984, Landon Curt Noll.
|
||||
All Rights Reserved. Permission for personal, educational or non-profit use is
|
||||
granted provided this this copyright and notice are included in its entirety
|
||||
and remains unaltered. All other uses must receive prior permission in writing
|
||||
from both Landon Curt Noll and Larry Bassel.</p>
|
||||
@@ -0,0 +1,31 @@
|
||||
# Third place
|
||||
|
||||
Mike Laman
|
||||
|
||||
## Judges' comments:
|
||||
|
||||
Some new compilers dislike lines 6 and 10 of the source, so we changed
|
||||
them from:
|
||||
|
||||
;++f)a[ b<<5|c] =d++,b+ =e;for( f=0;f<O
|
||||
<<5|c]^ =a[b<<5 |c]^=a[ (k-(b+1 ))<<5|c]
|
||||
|
||||
to:
|
||||
|
||||
;++f)a[ b<<5|c] =d++,b+= e;for( f=0;f<O
|
||||
<<5|c]^= a[b<<5 |c]^=a[ (k-(b+1 ))<<5|c]
|
||||
|
||||
I hope you have the C beautifier! The program accepts ONE positive
|
||||
argument. Seeing is believing, so try things like:
|
||||
|
||||
laman 4
|
||||
laman 9
|
||||
laman 16
|
||||
|
||||
This code should run you in circles.
|
||||
|
||||
Copyright (c) 1984, Landon Curt Noll.
|
||||
All Rights Reserved. Permission for personal, educational or non-profit use is
|
||||
granted provided this this copyright and notice are included in its entirety
|
||||
and remains unaltered. All other uses must receive prior permission in writing
|
||||
from both Landon Curt Noll and Larry Bassel.
|
||||
@@ -0,0 +1,12 @@
|
||||
a[900]; b;c;d=1 ;e=1;f; g;h;O; main(k,
|
||||
l)char* *l;{g= atoi(* ++l); for(k=
|
||||
0;k*k< g;b=k ++>>1) ;for(h= 0;h*h<=
|
||||
g;++h); --h;c=( (h+=g>h *(h+1)) -1)>>1;
|
||||
while(d <=g){ ++O;for (f=0;f< O&&d<=g
|
||||
;++f)a[ b<<5|c] =d++,b+= e;for( f=0;f<O
|
||||
&&d<=g; ++f)a[b <<5|c]= d++,c+= e;e= -e
|
||||
;}for(c =0;c<h; ++c){ for(b=0 ;b<k;++
|
||||
b){if(b <k/2)a[ b<<5|c] ^=a[(k -(b+1))
|
||||
<<5|c]^= a[b<<5 |c]^=a[ (k-(b+1 ))<<5|c]
|
||||
;printf( a[b<<5|c ]?"%-4d" :" " ,a[b<<5
|
||||
|c]);} putchar( '\n');}} /*Mike Laman*/
|
||||
@@ -0,0 +1,26 @@
|
||||
# %W% %G% %U%
|
||||
#
|
||||
# 1984 makefile
|
||||
#
|
||||
# Copyright (c) 1984, Landon Curt Noll.
|
||||
# All Rights Reserved. Permission for personal, educational or non-profit
|
||||
# use is granted provided this this copyright and notice are included in its
|
||||
# entirety and remains unaltered. All other uses must receive prior permission
|
||||
# from Landon Curt Noll and Larry Bassel.
|
||||
|
||||
|
||||
SHELL= /bin/sh
|
||||
WINNERS= mullender
|
||||
|
||||
all: ${WINNERS}
|
||||
|
||||
mullender: mullender.c
|
||||
cc $? -o $@
|
||||
|
||||
clean:
|
||||
rm -f core
|
||||
clobber: clean
|
||||
rm -f ${WINNERS}
|
||||
|
||||
install: all
|
||||
@echo are you kidding'??'
|
||||
@@ -0,0 +1,37 @@
|
||||
<h1>The Grand Prize</h1>
|
||||
|
||||
<p>Sjoerd Mullender</p>
|
||||
|
||||
<p>Robbert van Renesse</p>
|
||||
|
||||
<h2>Judges' comments:</h2>
|
||||
|
||||
<p>Without question, this C program is the most obfuscated C program that
|
||||
has ever been received! Like all great contest entries, they result
|
||||
in a change of rules for the following year. To prevent a flood of
|
||||
similar programs, we requested that programs be non machine specific.</p>
|
||||
|
||||
<p>This program was selected for the 1987 t-shirt collection.</p>
|
||||
|
||||
<blockquote><p>NOTE: If your machine is not a Vax-11 or pdp-11, this program will
|
||||
not execute correctly. In later years, machine dependent
|
||||
code was discouraged.</p></blockquote>
|
||||
|
||||
<p>The C startup routine (via crt0.o) transfers control to a location
|
||||
named main. In this case, main just happens to be in the data area.
|
||||
The array of shorts, which has been further obfuscated by use of
|
||||
different data types, just happens to form a meaningful set of PDP-11
|
||||
and Vax instructions. The first word is a PDP-11 branch instruction
|
||||
that branches to the rest of the PDP code. On the Vax main is called with
|
||||
the calls instruction which uses the first word of the subroutine as a
|
||||
mask of registers to be saved. So on the Vax the first word can be anything.
|
||||
The real Vax code starts with the second word. This small program
|
||||
makes direct calls to the write() Unix system call to produce a
|
||||
message on the screen. Can you guess what is printed? We knew you
|
||||
couldn’t! :-)</p>
|
||||
|
||||
<p>Copyright © 1984, Landon Curt Noll.
|
||||
All Rights Reserved. Permission for personal, educational or non-profit use is
|
||||
granted provided this this copyright and notice are included in its entirety
|
||||
and remains unaltered. All other uses must receive prior permission in writing
|
||||
from both Landon Curt Noll and Larry Bassel.</p>
|
||||
@@ -0,0 +1,37 @@
|
||||
# The Grand Prize
|
||||
|
||||
Sjoerd Mullender
|
||||
|
||||
Robbert van Renesse
|
||||
|
||||
## Judges' comments:
|
||||
|
||||
Without question, this C program is the most obfuscated C program that
|
||||
has ever been received! Like all great contest entries, they result
|
||||
in a change of rules for the following year. To prevent a flood of
|
||||
similar programs, we requested that programs be non machine specific.
|
||||
|
||||
This program was selected for the 1987 t-shirt collection.
|
||||
|
||||
> NOTE: If your machine is not a Vax-11 or pdp-11, this program will
|
||||
> not execute correctly. In later years, machine dependent
|
||||
> code was discouraged.
|
||||
|
||||
The C startup routine (via crt0.o) transfers control to a location
|
||||
named main. In this case, main just happens to be in the data area.
|
||||
The array of shorts, which has been further obfuscated by use of
|
||||
different data types, just happens to form a meaningful set of PDP-11
|
||||
and Vax instructions. The first word is a PDP-11 branch instruction
|
||||
that branches to the rest of the PDP code. On the Vax main is called with
|
||||
the calls instruction which uses the first word of the subroutine as a
|
||||
mask of registers to be saved. So on the Vax the first word can be anything.
|
||||
The real Vax code starts with the second word. This small program
|
||||
makes direct calls to the write() Unix system call to produce a
|
||||
message on the screen. Can you guess what is printed? We knew you
|
||||
couldn't! :-)
|
||||
|
||||
Copyright (c) 1984, Landon Curt Noll.
|
||||
All Rights Reserved. Permission for personal, educational or non-profit use is
|
||||
granted provided this this copyright and notice are included in its entirety
|
||||
and remains unaltered. All other uses must receive prior permission in writing
|
||||
from both Landon Curt Noll and Larry Bassel.
|
||||
@@ -0,0 +1,10 @@
|
||||
short main[] = {
|
||||
277, 04735, -4129, 25, 0, 477, 1019, 0xbef, 0, 12800,
|
||||
-113, 21119, 0x52d7, -1006, -7151, 0, 0x4bc, 020004,
|
||||
14880, 10541, 2056, 04010, 4548, 3044, -6716, 0x9,
|
||||
4407, 6, 5568, 1, -30460, 0, 0x9, 5570, 512, -30419,
|
||||
0x7e82, 0760, 6, 0, 4, 02400, 15, 0, 4, 1280, 4, 0,
|
||||
4, 0, 0, 0, 0x8, 0, 4, 0, ',', 0, 12, 0, 4, 0, '#',
|
||||
0, 020, 0, 4, 0, 30, 0, 026, 0, 0x6176, 120, 25712,
|
||||
'p', 072163, 'r', 29303, 29801, 'e'
|
||||
};
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
Copyright (c) 1984, Landon Curt Noll.
|
||||
All Rights Reserved. Permission for personal, educational or non-profit use is
|
||||
granted provided this this copyright and notice are included in its entirety
|
||||
and remains unaltered. All other uses must receive prior permission in writing
|
||||
from both Landon Curt Noll and Larry Bassel.
|
||||
|
||||
I'm sure you have all seen gross, or down right structurally obscene C
|
||||
source code before. Some people who deal with various parts of the
|
||||
UN*X source wonder if some folks try rather hard to produce such
|
||||
down right smelly code.
|
||||
|
||||
Now you have the chance to compete with the worst C hackers around
|
||||
by sending in your own obfuscated C program. Just follow the contest
|
||||
rules below:
|
||||
1) the source file must be no more than 512 bytes long
|
||||
|
||||
2) mail your source to: hplabs!nsc!chongo
|
||||
no later than April 11, 1984. entries posted to
|
||||
the net will NOT be accepted. please give your
|
||||
letter the subject of: obfuscated C code contest.
|
||||
|
||||
3) winning entries will be posted to net.lang.c after
|
||||
April 12, 1894. (thats the prize folks)
|
||||
|
||||
4) indicate your net address in the text of your
|
||||
entry, this will be used to give credit unless
|
||||
you indicate that you want to remain anonymous.
|
||||
|
||||
5) entries must be of original work. (dont send anything
|
||||
that might upset Big Brother Bell) all entries are
|
||||
public domain. (who would want to own them anyway?!)
|
||||
|
||||
Entries will be judged for: violations of structured programming, non-clarity,
|
||||
and use of "by the K&R book" C. (use of local mods to C are not encouraged)
|
||||
extra credit if they can be compiled using the 4.2BSD C compiler on our VAX 780,
|
||||
but dont let the lack of a 780 or 4.2 discourage you!
|
||||
|
||||
chongo <flames about the contest will be kindly #ifdef'ed out> /\CC/\
|
||||
|
||||
UN*X is a trademark of Usenet Hackers Anonymous
|
||||
|
||||
WARNING: The rules and mailing address for the contest change from year
|
||||
to year. Be sure that you consult the current set of rules
|
||||
before submitting entries.
|
||||
Reference in new issue
Block a user