Código Ofuscado

21/8/2008 por DeathMetal, 5

[Post enfocado sobretodo a programadores]

Escribir código legible es tan necesario como hacerlo funcional. Siempre y cuando no estés a punto de ser despedido de tu empresa, momento en el que deberías aprender a picar código ofuscado para dejar a tu inocente sucesor lindezas como las siguientes:

#define _ -F<00||–F-OO–;
int F=00,OO=00;main(){F_OO();printf(“%1.3f\n”,4.*-F/OO/OO);}F_OO()
{

            _-_-_-_
       _-_-_-_-_-_-_-_-_
    _-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_
    _-_-_-_-_-_-_-_-_-_-_-_
        _-_-_-_-_-_-_-_
            _-_-_-_

}

Mola el anterior programa, ¿eh? Pues resulta que dicho mojón lo que hace es calcular el número pi mirando su propia área. ¿Alguien se lo imaginó?

Aunque pueden hacerse más cosas a parte de circulitos:

#include <stdio.h>
int l;int main(int o,char **O,
int I){char c,*D=O[1];if(o>0){
for(l=0;D[l              ];D[l
++]-=10){D   [l++]-=120;D[l]-=
110;while   (!main(0,O,l))D[l]
+=   20;   putchar((D[l]+1032)
/20   )   ;}putchar(10);}else{
c=o+     (D[I]+82)%10-(I>l/2)*
(D[I-l+I]+72)/10-9;D[I]+=I<0?0
:!(o=main(c/10,O,I-1))*((c+999
)%10-(D[I]+92)%10);}return o;}

Incluso aviones que se salgan del blog!

#include                                     <math.h>
#include                                   <sys/time.h>
#include                                   <X11/Xlib.h>
#include                                  <X11/keysym.h>
                                          double L ,o ,P
                                         ,_=dt,T,Z,D=1,d,
                                         s[999],E,h= 8,I,
                                         J,K,w[999],M,m,O
                                        ,n[999],j=33e-3,i=
                                        1E3,r,t, u,v ,W,S=
                                        74.5,l=221,X=7.26,
                                        a,B,A=32.2,c, F,H;
                                        int N,q, C, y,p,U;
                                       Window z; char f[52]
                                    ; GC k; main(){ Display*e=
 XOpenDisplay( 0); z=RootWindow(e,0); for (XSetForeground(e,k=XCreateGC (e,z,0,0),BlackPixel(e,0))
; scanf("%lf%lf%lf",y +n,w+y, y+s)+1; y ++); XSelectInput(e,z= XCreateSimpleWindow(e,z,0,0,400,400,
0,0,WhitePixel(e,0) ),KeyPressMask); for(XMapWindow(e,z); ; T=sin(O)){ struct timeval G={ 0,dt*1e6}
; K= cos(j); N=1e4; M+= H*_; Z=D*K; F+=_*P; r=E*K; W=cos( O); m=K*W; H=K*T; O+=D*_*F/ K+d/K*E*_; B=
sin(j); a=B*T*D-E*W; XClearWindow(e,z); t=T*E+ D*B*W; j+=d*_*D-_*F*E; P=W*E*B-T*D; for (o+=(I=D*W+E
*T*B,E*d/K *B+v+B/K*F*D)*_; p<y; ){ T=p[s]+i; E=c-p[w]; D=n[p]-L; K=D*m-B*T-H*E; if(p [n]+w[ p]+p[s
]== 0|K <fabs(W=T*r-I*E +D*P) |fabs(D=t *D+Z *T-a *E)> K)N=1e4; else{ q=W/K *4E2+2e2; C= 2E2+4e2/ K
 *D; N-1E4&& XDrawLine(e ,z,k,N ,U,q,C); N=q; U=C; } ++p; } L+=_* (X*t +P*M+m*l); T=X*X+ l*l+M *M;
  XDrawString(e,z,k ,20,380,f,17); D=v/l*15; i+=(B *l-M*r -X*Z)*_; for(; XPending(e); u *=CS!=N){
                                   XEvent z; XNextEvent(e ,&z);
                                       ++*((N=XLookupKeysym
                                         (&z.xkey,0))-IT?
                                         N-LT? UP-N?& E:&
                                         J:& u: &h); --*(
                                         DN -N? N-DT ?N==
                                         RT?&u: & W:&h:&J
                                          ); } m=15*F/l;
                                          c+=(I=M/ l,l*H
                                          +I*M+a*X)*_; H
                                          =A*r+v*X-F*l+(
                                          E=.1+X*4.9/l,t
                                          =T*m/32-I*T/24
                                           )/S; K=F*M+(
                                           h* 1e4/l-(T+
                                           E*5*T*E)/3e2
                                           )/S-X*d-B*A;
                                           a=2.63 /l*d;
                                           X+=( d*l-T/S
                                            *(.19*E +a
                                            *.64+J/1e3
                                            )-M* v +A*
                                            Z)*_; l +=
                                            K *_; W=d;
                                            sprintf(f,
                                            "%5d  %3d"
                                            "%7d",p =l
                                           /1.7,(C=9E3+
                              O*57.3)%0550,(int)i); d+=T*(.45-14/l*
                             X-a*130-J* .14)*_/125e2+F*_*v; P=(T*(47
                             *I-m* 52+E*94 *D-t*.38+u*.21*E) /1e2+W*
                             179*v)/2312; select(p=0,0,0,0,&G); v-=(
                              W*F-T*(.63*m-I*.086+m*E*19-D*25-.11*u
                               )/107e2)*_; D=cos(o); E=sin(o); } }

