home *** CD-ROM | disk | FTP | other *** search
- Subject: v09i020: Previous "obfuscated C" winners
- Newsgroups: mod.sources
- Approved: rs@mirror.TMC.COM
-
- Submitted by: amdahl!chongo (Landon Curt Noll)
- Mod.sources: Volume 9, Issue 20
- Archive-name: old.bad.code
-
- [ There's been lots of bad code posted to the net in the past; time
- to get some of it into the archives. :-) --r$ ]
-
-
- International Obfuscated C Code Contest Winners for 1984, 1985, 1986
- This is a shell archive. Remove anything before this line, then unpack
- it by saving it in a file and typing "sh file".
-
- SEE THE README FILE FOR DETAILS ABOUT THESE SOURCES
-
- --------cut--------here---------
- echo x - README
- cat > "README" << '//E*O*F README//'
-
- This shar file contains the winning entries of the International
- Obfuscated C Code Contest for the years 1984 thru 1986.
-
- Each contest starts near March 15. The official start consists of the
- posting of new contest rules in:
-
- comp.lang.c comp.unix.wizards
-
- For those people who do not read the above mentioned groups, a short note is
- also posted to mod.announce stating where the new rules have been posted.
- Rules may also be obtained by sending Email to (after March 15th):
-
- judge@amdahl.com -or- {decwrl,sun,seismo,hplabs}!amdahl!judge
-
- The winners below are given to serve as examples. It should be noted
- that contest rules change from year to year, so some the previous winning
- entries would be disqualified under some rules. Since some obfuscation
- ideas get old (such as #define-ing something to death), some winning
- might be eliminated in the first judging round of another year. All this can
- be summed up in the phrase: "read the new rules before you submit an entry".
-
- NOTE: You are free to distribute/use these programs as long they are not
- used for profit, and as long author's name stays attached to the
- source code.
-
- Enjoy
-
- chongo <Landon Curt Noll, chongo@amdahl.COM> /\cc/\
-
- //E*O*F README//
-
- echo x - 1984
- cat > "1984" << '//E*O*F 1984//'
- <dis>honorable mention:
- ------------------------------------------------------------------------------
- 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);}
- -----------------------------------------------------------------------------
- anonymous entry (too embarrassed that he/she could write such trash i guess)
-
-
-
- Third place:
- ---------------------------------------------------------------------------
- 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*/
- ----------------------------------------------------------------------------
- Mike Laman
- UUCP: {ucbvax,philabs,sdccsu3,sdcsla}!sdcsvax!laman
- P.S. I hope you have the C beautifier! The program accepts ONE positive
- argument. Seeing is believing! Try something like "cmd 37" for an
- example. <ed: also try cmd 4; cmd 9; cmd 16; cmd 25; cmd 36; ...>
-
-
-
- Second place award:
- ---------------------------------------------------------------------------
- #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));/*}
- ;
- }
-
- */}}}
- -------------------------------------------------------------------------------
- By: Dave Decot hplabs!hpda!hpdsd!decot
-
-
-
- First place award goes to:
- ------------------------------------------------------------------------
- /* Portable between VAX11 && PDP11 */
-
- 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'
- };
- ------------------------------------------------------------------------------
- Sjoerd Mullender
- Robbert van Renesse
- Both @ Vrije Universiteit, Amsterdam, the Netherlands.
- ..!decvax!mcvax!vu44!{sjoerd,cogito}
- <ed: try this on your local VAX or pdp-11>
- //E*O*F 1984//
-
- echo x - 1985
- cat > "1985" << '//E*O*F 1985//'
- Since people often request the previous year's winners at the start of
- the contest, I include the 1985 winners below. Please keep in mind that
- the rules have chanmged between 1985 and 1986.
-
- ------------------------------------------------------------------------
-
- The following programs were judged good (bad? wierd?) enough to win
- awards. This year, rather than trying to rank the programs in order of
- obfuscatedness, we gave a single award in each of 4 categories and a
- grand prize.
-
- ________________________________________________________________________
-
- 1. The most obscure program:
- (submitted by Lennart Augustsson <seismo!mcvax!enea!chalmers!augustss> )
-
- #define p struct c
- #define q struct b
- #define h a->a
- #define i a->b
- #define e i->c
- #define o a=(*b->a)(b->b,b->c)
- #define s return a;}q*
- #define n (d,b)p*b;{q*a;p*c;
- #define z(t)(t*)malloc(sizeof(t))
- q{int a;p{q*(*a)();int b;p*c;}*b;};q*u n a=z(q);h=d;i=z(p);i->a=u;i->b=d+1;s
- v n c=b;do o,b=i;while(!(h%d));i=c;i->a=v;i->b=d;e=b;s
- w n o;c=i;i=b;i->a=w;e=z(p);e->a=v;e->b=h;e->c=c;s
- t n for(;;)o,main(-h),b=i;}main(b){p*a;if(b>0)a=z(p),h=w,a->c=z(p),a->c->a=u,a->c->b=2,t(0,a);putchar(b?main(b/2),-b%2+'0':10);}
-
- ________________________________________________________________________
-
- 2. The worst abuse of the C preprocessor:
- (submitted by Col. G. L. Sicherman <decvax!sunybcs!colonel> )
-
- #define C_C_(_)~' '&_
- #define _C_C(_)('\b'b'\b'>=C_C>'\t'b'\n')
- #define C_C _|_
- #define b *
- #define C /b/
- #define V _C_C(
- main(C,V)
- char **V;
- /* C program. (If you don't
- * understand it look it
- */ up.) (In the C Manual)
- {
- char _,__;
- while (read(0,&__,1) & write((_=(_=C_C_(__),C)),
- _C_,1)) _=C-V+subr(&V);
- }
- subr(C)
- char *C;
- {
- C="Lint says "argument Manual isn't used." What's that
- mean?"; while (write((read(C_C('"'-'/*"'/*"*/))?__:__-_+
- '\b'b'\b'|((_-52)%('\b'b'\b'+C_C_('\t'b'\n'))+1),1),&_,1));
- }
-
- [ This program confused the C preprocessor so badly that it left some
- comments in the preprocessed version. Also, lint DID complain that
- "argument Manual isn't used". ]
-
- ________________________________________________________________________
-
- 3. The strangest appearing program:
- (submitted by Ed Lycklama <decvax!cca!ima!ism780!ed> )
-
- #define o define
- #o ___o write
- #o ooo (unsigned)
- #o o_o_ 1
- #o _o_ char
- #o _oo goto
- #o _oo_ read
- #o o_o for
- #o o_ main
- #o o__ if
- #o oo_ 0
- #o _o(_,__,___)(void)___o(_,__,ooo(___))
- #o __o (o_o_<<((o_o_<<(o_o_<<o_o_))+(o_o_<<o_o_)))+(o_o_<<(o_o_<<(o_o_<<o_o_)))
- o_(){_o_ _=oo_,__,___,____[__o];_oo ______;_____:___=__o-o_o_; _______:
- _o(o_o_,____,__=(_-o_o_<___?_-o_o_:___));o_o(;__;_o(o_o_,"\b",o_o_),__--);
- _o(o_o_," ",o_o_);o__(--___)_oo _______;_o(o_o_,"\n",o_o_);______:o__(_=_oo_(
- oo_,____,__o))_oo _____;}
-
- [it looks like tty noise]
-
- ________________________________________________________________________
-
- 4. The best "small" program:
- (submitted by Jack Applin [with help from Robert Heckendorn]
- <hplabs!hp-dcd!jack> )
-
- main(v,c)char**c;{for(v[c++]="Hello, world!\n)";(!!c)[*c]&&(v--||--c&&execlp(*c,*c,c[!!c]+!!c,!c));**c=!c)write(!!*c,*c,!!**c);}
-
- ________________________________________________________________________
-
- 5. The grand prize (most well-rounded in confusion):
- (submitted by Carl Shapiro <sdcrdcf!otto!carl> )
-
- #define P(X)j=write(1,X,1)
- #define C 39
- int M[5000]={2},*u=M,N[5000],R=22,a[4],l[]={0,-1,C-1,-1},m[]={1,-C,-1,C},*b=N,
- *d=N,c,e,f,g,i,j,k,s;main(){for(M[i=C*R-1]=24;f|d>=b;){c=M[g=i];i=e;for(s=f=0;
- s<4;s++)if((k=m[s]+g)>=0&&k<C*R&&l[s]!=k%C&&(!M[k]||!j&&c>=16!=M[k]>=16))
- a[f++]=s;if(f){f=M[e=m[s=a[rand()/(1+2147483647/f)]]+g];j=j<f?f:j;f+=c&-16*!j;
- M[g]=c|1<<s;M[*d++=e]=f|1<<(s+2)%4;}else e=d>b++?b[-1]:e;}P(" ");for(s=C;--s;
- P("_"))P(" ");for(;P("\n"),R--;P("|"))for(e=C;e--;P("_ "+(*u++/8)%2))
- P("| "+(*u/4)%2);}
-
- [As submitted, this program was 3 lines (2 of defines and 1 of code).
- To make news/mail/etc. happy we split the last line into 7. Join them
- back without the newlines to get the original version]
-
- ----------------------------------------------------------------------
-
- Congratulations to the winners (and anyone else who wasted their time
- creating such wierd programs).
-
- For your own enjoyment, you can figure out what these programs do. Or
- if this is too hard, compile and run them! All of these compiled and
- ran on the vax. Lint was even happy with most of the entries.
- //E*O*F 1985//
-
- echo x - 1986
- cat > "1986" << '//E*O*F 1986//'
-
-
- 1986 International Obfuscated C Code Contest Winners
-
-
- We recommend that you first try to understand the program from just reading
- the source. If you are still confused try sending the source through the C
- Preprocessor (/lib/cpp). If you are still confused, we suggest you read the
- judges comments and run each program. Last, if you are still confused then
- you are not alone!
-
-
- ===============================================================================
- Best layout:
-
- Eric Marshall
- System Development Corporation, a Burroughs Company
- P.O. Box 517
- Paoli, PA.
- 19301
-
- [Ed: some compilers have problems with this, see Judges comments below]
- sdcrdcf!burdvax!eric {sjuvax,ihnp4,akgua,cadre}!psuvax1!burdvax!eric
- -------------------------------------------------------------------------------
- extern int
- errno
- ;char
- grrr
- ;main( r,
- argv, argc ) int argc ,
- r ; char *argv[];{int P( );
- #define x int i, j,cc[4];printf(" choo choo\n" ) ;
- x ;if (P( ! i ) | cc[ ! j ]
- & P(j )>2 ? j : i ){* argv[i++ +!-i]
- ; for (i= 0;; i++ );
- _exit(argv[argc- 2 / cc[1*argc]|-1<<4 ] ) ;printf("%d",P(""));}}
- P ( a ) char a ; { a ; while( a > " B "
- /* - by E ricM arsh all- */); }
- ===============================================================================
-
-
-
- ===============================================================================
- Worst abuse of the C preprocessor:
-
- Jim Hague
- University of Kent at Canterbury
- Canterbury, Kent
- UK
-
- ..mcvax!ukc!jmh
- -------------------------------------------------------------------------------
- #define DIT (
- #define DAH )
- #define __DAH ++
- #define DITDAH *
- #define DAHDIT for
- #define DIT_DAH malloc
- #define DAH_DIT gets
- #define _DAHDIT char
- _DAHDIT _DAH_[]="ETIANMSURWDKGOHVFaLaPJBXCYZQb54a3d2f16g7c8a90l?e'b.s;i,d:"
- ;main DIT DAH{_DAHDIT
- DITDAH _DIT,DITDAH DAH_,DITDAH DIT_,
- DITDAH _DIT_,DITDAH DIT_DAH DIT
- DAH,DITDAH DAH_DIT DIT DAH;DAHDIT
- DIT _DIT=DIT_DAH DIT 81 DAH,DIT_=_DIT
- __DAH;_DIT==DAH_DIT DIT _DIT DAH;__DIT
- DIT'\n'DAH DAH DAHDIT DIT DAH_=_DIT;DITDAH
- DAH_;__DIT DIT DITDAH
- _DIT_?_DAH DIT DITDAH DIT_ DAH:'?'DAH,__DIT
- DIT' 'DAH,DAH_ __DAH DAH DAHDIT DIT
- DITDAH DIT_=2,_DIT_=_DAH_; DITDAH _DIT_&&DIT
- DITDAH _DIT_!=DIT DITDAH DAH_>='a'? DITDAH
- DAH_&223:DITDAH DAH_ DAH DAH; DIT
- DITDAH DIT_ DAH __DAH,_DIT_ __DAH DAH
- DITDAH DIT_+= DIT DITDAH _DIT_>='a'? DITDAH _DIT_-'a':0
- DAH;}_DAH DIT DIT_ DAH{ __DIT DIT
- DIT_>3?_DAH DIT DIT_>>1 DAH:'\0'DAH;return
- DIT_&1?'-':'.';}__DIT DIT DIT_ DAH _DAHDIT
- DIT_;{DIT void DAH write DIT 1,&DIT_,1 DAH;}
- ===============================================================================
-
-
-
- ===============================================================================
- Best one liner:
-
- Jan Stein
- Chalmers Computer Society
- Gothenburg
- Sweden
-
- ..!mcvax!enea!chalmers!gustaf!cd-jan
-
- [The single line has been split to avoid any problems with E-mailers]
- -------------------------------------------------------------------------------
- typedef char*z;O;o;_=33303285;main(b,Z)z Z;{b=(b>=0||(main(b+1,Z+1),
- *Z=O%(o=(_%25))+'0',O/=o,_/=25))&&(b<1||(O=time(&b)%0250600,
- main(~5,*(z*)Z),write(1,*(z*)Z,9)));}
- ===============================================================================
-
-
-
- ===============================================================================
- Most adaptable program:
-
- Jack Applin
- Hewlett-Packard
- Ft. Collins
- Colorado
- USA
-
- hplabs!hpfcdc!jack
- -------------------------------------------------------------------------------
- cat =13 /*/ >/dev/null 2>&1; echo "Hello, world!"; exit
- *
- * This program works under cc, f77, and /bin/sh.
- *
- */; main() {
- write(
- cat-~-cat
- /*,'(
- */
- ,"Hello, world!"
- ,
- cat); putchar(~-~-~-cat); } /*
- ,)')
- end
- */
- ===============================================================================
-
-
-
- ===============================================================================
- Most useful obfuscation:
-
- Walter Bright
- <Postal address not given>
-
- decwrl!sun!fluke!uw-beaver!entropy!dataio!bright
- -------------------------------------------------------------------------------
- #include <stdio.h>
- #define O1O printf
- #define OlO putchar
- #define O10 exit
- #define Ol0 strlen
- #define QLQ fopen
- #define OlQ fgetc
- #define O1Q abs
- #define QO0 for
- typedef char lOL;
-
- lOL*QI[] = {"Use:\012\011dump file\012","Unable to open file '\x25s'\012",
- "\012"," ",""};
-
- main(I,Il)
- lOL*Il[];
- { FILE *L;
- unsigned lO;
- int Q,OL[' '^'0'],llO = EOF,
-
- O=1,l=0,lll=O+O+O+l,OQ=056;
- lOL*llL="%2x ";
- (I != 1<<1&&(O1O(QI[0]),O10(1011-1010))),
- ((L = QLQ(Il[O],"r"))==0&&(O1O(QI[O],Il[O]),O10(O)));
- lO = I-(O<<l<<O);
- while (L-l,1)
- { QO0(Q = 0L;((Q &~(0x10-O))== l);
- OL[Q++] = OlQ(L));
- if (OL[0]==llO) break;
- O1O("\0454x: ",lO);
- if (I == (1<<1))
- { QO0(Q=Ol0(QI[O<<O<<1]);Q<Ol0(QI[0]);
- Q++)O1O((OL[Q]!=llO)?llL:QI[lll],OL[Q]);/*"
- O10(QI[1O])*/
- O1O(QI[lll]);{}
- }
- QO0 (Q=0L;Q<1<<1<<1<<1<<1;Q+=Q<0100)
- { (OL[Q]!=llO)? /* 0010 10lOQ 000LQL */
- ((D(OL[Q])==0&&(*(OL+O1Q(Q-l))=OQ)),
- OlO(OL[Q])):
- OlO(1<<(1<<1<<1)<<1);
- }
- O1O(QI[01^10^9]);
- lO+=Q+0+l;}
- }
- D(l) { return l>=' '&&l<='\~';
- }
- ===============================================================================
-
-
-
- ===============================================================================
- Best simple task performed in a complex way:
-
- Bruce Holloway
- Digital Research, Inc.
- Monterey, CA
- USA
-
- (ucbvax!hplabs!amdahl!drivax!holloway)
- -------------------------------------------------------------------------------
- #include "stdio.h"
- #define e 3
- #define g (e/e)
- #define h ((g+e)/2)
- #define f (e-g-h)
- #define j (e*e-g)
- #define k (j-h)
- #define l(x) tab2[x]/h
- #define m(n,a) ((n&(a))==(a))
-
- long tab1[]={ 989L,5L,26L,0L,88319L,123L,0L,9367L };
- int tab2[]={ 4,6,10,14,22,26,34,38,46,58,62,74,82,86 };
-
- main(m1,s) char *s; {
- int a,b,c,d,o[k],n=(int)s;
- if(m1==1){ char b[2*j+f-g]; main(l(h+e)+h+e,b); printf(b); }
- else switch(m1-=h){
- case f:
- a=(b=(c=(d=g)<<g)<<g)<<g;
- return(m(n,a|c)|m(n,b)|m(n,a|d)|m(n,c|d));
- case h:
- for(a=f;a<j;++a)if(tab1[a]&&!(tab1[a]%((long)l(n))))return(a);
- case g:
- if(n<h)return(g);
- if(n<j){n-=g;c='D';o[f]=h;o[g]=f;}
- else{c='\r'-'\b';n-=j-g;o[f]=o[g]=g;}
- if((b=n)>=e)for(b=g<<g;b<n;++b)o[b]=o[b-h]+o[b-g]+c;
- return(o[b-g]%n+k-h);
- default:
- if(m1-=e) main(m1-g+e+h,s+g); else *(s+g)=f;
- for(*s=a=f;a<e;) *s=(*s<<e)|main(h+a++,(char *)m1);
- }
- }
- ===============================================================================
-
-
-
- ===============================================================================
- Best non-simple performed in a complex way:
-
- Lennart Augustsson
- Dept. of Comp. Sci.
- Chalmers University of Technology,
- 412 96 Gothenburg
- Sweden
-
- augustss@chalmers.{uucp,csnet}
- -------------------------------------------------------------------------------
- typedef struct n{int a:3,
- b:29;struct n*c;}t;t*
- f();r(){}m(u)t*u;{t*w,*z;
- z=u->c,q(z),u->b=z->b*10,
- w=u->c=f(),w->a=1,w->c=z->
- c;}t*k;g(u)t*u;{t*z,*v,*p,
- *x;z=u->c,q(z),u->b=z->b,v
- =z->c,z->a=2,x=z->c=f(),x
- ->a=3,x->b=2,p=x->c=f(),p
- ->c=f(),p->c->a=1,p->c->c=
- v;}int i;h(u)t*u;{t*z,*v,*
- w;int c,e;z=u->c,v=z->c,q(
- v),c=u->b,e=v->b,u->b=z->b
- ,z->a=3,z->b=c+1,e+9>=c&&(
- q(z),e=z->b,u->b+=e/c,w=f(
- ),w->b=e%c,w->c=z->c,u->c=
- w);}int(*y[4])()={r,m,g,h};
- char *sbrk();main(){t*e,*p,*o;
- o=f(),o->c=o,o->b=1,e=f(),
- e->a=2,p=e->c=f(),p->b=2,
- p->c=o,q(e),e=e->c,(void)write
- (1,"2.",2);for(;;e=e->c){q(e),
- e->b=write(1,&e->b["0123456789"],
- 1);}}t*f(){return i||(i=1000,
- k=(t*)sbrk(i*sizeof(t))),k+--i;
- }q(p)t*p;{(*y[p->a])(p);}
- ===============================================================================
-
-
-
- ===============================================================================
- Most illegible code:
-
- Michael H. Pawka
- Naval Ocean Systems Center
- San Diego, Ca
- 92152
-
- DDN - PAWKA@NOSC-TECR.ARPA
- -------------------------------------------------------------------------------
- #include "stdio.h"
- #define xyxx char
- #define xyyxx putchar
- #define xyyyxx while
- #define xxyyyx int
- #define xxxyyx main
- #define xyxyxy if
- #define xyyxyy '\n'
- xyxx *xyx [] = {
- "]I^x[I]k\\I^o[IZ~\\IZ~[I^|[I^l[I^j[I^}[I^n[I]m\\I]h",
- "]IZx\\IZx[IZk\\IZk[IZo_IZ~\\IZ~[IZ|_IZl_IZj\\IZj]IZ}]IZn_IZm\\IZm_IZh",
- "]IZx\\IZx[I^k[I\\o]IZ~\\IZ~\\I]|[IZl_I^j]IZ}]I^n[IZm\\IZm_IZh",
- "]IZx\\IZx[IZk\\IZk[IZo_IZ~\\IZ~_IZ|[IZl_IZj\\IZj]IZ}]IZn_IZm\\IZm]IZh",
- "]I^x[I]k\\IZo_I^~[I^|[I^l[IZj\\IZj]IZ}]I^n[I]m^IZh",'\0'};/*xyyxyxyxxxyxxxyy*/
- xyxx *xyyx; xxyyyx xyyyx,xyyyyx,xyyyyyx=0x59,xyyyyyyx=0x29,/*yxxyxyyyxxyyyxyy*/
- xxyx=0x68;xxxyyx(){xyyyyx=0;xyyyxx(xyx[xyyyyx]){xyyx=xyx[xyyyyx++];/*xyyyxxyx*/
- xyyyxx(*xyyx){xyyyx= *xyyx++-xyyyyyx;xyyyxx(xyyyx--)xyyxx(*xyyx-xyyyyyyx);/*x*/
- xyxyxy(*xyyx==xxyx)xyyxx(xyyxyy);*xyyx++;}}}/*xyxyxyyyyxxyxxxyyyxyyyxyxxyyy*/
- ===============================================================================
-
-
- ===============================================================================
- The grand prize (most well-rounded in confusion):
-
- Larry Wall
- System Development Corporation
- Santa Monica
- California
- US of A
-
- [ed: modified to run on Sys V, see comments below]
- {allegra,burdvax,cbosgd,hplabs,ihnp4,sdcsvax}!sdcrdcf!lwall
- -------------------------------------------------------------------------------
- #define _c(C)_ (C)&('|'+3):c_()(C)>>('\n'-3) __; /**/
- #define C char*
- #define keyboard ",,B3-u;.(&*5., /(b*(1\036!a%\031m,,,,,\r\n"
- #define main(o,oo)oo(o){
- #define _ ;case
- C
- #define c_(cc)c cc=
- #define C_(sand)_O(sand)witch
- o=keyboard;
- #define __ ;break;
- C
- ccc(
- cc)
- C
- cc;
- {
- C
- cccc=
- cc;int
- #ifndef lint
- #define keyboard "dijs QH.soav Vdtnsaoh DmfpaksoQz;kkt oa, -dijs"
- #endif
- c;
- main(;c_(=(*cc);*cc++)c,for);
- #define _O(s)s
- main(0xb+(c>>5),C_(s))
- _'\v'
- :__ _'\f':
- main(c,C_(s));
- _c(8098)_c(6055)_c(14779)_c(10682)
- #define O_(O)_O(O)stem(ccc(
- _c(15276)_c(11196)_c(15150)
- #define _C ;return
- _c(11070)_c(15663)_c(11583)
- }
- __
- default
- :c_(+)o[c&__LINE__-007];
- main(c_(-)'-'-1,C_(s))_
- 0214
- :_
- 0216
- :c_(+)025 _
- 0207
- :c_(-)4 _
- 0233
- :c_(+)' '-1;
- }}c_(&)'z'+5;
- }_C cccc;
- }main(,cc)
- C
- #define O write(1,
- c="O";
- O_(sy) keyboard));
- main(;;,for);
- read(0,
- c,1);*
- c_(&)'~'+1
- ;O ccc(
- c),
- '\0');
- main(*c,
- C_(s));_
- 4
- :O_(sy)";kkt -oa, dijszdijs QQ"))_C
- _
- 13
- :O o+' ',
- 3
- )
- #undef main
- __ _ 127:O"\b \b",3)__
- default
- :O
- c,1)
- __}}}main(){
- cc();
- }
- ===============================================================================
-
-
- ===============================================================================
- Judges comments:
-
- Best layout:
- Compile and execute. Known to give some C compilers a problem.
- If your C compiler is one of them, then just paste the source
- picture up on your wall.
-
- Worst abuse of the C preprocessor:
- Compile and execute. Feed it chars from standard input.
- Works with international standard rather than the US standard.
- Passes lint.
-
- Best one liner:
- Join the 3 lines into one line. Compile and link to the
- filename 'a.out'. Execute it the following 2 character
- argument: ^M^L (Return/Formfeed). Passes lint.
-
- Most adaptable program:
- Compile and/or execute in the methods documented.
-
- Most useful obfuscation:
- Compile and execute. Give a filename as an argument.
-
- Best simple task performed in a complex way:
- Compile and execute and understand.
-
- Best non-simple performed in a complex way:
- Compile and execute. Works best with an infinite amount of
- stack space. (otherwise a 'segmentation violation' eventually
- occurs) Do an 'unlimit stacksize' command if your system
- allows it. Passes lint.
-
- Most illegible code:
- Read, compile and execute.
-
- The grand prize (most well-rounded obfuscation):
- Compile and execute. Feed it chars from a standard input.
- The C compiler documents this program during compilation.
-
- The Sys V /lib/cpp does not handle with the first '#define' line
- in this program. The ';' was added to allow both BSD and Sys V
- machines to compile it. I.e.,:
-
- < #define _c(C)_ (C)&('|'+3):c_()(C)>>('\n'-3) __ /**/
- ---
- > #define _c(C)_ (C)&('|'+3):c_()(C)>>('\n'-3) __; /**/
-
- Next year, we would like to obtain help in running 'nominated' programs
- in different machines. We will solicit such help near the proper time.
- ===============================================================================
-
- We received over twice the number of entries this year, than we did
- last year. Judging this year was made more difficult due to the number
- of very good entries received. We elected to break down several of the
- contest categories rather than exclude some programs.
-
- Thank you to all persons who entered the contest. We hope you will try
- again next year.
-
- This years winning programs will be published in the Micro/Systems Journal
- and perhaps in an up comming book. See ...!seismo!nbs-amrf!libes for
- details about the Journal.
-
- chongo <Landon Curt Noll - decwrl!nsc!chongo> /\oo/\
- Larry Bassel <decwrl!nsc!oblio!lab>
-
- NOTE: chongo is now at decwrl!amdahl!chongo
- //E*O*F 1986//
-
- exit 0
-