Documente Academic
Documente Profesional
Documente Cultură
Author: Unknown
main(){char*a="main(){char*a=%c%s%c;int b='%c';printf(a,b,a,b,b);}";int b='"';pr
intf(a,b,a,b,b);}
Author: Unknown
char *p="char *p=%c%s%c;main(){printf(p,34,p,34);}";main(){printf(p,34,p,34);}
Author: Unknown
char f[] = "char f[] =%c%c%s%c;%cmain() {printf(f,10,34,f,34,10,10);}%c";
main() {printf(f,10,34,f,34,10,10);}
Author: James C Hu
#define q(k)main(){puts(#k"\nq("#k")");}
q(#define q(k)main(){puts(#k"\nq("#k")");})
Author: James C Hu
#define q(k)main(){return!puts(#k"\nq("#k")");}
q(#define q(k)main(){return!puts(#k"\nq("#k")");})
Author: unknown
char *f="char *f=%c%s%c;%c#define Q '%c'%c#define N '%cn'%c#define B '%c%c'%c#in
clude <stdio.h>%cvoid main(){printf(f,Q,f,Q,N,Q,N,B,N,B,B,N,N,N);}%c";
#define Q '"'
#define N '\n'
#define B '\\'
#include <stdio.h>
void main(){printf(f,Q,f,Q,N,Q,N,B,N,B,B,N,N,N);}
Author: Unknown
char a[] = "int main(){ printf(b,34,a,34,10,34,b,34,10,10,a,10); }";
char b[] = "char a[] = %c%s%c;%cchar b[] = %c%s%c;%c%c%s%c";
int main(){ printf(b,34,a,34,10,34,b,34,10,10,a,10); }
Author: Travis Emmit
char *s="rfns-.% uwnsyk-'hmfw%/xBa'*xa'@as'1x.@|mnqj-/x.uwnsyk-'*h'1/x002:.@ ";
main() {
printf("char *s=\"%s\";\n",s);
while(*s)printf("%c",*s++-5);
}
Author: Unknown
void p(char *s){char *t;printf("%s(\"",s);for(t=s; *t!=0; t++)switch(*t){case '\
\':case '\"':case'\'':putchar('\\');default:putchar(*t);}printf("\");}");}void m
ain(){p("void p(char *s){char *t;printf(\"%s(\\\"\",s);for(t=s; *t!=0; t++)switc
h(*t){case \'\\\\\':case \'\\\"\':case\'\\\'\':putchar(\'\\\\\');default:putchar
(*t);}printf(\"\\\");}\");}void main(){p");}
Author: Michael Mauldin
char *x="\";\nmain ()\n{ char *s;\n printf (\"char *x=\\\"\");\n for(s=x;*s;s++)
\n { printf
(*s=='\\\\'?\"\\\\\\\\\":*s=='\\\"'?\"\\\\\\\"\":*s=='\\n'?\"\\\\n\":\"%c\", *s)
; }\n printf (\"%s\", x);\n}\n";
main ()
{ char *s;
printf ("char *x=\"");
for(s=x;*s;s++)
{ printf (*s=='\\'?"\\\\":*s=='\"'?"\\\"":*s=='\n'?"\\n":"%c", *s); } printf ("%
s", x);
}
Author: Unknown
char s[] = "\";\n\
main ()\n\
{ int i; printf (\"char s[] = \\\"\");\n\
for (i=0; s[i]; i++)\n\
{ switch (s[i]) {\n\
case '\\n': printf (\"\\\\n\\\\\\n\"); break;\n\
case '\\\\': printf (\"\\\\\\\\\"); break;\n\
case '\\\"': printf (\"\\\\\\\"\"); break;\n\
default: printf (\"%c\", s[i]); break;}\n\
}\n\
printf (\"%s\",s); }\n\
";
main ()
{ int i; printf ("char s[] = \"");
for (i=0; s[i]; i++)
{ switch (s[i]) {
case '\n': printf ("\\n\\\n"); break;
case '\\': printf ("\\\\"); break;
case '\"': printf ("\\\""); break;
default: printf ("%c", s[i]); break;}
}
printf ("%s",s); }
}
b[j] = '\0';
printf (string, a1, b);
}
Author: Celia La
#include <stdio.h>
char* a = ";
void main() {
char* c;
printf(\"#include <stdio.h>\\nchar* a = \");
putchar(34);
for (c = a; c[0] != 0; c++) {
if (c[0] == 34) { putchar(92); putchar(34); }
else if (c[0] == 92) { putchar(92); putchar(92); }
else putchar(c[0]);
}
putchar(34);
printf(\"%s\", a);}
";
void main() {
char* c;
printf("#include <stdio.h>\nchar* a = ");
putchar(34);
for (c = a; c[0] != 0; c++) {
if (c[0] == 34) { putchar(92); putchar(34); }
else if (c[0] == 92) { putchar(92); putchar(92); }
else putchar(c[0]);
}
putchar(34);
printf("%s", a);}
express_string(dna);
exit(0);
}
/* itself.c
A program that prints itself out
Don Herbison-Evans 15 June 1995
*/
#define MAXA 100
#define MAXB 47
#define CHANGE 18
#include <stdio.h>
char slosh = '\\';
main()
{
int i,j,k;
char str[MAXB][MAXA];
sprintf(str[0],"/* itself.c");
sprintf(str[1],"");
sprintf(str[2]," A program that prints itself out");
sprintf(str[3]," Don Herbison-Evans 15 June 1995");
sprintf(str[4],"*/");
sprintf(str[5],"");
sprintf(str[6],"#define MAXA 100");
sprintf(str[7],"#define MAXB 47");
sprintf(str[8],"#define CHANGE 18");
sprintf(str[9],"#include <stdio.h>");
sprintf(str[10],"");
sprintf(str[11],"char slosh = '\\';");
sprintf(str[12],"");
sprintf(str[13],"main()");
sprintf(str[14],"{");
sprintf(str[15]," int i,j,k;");
sprintf(str[16]," char str[MAXB][MAXA];");
sprintf(str[17],"");
sprintf(str[18]," for (j = 0; j < CHANGE; ++j)");
sprintf(str[19]," {");
sprintf(str[20]," pr(str[j],0);");
sprintf(str[21]," printf(\"\\n\");");
sprintf(str[22]," }");
sprintf(str[23]," for (j = 0; j < MAXB; ++j)");
sprintf(str[24]," {");
sprintf(str[25]," printf(\" sprintf(str[%%d],\\\"\",j);");
sprintf(str[26]," pr(str[j],0);");
sprintf(str[27]," printf(\"\\\");\");");
sprintf(str[28]," printf(\"\\n\");");
sprintf(str[29]," }");
sprintf(str[30]," for (j = CHANGE; j < MAXB; ++j)");
sprintf(str[31]," {");
sprintf(str[32]," pr(str[j],1);");
sprintf(str[33]," printf(\"\\n\");");
sprintf(str[34]," }");
sprintf(str[35],"}");
sprintf(str[36],"pr(str,asis)");
sprintf(str[37],"char str[MAXA];");
sprintf(str[38],"int asis;");
sprintf(str[39],"{");
sprintf(str[40]," int j;");
sprintf(str[41]," for (j = 0; (j < MAXA) && (str[j] != '\\0');
++j)");
sprintf(str[42]," if ((asis == 0) && ((str[j] == slosh) ||
(str[j] == '\"')))");
sprintf(str[43]," printf(\"%%c%%c\",slosh,str[j]);");
sprintf(str[44]," else if ((asis == 0) && (str[j] == '%%'))
printf(\"%%%%%%%%\");");
sprintf(str[45]," else printf(\"%%c\",str[j]);");
sprintf(str[46],"}");
for (j = 0; j < CHANGE; ++j)
{
pr(str[j],0);
printf("\n");
}
for (j = 0; j < MAXB; ++j)
{
printf(" sprintf(str[%d],\"",j);
pr(str[j],0);
printf("\");");
printf("\n");
}
for (j = CHANGE; j < MAXB; ++j)
{
pr(str[j],1);
printf("\n");
}
}
pr(str,asis)
char str[MAXA];
int asis;
{
int j;
for (j = 0; (j < MAXA) && (str[j] != '\0'); ++j)
if ((asis == 0) && ((str[j] == slosh) || (str[j] == '"')))
printf("%c%c",slosh,str[j]);
else if ((asis == 0) && (str[j] == '%')) printf("%%%%");
else printf("%c",str[j]);
}
Author: josh@cs.rutgers.edu
#include "stdio.h"
char *stack[2000], buf[2000], chrtab[128][2], *defns[128];
char dna[ ]="stdio.h_X#include X\"__\n\
char 4_Cstack_Sbuf_Bchrtab[4]_Hdefns[4]_V5[4]_]5, 4_,4;_;*4_*2000_K128_L\n\
_/SK]*BK],LH2]LV*,,C;__5==4_%5=4_=dna_DD ]@\"=C;__54_.copy(4)_K\n\
_/strlen(4)_Astrcpy(54,)_E4++_^5+4_+200_X'4'_'5*^4=_Z5;/4._!for (7;6;5)4_F\n\
_/if (5) 4_G{/4/}/_}return(4);/_R(char`*)malloc(4)_M\\\\_$`\"'_Y\n\
_/5 || 4_| c*t^*c^*=Yc*%$'c*%|t$'ZG\\n.'c*%ttt\\n.\\.\"EA+=G;!}F_W\n\
_/cK*Cc*Ct*q*,CqtXcA+M==!tYZ!W!tYZ.t0Z!qR!}!__(4)_~\n\
_/construct(4)_Iarg_J4**_$int 4_Nswitch(5)4}_Odefault: 4_P5-4_-p1-~*_Q\n\
_/break_Ucase 5: 4;/U_:5<4_<5>4_>5 && 4_&4*8'<4*3'>&_?else 4_XqB=Jp=!_W\n\
_/Wtc*V=t*t^t?kpt*-3'+=~J<Jk=Gqqqk*EA+=!;}Gqt*ZX;.}F!q*0=.pJ=!pBA1+MZBE!;_W\n\
_/c*``'p*^ ^c.*H=:YQQK=:!`@'pDZ:!c?p*^c*H=U!;}GP!W.O_W\n\
_/n0=kS=,kp<nnk*^A+=4F_U Uqn1+M=!qn+k*EU!qR!_O\n\
_/cI*Cc*CJ$p$,k$,t*,q*,CnN!pS=c*c^W}F!O.}!__\n\
_/nH5]4=_Ostrncpy(654,,)_Eputs(4)_P923+_T4t.*T%_T\n\
_/xt=D=t*t^ Tqtx-1+M=qxtx-E!qx-t+~*0=! ^TqIPG!t*VqI=X!xt1+=!;}G}F_Q\n\
_/main()/t*x*,q*,CnN!n0=nL<n^0nO10O!nVnH=!;}F!Q.}__";
char *copy(c)
char *c;
{
char *t, *q;
q=t=(char*)malloc(200+strlen(c));
*t++='"';
for ( ;*c;*t++=*c++){
if ('"'==*c || '\\'==*c) *t++='\\';
if ('\n'==*c) t=t+strlen(strcpy(t, "\\n\\")); }
*t++='"';
*t++=0;
return(q);
}
char *construct(c)
char *c;
{
char **arg, **p, **k, *t, *q;
int n;
for (p=stack;*c;c++){
switch(*c){
case '`': *p++=chrtab[* ++c];
break;
case '"': *(p-1)=copy(*(p-1));
break;
case '@': *p++=dna;
break;
default: if (*c<'8' && *c>'3') {
*p++=chrtab[*c];
break;
}
q=buf;
arg=p;
for (t=defns[*c];*t;t++){
if (*t<'8' && *t>'3') {
if ((k=p-*t+'3')<arg) arg=k;
q=q+strlen(strcpy(q, *k));
}
else *q++=*t;
}
*q=0;
p=arg;
strcpy(*p++=(char*)malloc(strlen(buf)+1), buf); }
}
for (n=0, k=stack;k<p;n=n+strlen(*k++)) ; q=(char*)malloc(n+1);
for (n=0, k=stack;k<p;n=n+strlen(*k++))strcpy(q+n, *k); return(q);
}
main()
{
char *t, *x, *q;
int n;
for (n=0;n<128;n++){
chrtab[n][0]=n;
chrtab[n][1]=0;
defns[n]=chrtab[n];
}
for (x=t=dna;*t;t++){
if (* t==92+3) {
q=(char*)malloc(t-x+1);
strncpy(q, x, t-x);
*(q-x+t)=0;
if (* ++t==92+3) puts(construct(q));
else defns[*t]=construct(q);
x=t+1;
}
}
}
Author: Unknown
#include<stdio.h>
main(){char*c="\\\"#include<stdio.h>%cmain(){char*c=%c%c%c%.102s%cn%c;printf(c+2
,c[102],c[1],*c,*c,c,*c,c[1]);exit(0);}\n";printf(c+2,c[102],c[1],*c,*c,c,*c,c[1
]);exit(0);}
Author: smr
Notes: This program won the "Worst Abuse of the Rules" award in the 1994 Obfusca
ted C Code contest. It claims to be the world's shortest self-producing C progra
m. Hey, it's also a palindrome! Some compilers give fatal errors on this one.
Pretty short, eh?