復(fù)制自己的什么?。?BR> fork()出來(lái)的不是你所要的?
就是復(fù)制源程序!
發(fā)信人: crazywill (開(kāi)始努力), 信區(qū): Programming
標(biāo) 題: 輸出為本身的c程序
發(fā)信站: 華南網(wǎng)木棉站 (Thu Dec 12 09:41:48 2002), 轉(zhuǎn)信
發(fā)信人: StArGazEr (Wanderer-In-Heavens), 信區(qū): Algorithm
標(biāo) 題: 輸出為本身的c程序
發(fā)信站: 南京大學(xué)小百合站 (Thu Dec 12 00:23:11 2002)
因?yàn)橛腥颂崞?,以前也曾?jīng)注意到過(guò),于是勾起了興趣,網(wǎng)上收集了一把。
還真不少,這類(lèi)程序的技巧在于字符串定義時(shí)對(duì)ASCII為34和10即引號(hào)和
回車(chē)符的妙用:
1。
char*f="main(){putchar('c');putchar('h');putchar('a');putchar('r');
putchar('*');&
putchar('f');putchar('=');putchar(34);printf(f);putchar(34);
putchar(';');&
putchar(10);printf(f);putchar(10);}";
main(){putchar('c');putchar('h');putchar('a');putchar('r');
putchar('*');putchar('f');&
putchar('=');putchar(34);printf(f);putchar(34);putchar(';');
putchar(10);&
printf(f);putchar(10);}
2。
char*f="char*f=;main(){f[7]=0;printf(f);putchar(34);f[7]=';';
printf(f);&
putchar(34);f[8]=0;printf(&f[7]);f[8]='m';putchar(10);
printf(&f[8]);putchar(10);}";
main(){f[7]=0;printf(f);putchar(34);f[7]=';';printf(f);putchar(34);&
f[8]=0;printf(&f[7]);f[8]='m';putchar(10);printf(&f[8]);
putchar(10);}
3。
char*f="char*f=%c%s%c;%cmain()%c";
main()
就是復(fù)制源程序!
發(fā)信人: crazywill (開(kāi)始努力), 信區(qū): Programming
標(biāo) 題: 輸出為本身的c程序
發(fā)信站: 華南網(wǎng)木棉站 (Thu Dec 12 09:41:48 2002), 轉(zhuǎn)信
發(fā)信人: StArGazEr (Wanderer-In-Heavens), 信區(qū): Algorithm
標(biāo) 題: 輸出為本身的c程序
發(fā)信站: 南京大學(xué)小百合站 (Thu Dec 12 00:23:11 2002)
因?yàn)橛腥颂崞?,以前也曾?jīng)注意到過(guò),于是勾起了興趣,網(wǎng)上收集了一把。
還真不少,這類(lèi)程序的技巧在于字符串定義時(shí)對(duì)ASCII為34和10即引號(hào)和
回車(chē)符的妙用:
1。
char*f="main(){putchar('c');putchar('h');putchar('a');putchar('r');
putchar('*');&
putchar('f');putchar('=');putchar(34);printf(f);putchar(34);
putchar(';');&
putchar(10);printf(f);putchar(10);}";
main(){putchar('c');putchar('h');putchar('a');putchar('r');
putchar('*');putchar('f');&
putchar('=');putchar(34);printf(f);putchar(34);putchar(';');
putchar(10);&
printf(f);putchar(10);}
2。
char*f="char*f=;main(){f[7]=0;printf(f);putchar(34);f[7]=';';
printf(f);&
putchar(34);f[8]=0;printf(&f[7]);f[8]='m';putchar(10);
printf(&f[8]);putchar(10);}";
main(){f[7]=0;printf(f);putchar(34);f[7]=';';printf(f);putchar(34);&
f[8]=0;printf(&f[7]);f[8]='m';putchar(10);printf(&f[8]);
putchar(10);}
3。
char*f="char*f=%c%s%c;%cmain()%c";
main()