Aunque no es necesario hacer dibujitos para generar código bastardo:

main(n,i,a,m){while(i=++n)
for(a=0;a<i?a=a*8+i%8,i/=8,m=a==i|a/8==i,1:(n-++m||printf(“%o\n”,n))&&n%m;);}

Vamos, que ahora se entiende por qué en la carrera se nos enseña a programar de manera limpia, ordenada, y estructuradita. Y luego dicen que programar es fácil. Por algo se hacen tantos concursos, incluso de código ofuscado.

(Vías: 1, 2, 3)

PD: Si quieréis ver muuuucho más código ofuscado pinchad sobre la vía número tres.

¿Te ha gustado lo que has visto? ¡Compártelo, menéalo o vótalo! ¡Gracias!
Guardado en:  Programación, WTF
5 comentarios
  1. [Post enfocado sobretodo a programadores]

    no que va… los que no tenemos ni zo….rra de programación lo hemos pillado y es super gracioso… uy¡ que gracioso¡¡¡
    que es broma

    menos codigo ofuscado y mas tetas¡¡¡¡ ( eso tambien era broma)

    por cierto mal dia para ” dibujar” un avión saliendose ¿no?

    javimas03 dice...
    21/8/2008 a las 11:02 am
  2. Mal comentario el del avion…

    Pablo dice...
    21/8/2008 a las 11:32 am
  3. Bueno, tranquilos, es un post programado de hace días y el chaval está de vacaciones fuera del país. Dudo muchísimo que se haya enterado del accidente ocurrido…

    DarkMetal dice...
    21/8/2008 a las 1:32 pm
  4. Ya si nadie le ataca , pero es una casualidad un poco chunga

    javimas03 dice...
    22/8/2008 a las 11:35 am
  5. Joder qué mala pata, perdonen.

    Tal como ha dicho DarkMetal este post era programado desde hace mucho, pues esta semana he estado en Suecia (es más, el post lo hice cuando todavía tenía clases en la uni, pero lo guardé en recámara como borrador).

    Y sí, incluso estando en la otra punta de Europa me enteré del accidente (por la tele y en la portada de los periódicos suecos). Una auténtica desgracia con la que jamás se me ocurriría bromear. Sorry.

    Hej dä!

    DeathMetal dice...
    24/8/2008 a las 3:29 pm
¡Comenta!