oh, btw I am not sure if that is syntactically correct. Did the original one compile for you? On Wed, Jul 1, 2009 at 9:14 PM, Tamas Rudnai wrote: > That's just a normal obuscation I deal with every day. They use silly > things like this and even much more complicated ones for Javascript, visual > basic, autoit and the kind and they think their code are well protected.... > This samaple did not even use trigraphs so it was just ok... > > > > #include > > int m[256][256], a, b; > > WINDOW *w; > > char *l = "\176qxlqqkwxmxtjvun"; > Q[] = "Zpt!ftd`qdc!`eudq!$c!nnwft\040\t"; > > c( int u , int v) > { > v ? m[u][v-1] |= 2, m[u][v-1] & 48 ? W][v-1] & 15]]) : 0 : 0; > > u ? m[u-1][v] |= 1 > ,m[u-1][v] & 48 ? W-1][v] & > 15]]) : 0 : 0; > > v < 255 ? m[u][v+1]| = 8 > ,m[u][v+1] & 48 ? W][v+1] & 15]]) : 0 : 0; > u < 255 ?m[ u+1][v]|= > 4,m[u+1][v] & 48 ? W+1][v] & 15]]) : 0 : 0; > W][v] & 15]]); > } > > > // recursive loops on the string > cu ( char *q ) > { > > return *q ? ( > // some silly decryption algorithm > > cu (q + 1) & 1 ? q[0]++ : q[0]-- > ) : 1; > } > > > d( int u , int v, int x, int y) > { > int Y = y - v, X = x - u; > > int S,s; > > Y < 0 ? Y = -Y, s, s = -1 : (s = 1); > > X < 0 ? X = -X, S = -1 : (S = 1); > > Y <<= 1; > X <<= 1; > > if(X > Y) > { > int f = Y -( X >> 1 ); > while(u != x ) > { > f >= 0 ? v += s,f -= X : 0; > u +=S ; > f += Y; > m[u][v] |= 32; > mvwaddch( w,v ,u, m[u][v] & 64 ? 60 : 46); > if (m[u][v] & 16) > { > c(u,v); > return; > } > } > } > else{int f=X -(Y>>1); > while > (v != y ){f >= 0 ? u += S, f -= Y : 0; > v += s; > f += X; > m[u][v] |= 32; > mvwaddch ( w, v ,u, m[u][v] & 64 ? 60 : 46 ); > if( m[u][v] & 16) > { > c( u,v ); > return; > } > } > } > } > > > Z( int a, int b){ } > > > e( int y,int x){ > int i ; > for (i= a; i <= a + S; i++) > d(y,x,i,b), d(y,x,i,b+L); > > for( i =b; i <= b + L; i++) { > d(y,x,a,i); > d(y,x,a+ S,i); > } > > mvwaddch(w,x,y,64); > prefresh( w,b,a,0,0 ,L- 1,S-1); > } > > > main( int V , char *C[] ) > { > FILE *f = fopen( V == 1 ? "arachnid.c" : C[1], "r"); > > ... got bored and did not continue... > > > > > > > > > > On Wed, Jul 1, 2009 at 8:20 PM, Peter Restall wrote: > >> >> For those who are interested, they still do hold the Obfuscated C >> competition :) >> >> http://www.de.ioccc.org/years.html >> >> I honestly don't know why people dislike C...this is pure >> art/genius/madness ! >> >> (btw - this is called 'arachnid.c' and requires ncurses to compile; use a, >> s, >> w and d keys). >> >> Regards, >> >> Pete Restall >> >> --- >> >> #include >> /*****************************************************/ >> int m[256 ] [ 256 ],a >> ,b ;;; ;;; WINDOW*w; char*l="" "\176qxl" "q" "q" "k" >> "w\ >> xm" "x" "t" "j" "v" "u" "n" >> ,Q[ >> ]= "Z" "pt!ftd`" "qdc!`eu" "dq!$c!nnwf"/** *** */"t\040\t";c( >> int u , int v){ v?m [u] >> [v- >> 1] |=2,m[u][v-1] & 48?W][v-1 ] & 15]]):0:0;u?m[u -1][v]|=1 >> ,m[ >> u- 1][ v]& 48? W-1 ][v ]& >> 15] ]):0:0;v< 255 ?m[ u][v+1]|=8,m[u][v+1]& 48? W][ >> v+1]&15]] >> ):0 :0; u < 255 ?m[ u+1 ][v >> ]|= >> 4,m[u+1][ v]&48?W+1][v]&15]]):0:0;W][ v]& 15] ]);}cu(char*q){ >> return >> *q ?cu (q+ 1)& 1?q [0] >> ++: >> q[0 ]-- :1; }d( int u , int/**/v, int/**/x, int y){ >> int >> Y=y -v, X=x -u; int S,s ;Y< 0?Y =-Y >> ,s, >> s=- 1:( s=1);X<0?X=-X,S =-1 :(S= 1); Y<<= 1;X<<=1; if(X>Y){ >> int f=Y -(X >>1 );; while(u!= >> x){ >> f>= 0?v+=s,f-=X:0;u +=S ;f+= Y;m[u][v]|=32;mvwaddch(w,v ,u, >> m[u >> ][ v]& 64? 60: 46) ;if (m[ >> u][ >> v]&16){c(u,v);; ;;; ;;; return;}} }else{int f=X -(Y>>1);; >> while >> (v !=y ){f >=0 ?u +=S, f-= >> Y:0 >> ;v +=s ;f+=X;m[u][v]|= 32;mvwaddch(w,v >> ,u,m[u][v]&64?60:46);if(m[u >> ][ v]& 16) {c( u,v ); >> ; return;;;}}}}Z( int/**/a, int b){ }e( int/**/y,int/**/ x){ >> int i ; for (i= a;i >> <=a >> +S;i++)d(y,x,i,b),d(y,x,i,b+L);for(i=b;i<=b+L;i++)d(y,x,a,i),d(y,x,a+ >> S,i >> ); ;;; ;;; ;;; ;;; ; >> mvwaddch(w,x,y,64); ;;; ;;; ;;; prefresh( w,b,a,0,0 ,L- >> 1,S-1 >> );} main( int V , char >> *C[ >> ] ){FILE*f= fopen(V==1?"arachnid.c"/**/ :C[ 1],"r");int/**/x,y,c, >> v=0 ;;; initscr (); Z(Z >> (raw >> () ,Z( curs_set(0),Z(1 ,noecho()))),keypad( stdscr,TRUE));w >> =newpad >> ( 300, 300 ) ; for (x= 255 ; x >=0 >> ;x-- >> ) for (y= 255 ;y>=0;y-- )m[ x][ y]= 0;x=y=0;refresh( >> );while >> ( (c= fgetc (f) )+1) >> {if( >> 0||c==10|| x== 256){x=0;y++;if(y==256 )break;;} else{m[x][y]=(c == >> '~' ?64 : c ==32 ?0: 16) ;;x >> ++; >> }}for(x=0 ;x< 256;x++)m [x][0]=16 ,m[ x][ 255]=16;for(y=0 >> ;y< 256 ; y ++) m[0 ][y ] = >> 16, >> m[255][y] =16 ;a=b=c=0; x=y =1; do{v++;mvwaddch (w, y,x >> ,m[ >> x][ y]& 32? m[x ][y ] & >> 16? >> 0| acs_map[l[m[x][y]&15]]:46 : 32);c==0163&&!(m[x][y+1]&16)?y++: >> 0;c >> == 119 &&! (m[ >> x][ >> y- 1]& 16) ?y--:0;;c ==97 >> &&!(m[x-1][y]&16)?x--:0;c==100&&!(m[x+1 >> ][ y]& 16) ? x ++:0 ;if( >> c== >> 3- 1+1 ){endwin( );; return(0) ;}x -a<5?a>S- >> 5?a-=S-5:(a=0): >> 0;x -a> S-5?a<255 -S* 2?a >> +=S >> -5:(a=256-S):0; y-b<5?b>L-5?b-=L-5:(b =0) :0; y-b>L-5?b<255-L >> *2? >> b+= L-5 :(b >> =256 >> -L) >> :0;e(x,y);if(m[x][y]&64)break;}while((c=getch())!=-1);endwin();cu(Q); >> printf(Q,v);} >> >> -- >> http://www.piclist.com PIC/SX FAQ & list archive >> View/change your membership options at >> http://mailman.mit.edu/mailman/listinfo/piclist >> > > > > -- > http://www.mcuhobby.com > -- http://www.mcuhobby.com -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist