user@linuxtrack:~ $ python -c 'print("Soyez les bienvenus !")'

Vous n'êtes pas identifié(e).

#1 17-06-2013 06:02:33

IceF0x
#! Gourou Linux

Serez vous capable de comprendre ce code source

Grâce à la lecture du GNU/Linux Magazine N°155 de ce décembre 2012, j'ai découvert une rubrique ou l'on décortiquais du code C illisible.
Très intéressant car il m'a permis de découvrir qu'il existe un challenge de code illisible et un site dédié.
International Obfuscated C Code Contest
http://www.ioccc.org/

L'article traite de ce code qui tel quel se compile avec gcc sans erreur.

int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hell\
o, world!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i);}
gcc -o my_bin anonymous.c

Serez-vous capable de deviner ce que fait ce bout de code ?

Voici la liste de tout les code gagnant.

http://www.ioccc.org/years.html

Certains code sont....

                          #define  \
                        D(s)"<<"#s">>"
                      #define  q(s)p(#s)
                     #define S " endobj "
                    #define Y "endstream"S
                    #include     <stdio.h>
                    #define  o(s) b[s]=_;\
                     p("%u    0  obj",s);
#define E for         (c=d;c  < 123;c++)
  #define DANCE         "trailer   "D\
    (/Root 3 0            R /Size %d)            "\nstartxref %u %%%%EOF\n*/"
      #define              p(s, ...)             _+=printf(s,  ##__VA_ARGS__)
       #define C         "<</Type/Page         /Parent %d %d R /Resources <<\
        /ProcSet[       /PDF/Text]/Font       <</U"D(/Subtype/Type1/BaseFont\
          /Courier) "  /T<</Subtype/Type3   /FontBBox[0 0 10 10]/FontMatrix[\
           %f 0 0 %f 0 0]/FirstChar %d/LastChar %d/Encoding<</Differences[%d"
            typedef int N;typedef char*Nyan;typedef char A;N a,b[64],d=65,_,v
              [32]={84,0,64,282,90,74,330,85,93,173,167,176,80,208,81,13,7,87
                ,160,346,32,128,170,218,16,26}; Nyan w[]={"+*-(,&-&","+*,&-&"
                  ,"+*.&/&","+*/*/+","+*())'('"  ,"+**&)&","+*(&'&","+*'*'+",
                    "","+,./","+,-,./","+--,+*"  ,"","+,(/","+,),(/","+-),+*"
                     ,"10 0 d0 ","8 7 2 2 re "   ,"+*+.'`'@'mi +/+/(mi"};Nyan
                       nyan(Nyan _,N y,A n){
                        N g=v[~-y%32];Nyan
                         s=w[g>>n&3|n*2];
                         for(a=0;*_=*s++;
                         a++,_++,*_++=32)
                         {*_+=*_-32?10:0;
                         if(a%2&&*_/16==3
                         ){if(g>>8)*_=105-*_;
                        _++;*_++=32;*_=~-a&&a-13
                        ?108:109;}}return n?n-9?nyan
                       (_,y,n-2):_:nyan(_+=~y&' '?sprintf
                      (_,17[w]):0,y,9);}N main(N c){A e[256];
                     p("/*%%PDF-1.3%%*/")-2;q(#include<stdio.h>\n);
                    q(#define o *_++&& *_-41\n#define);p(" endstream ");q
                   (main(){for(;*_++;      *_-40?:putchar(o?*_:o?10:41));\n)
                  ;q(#define  endobj          return 0;}\n);q(typedef int ET;/)
                 ;q(*);o(1)*b=~(p(D                 (/Length 2 0 R)"stream\n"))
                ;for(p("BT 12 818"                    " Td/%c 12 Tf 12 TL%%%c/"
               "static char*_=\""                       " \\\n",7[v],*v/2);c=
              getchar(),~c;c-10?                         p("/%c 12 Tf(\\%o)"
             "Tj",v[~-c%' '<25[                         v]&&!~-(~-c/'@')?0
            :7],c):(p("()'")))                         ;p("%%\";\nET ");*
           b-=~_;p(Y"/*");E{a                         =nyan(e+sprintf(e,
          16[w]),c,6)-e;o(c-                         59)p(D(/Length %d)
         "stream\n%s"Y,a,e)                         ;}o(2)p(" %u"S,*b);
        o(3)p(D(/Pages 4 0                         R)S);o(4)p(D(/Count
       1/MediaBox[0 0 595                         842]/Kids[5 0 R])S)
      ;o(5)p(C,4,0,6e-2,                         6e-2f,d,122,d);E p(
     "/%c",~-c/6+~14?c:                         d);q(]>>/CharProcs<<)
    ;E if(~-c/6+~14)p(                           "/%c %d 0 R",c,c+~58);
   for(q(>>/Widths[),                             c=59;--c;p(" 10"));a=p
  ("]>>>>>>/Contents 1                              0 R>>"S);for(p("xref\
 0 %d ",--d);c<d;p("%010u\
 %05d n  ",*(c+++b),NULL));
  return!(p(DANCE,d,a));}

No comment..


Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D

Hors ligne

#2 19-10-2017 13:42:56

blackmam3a
Membre

Re : Serez vous capable de comprendre ce code source

Je jetterais un oeil quand j'en aurais apris un peut plus, j'ai deja trouver me semble t'il par ou commencer. Defis a relever donc smile

Hors ligne

Pied de page des forums