home *** CD-ROM | disk | FTP | other *** search
- Subject: v15i108: International Obfuscated C Code Contest, Part04/07
- Newsgroups: comp.sources.unix
- Sender: sources
- Approved: rsalz@uunet.UU.NET
-
- Submitted-by: Landon Curt Noll <chongo@uts.amdahl.com>
- Posting-number: Volume 15, Issue 108
- Archive-name: ioccc/part04
-
- # This is a shell archive. Remove anything before this line, then
- # unpack it by saving it in a file and typing "sh file". (Files
- # unpacked will be owned by you and have default permissions.)
- #
- # This archive contains:
- #
- # ./1985/Makefile ./1985/README ./1985/applin.c ./1985/applin.hint
- # ./1985/august.c ./1985/august.hint ./1985/lycklama.c
- # ./1985/lycklama.hint ./1985/rules ./1985/shapiro.c ./1985/shapiro.hint
- # ./1985/sicherman.c ./1985/sicherman.hint
-
- echo x - ./1985/Makefile
- sed -e 's/^X//' > "./1985/Makefile" << '//E*O*F ./1985/Makefile//'
- X# %W% %G% %U%
- X#
- X# 1985 makefile
- X
- XSHELL=/bin/sh
- XWINNERS= applin august lycklama shapiro sicherman
- X
- Xall: ${WINNERS}
- X
- Xapplin: applin.c
- X cc $? -o $@
- Xaugust: august.c
- X cc $? -o $@
- Xlycklama: lycklama.c
- X cc $? -o $@
- Xshaprio: shaprio.c
- X cc $? -o $@
- Xscherman: sicherman.c
- X cc $? -o $@
- X
- Xclean:
- X rm -f core
- Xclobber: clean
- X rm -f ${WINNERS}
- X
- Xinstall: all
- X @echo are you kidding'??'
- //E*O*F ./1985/Makefile//
-
- echo x - ./1985/README
- sed -e 's/^X//' > "./1985/README" << '//E*O*F ./1985/README//'
- XIn 1985, the second Obfuscated C Code Contest was held. Hints against
- Xmachine dependent code were added to the rules to avoid another 1984
- Xstyle winner. Rules and results were posted to net.lang.c and
- Xnet.unix-wizards. Larry Bassel was invited to help in the judging.
- XAwards were given to 5 classes of programs since we were unable to
- Xselect only the best 4.
- //E*O*F ./1985/README//
-
- echo x - ./1985/applin.c
- sed -e 's/^X//' > "./1985/applin.c" << '//E*O*F ./1985/applin.c//'
- Xmain(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);}
- //E*O*F ./1985/applin.c//
-
- echo x - ./1985/applin.hint
- sed -e 's/^X//' > "./1985/applin.hint" << '//E*O*F ./1985/applin.hint//'
- XBest one liner: <hp-dcd!jack> Jack Applin [with help from Robert Heckendorn]
- X
- XOne liner programs are short but twisted. This "Hello, World" version
- Xcertainly takes its time saying hello.
- //E*O*F ./1985/applin.hint//
-
- echo x - ./1985/august.c
- sed -e 's/^X//' > "./1985/august.c" << '//E*O*F ./1985/august.c//'
- X#define p struct c
- X#define q struct b
- X#define h a->a
- X#define i a->b
- X#define e i->c
- X#define o a=(*b->a)(b->b,b->c)
- X#define s return a;}q*
- X#define n (d,b)p*b;{q*a;p*c;
- X#define z(t)(t*)malloc(sizeof(t))
- Xq{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
- Xv n c=b;do o,b=i;while(!(h%d));i=c;i->a=v;i->b=d;e=b;s
- Xw n o;c=i;i=b;i->a=w;e=z(p);e->a=v;e->b=h;e->c=c;s
- Xt 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,
- Xa->c->b=2,t(0,a);putchar(b?main(b/2),-b%2+'0':10);}
- //E*O*F ./1985/august.c//
-
- echo x - ./1985/august.hint
- sed -e 's/^X//' > "./1985/august.hint" << '//E*O*F ./1985/august.hint//'
- XThe most obscure program<chalmers!augustss>: Lennart Augustsson
- X
- XAn interesting use of a recursive call to main. Compile and execute
- Xwithout args. What is the initial value of b, and does it alter the
- Xaction of the program?
- X
- XIf you let it, the program will continue to print a numerical sequence
- X(can you guess in what base it is printed?) until you run out of
- Xmemory or until they sell your computer, which ever comes first.
- //E*O*F ./1985/august.hint//
-
- echo x - ./1985/lycklama.c
- sed -e 's/^X//' > "./1985/lycklama.c" << '//E*O*F ./1985/lycklama.c//'
- X#define o define
- X#o ___o write
- X#o ooo (unsigned)
- X#o o_o_ 1
- X#o _o_ char
- X#o _oo goto
- X#o _oo_ read
- X#o o_o for
- X#o o_ main
- X#o o__ if
- X#o oo_ 0
- X#o _o(_,__,___)(void)___o(_,__,ooo(___))
- X#o __o (o_o_<<((o_o_<<(o_o_<<o_o_))+(o_o_<<o_o_)))+(o_o_<<(o_o_<<(o_o_<<o_o_)))
- Xo_(){_o_ _=oo_,__,___,____[__o];_oo ______;_____:___=__o-o_o_; _______:
- X_o(o_o_,____,__=(_-o_o_<___?_-o_o_:___));o_o(;__;_o(o_o_,"\b",o_o_),__--);
- X_o(o_o_," ",o_o_);o__(--___)_oo _______;_o(o_o_,"\n",o_o_);______:o__(_=_oo_(
- Xoo_,____,__o))_oo _____;}
- //E*O*F ./1985/lycklama.c//
-
- echo x - ./1985/lycklama.hint
- sed -e 's/^X//' > "./1985/lycklama.hint" << '//E*O*F ./1985/lycklama.hint//'
- XThe strangest appearing program: <ism780!ed> Ed Lycklama
- X
- XRun the program without any arguments. Type in some very long lines
- Xand notice how it redisplays it.
- X
- XThe program itself looks like tty noise. Notice that even `define' in
- X#define can be defined.
- //E*O*F ./1985/lycklama.hint//
-
- echo x - ./1985/rules
- sed -e 's/^X//' > "./1985/rules" << '//E*O*F ./1985/rules//'
- XWARNING: The rules and mailing address for the contest change from year
- X to year. Be sure that you consult the current set of rules
- X before submitting entries.
- X--------------------------------------------------------------------------------
- X
- XIt is time once again for the net wide Obfuscated C code contest!
- X
- XGOAL: To write the most Obscure working C program under the rules below:
- X
- XRULES: 1) The source must be 512 bytes or less.
- X 2) Mail your entries to: ...!ihnp4!nsc!chongo
- X Postings to the net will NOT be used!
- X 3) Include at the top of the letter:
- X a) Your name, and path from a major network node.
- X If you want your entry to be anonymous, indicate this as well.
- X b) A brief statement of what the program should do.
- X c) The machine/opsys on which it runs.
- X 4) Enclose your source between the following lines:
- X---start of program---
- X<place obfuscated source here>
- X---end of program---
- X 5) The C program must be written in common C.
- X That is, K&R plus common extensions (say 4.2 or Sys V C)
- X 6) The program must be of original work.
- X 7) The program must be a complete program. (i.e., not just a fragment)
- X 8) Entries must be received by me on or before June 8, 1985.
- X
- XPOINTS: Each entry will be judged for its non-clarity. I will attempt to
- X run each of them on a Vax 780/4.2BSD system. Don't let the lack
- X of such a system stop you! Try to avoid operating system/machine
- X specific code if you do not have such a system. Extra points will
- X be given for program that:
- X
- X a) Able to pass lint without complaint
- X b) Actually does something interesting (not just exit)
- X c) are portable (i.e., no special calls of local features)
- X (long variable names will be allowed as needed)
- X
- XThe names of the winners will be posted to net.lang.c. The winning
- Xsources will be posted to net.sources.
- X
- XIf you have any questions on the rules/points above, just ask via mail!
- X
- Xchongo <main(){int i;i+=i+++++i;exit(i);}> /\??/\
- //E*O*F ./1985/rules//
-
- echo x - ./1985/shapiro.c
- sed -e 's/^X//' > "./1985/shapiro.c" << '//E*O*F ./1985/shapiro.c//'
- X#define P(X)j=write(1,X,1)
- X#define C 39
- Xint M[5000]={2},*u=M,N[5000],R=22,a[4],l[]={0,-1,C-1,-1},m[]={1,-C,-1,C},*b=N,
- X*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;
- Xs<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++
- X]=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]=
- Xc|1<<s;M[*d++=e]=f|1<<(s+2)%4;}else e=d>b++?b[-1]:e;}P(" ");for(s=C;--s;P("_")
- X)P(" ");for(;P("\n"),R--;P("|"))for(e=C;e--;P("_ "+(*u++/8)%2))P("| "+(*u/4)%2
- X);}
- //E*O*F ./1985/shapiro.c//
-
- echo x - ./1985/shapiro.hint
- sed -e 's/^X//' > "./1985/shapiro.hint" << '//E*O*F ./1985/shapiro.hint//'
- XGrand prize for most well-rounded in confusion: <otto!carl> Carl Shapiro
- X
- XAs submitted, this program was 3 lines (2 of defines and 1 of code).
- XTo make news & mail happy we split the last line into 7. Join them
- Xback without the newlines to get the original version.
- X
- XThis program was selected for the 1987 t-shirt collection.
- X
- XWe found this program is be simply aMAZEing! Run this program without
- Xarguments and notice the output.
- //E*O*F ./1985/shapiro.hint//
-
- echo x - ./1985/sicherman.c
- sed -e 's/^X//' > "./1985/sicherman.c" << '//E*O*F ./1985/sicherman.c//'
- X#define C_C_(_)~' '&_
- X#define _C_C(_)('\b'b'\b'>=C_C>'\t'b'\n')
- X#define C_C _|_
- X#define b *
- X#define C /b/
- X#define V _C_C(
- Xmain(C,V)
- Xchar **V;
- X/* C program. (If you don't
- X * understand it look it
- X */ up.) (In the C Manual)
- X{
- X char _,__;
- X while (read(0,&__,1) & write((_=(_=C_C_(__),C)),
- X _C_,1)) _=C-V+subr(&V);
- X}
- Xsubr(C)
- Xchar *C;
- X{
- X C="Lint says "argument Manual isn't used." What's that
- X mean?"; while (write((read(C_C('"'-'/*"'/*"*/))?__:__-_+
- X '\b'b'\b'|((_-52)%('\b'b'\b'+C_C_('\t'b'\n'))+1),1),&_,1));
- X}
- //E*O*F ./1985/sicherman.c//
-
- echo x - ./1985/sicherman.hint
- sed -e 's/^X//' > "./1985/sicherman.hint" << '//E*O*F ./1985/sicherman.hint//'
- XThe worst abuse of the C preprocessor: <sunybcs!colonel> Col. G. L. Sicherman
- X
- XThis program abuses the C preprocessor so much that some /lib/cpp's fail to
- Xstrip out all of the comments on the first pass! If you were able to
- Xunderstand Decot's entry in 1984, you will have a head start on this
- Xone.
- X
- XBe sure to run this program through lint! If your lint works
- Xcorrectly, it should warn you that the argument `Manual' isn't used.
- XLike the program says, what's that mean?
- X
- XRun the program without arguments and enter the letters 'a' thru 'm'
- Xon a line. Now enter the letters 'n' thru 'z'. But to borrow a quote
- Xfrom Richard Stallman: If you think you understand what this code
- Xdoes, then you don't, so read it again! Explain why:
- X
- X sicherman < sicherman.c | sicherman | diff - sicherman.c
- X
- Xresults in diff reporting a difference on some machines.
- //E*O*F ./1985/sicherman.hint//
-
- echo Possible errors detected by \'wc\' [hopefully none]:
- temp=/tmp/shar$$
- trap "rm -f $temp; exit" 0 1 2 3 15
- cat > $temp <<\!!!
- 27 62 370 Makefile
- 6 62 362 README
- 1 2 129 applin.c
- 4 28 188 applin.hint
- 14 45 513 august.c
- 9 74 428 august.hint
- 17 48 509 lycklama.c
- 7 41 256 lycklama.hint
- 44 322 1958 rules
- 9 18 518 shapiro.c
- 10 74 430 shapiro.hint
- 23 64 511 sicherman.c
- 19 150 850 sicherman.hint
- 190 990 7022 total
- !!!
- wc ./1985/Makefile ./1985/README ./1985/applin.c ./1985/applin.hint ./1985/august.c ./1985/august.hint ./1985/lycklama.c ./1985/lycklama.hint ./1985/rules ./1985/shapiro.c ./1985/shapiro.hint ./1985/sicherman.c ./1985/sicherman.hint | sed 's=[^ ]*/==' | diff -b $temp -
- exit 0
-
-