executable ...

executable ... - C - Programmation

Marsh Posté le 24-02-2004 à 22:58:34    

bijour tout le monde,
 
je voudrais redre un executable .exe non decompilable ou non lisible lorsqu'on le desassemble ou on le decompile ?*
 
est-ce possible et comment ?
 
Merci

Reply

Marsh Posté le 24-02-2004 à 22:58:34   

Reply

Marsh Posté le 24-02-2004 à 23:52:26    

Qu'est ce que tu appel non lisible? C'est pas plutot non compréhensible? On peut normalement je pense toujours désassembler un executable. Cependant apres les différentes optimisations du compilateur, cela n'est pas forcément humainement compréhensible.
 
Si la vitesse d'execution ne t'importe pas trop, tu peux toujours modifier le code source de ton programme pour le compliquer ;)
 
C'est quoi que tu veux protéger?


Message édité par elrond le 24-02-2004 à 23:53:27
Reply

Marsh Posté le 25-02-2004 à 00:13:37    

Je pense qu'il voudrait qu'une décompilation directe de son oeuvre ne donne rien de valable, qu'on ne puisse pas espionner l'essence de son travail.
 
Doit y avoir des techniques pour compliquer la tâches des espions qui vont se pencher sur ses oeuvres. Ecrire en VB par exemple ?? ;-)
 
Up aux pros.

Reply

Marsh Posté le 25-02-2004 à 00:26:46    

simple. écrit comme ça :
 
http://ioccc.org/2001/kev.c
 
je t'assure que personne ne voudras pomper ton code, même s'il arrive à avoir la source.  
 
[edit]
bon dans le cas d'une décompilation ça ne s'applique pas, c'est vrai


Message édité par jagstang le 25-02-2004 à 00:27:32

---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 25-02-2004 à 17:50:03    

ou alors rajoute du code (qui ne sera jamais executer) pour agrandir la taille de l'exe
pour les chaines literales tu peut les coder

Reply

Marsh Posté le 25-02-2004 à 17:53:21    

JagStang a écrit :

simple. écrit comme ça :
 
http://ioccc.org/2001/kev.c
 
je t'assure que personne ne voudras pomper ton code, même s'il arrive à avoir la source.  
 
[edit]
bon dans le cas d'une décompilation ça ne s'applique pas, c'est vrai


chercher/remplacer [:sinclaire]
et tout devient lisible

Reply

Marsh Posté le 25-02-2004 à 19:19:36    

JagStang a écrit :

simple. écrit comme ça :
 
http://ioccc.org/2001/kev.c
 
je t'assure que personne ne voudras pomper ton code, même s'il arrive à avoir la source.  
 
[edit]
bon dans le cas d'une décompilation ça ne s'applique pas, c'est vrai


 
c'est ça ton code illisible ??  

Code :
  1. #include <unistd.h>
  2. #include <curses.h>
  3. #include <sys/socket.h>
  4. #include <netinet/in.h>
  5. #include <netdb.h>
  6. #include <sys/time.h>
  7. #define o0(M,W) mvprintw(W,M?M-1:M,"%s%s ",M?" ":"",_)
  8. #define O0(M,W) M##M=(M+=W##M)-W##M
  9. #define l1(M,W) M.tv_##W##sec
  10. #define L1(m,M,l,L,o,O) for(L=l;L--;)((char*)(m))[o]=((char*)(M))[O]
  11. #define I1 lL,(struct sockaddr*)&il
  12. #define i1 COLS
  13. #define j LINES
  14. #define L_ ((j%2)?j:j-1)
  15. fd_set I;
  16. struct socka ddr_in il;
  17. struct host ent *LI;
  18. struct timeval IL, l;
  19. char L[9], _[1 << 9];
  20. void
  21. ___ (int __)
  22. {
  23.   _[__--] = +0;
  24.   if (++__)
  25.     ___ (--__);
  26.   _[__] = '=';
  27. }
  28. double o, oo = +0, Oo = +0.2;
  29. long O, OO = 0, oO = 1, ii, iI, Ii, Ll, lL,
  30.   II = sizeof (il), Il, ll, LL = 0, i = 0, li, lI;
  31. int
  32. main (int iL, char *Li[])
  33. {
  34.   initscr ();
  35.   cbreak ();
  36.   noecho ();
  37.   nonl ();
  38.   ___ (lI = i1 / 4);
  39.   _[0] = '[';
  40.   _[lI - 1] = ']';
  41.   L1 (&il, &_, II, O, +O, +lI);
  42.   il.sin_port = htons ((unsigned long) (PORT & 0xffff));
  43.   lL = l_;
  44.   if (iL = !--iL)
  45.     {
  46.       il.sin_addr.s_addr = 0;
  47.       bind (I1, II);
  48.       listen (lL, 5);
  49.       lL = accept (I1, &II);
  50.     }
  51.   else
  52.     {
  53.       oO -= 2;
  54.       LI = gethostbyname (Li[1]);
  55.       L1 (&(il.sin_addr), (*LI).h_addr_list[0], LI->h_length, iI, iI, iI);
  56.       (*(&il)).sin_family = (&(*LI))->h_addrtype;
  57.       connect (I1, II);
  58.     }
  59.   ii = Ii = (o = i1 * 0.5) - lI / 2;
  60.   iI = L_ - 1;
  61.   O = li = L_ * 0.5;
  62.   while (_)
  63.     {
  64.       mvaddch (+OO, oo, ' ');
  65.       o0 (ii, iI);
  66.       o0 (Ii, Il -= Il);
  67.       mvprintw (li - 1, Il, "%d\n\n%d", i, LL);
  68.       mvhline (li, +0, '-', i1);
  69.       mvaddch (O, o, '*');
  70.       move (li, Il);
  71.       refresh ();
  72.       timeout (+SPEED);
  73.       gettimeofday (&IL, +0);
  74.       Ll = getch ();
  75.       timeout (0);
  76.       while (getch () != ERR);
  77.       if (Ll == 'q' && iL)
  78. write (lL, _ + 1, 1);
  79.       if (ii > (ll = 0) && Ll == ',')
  80. {
  81.   write (lL, _, -(--Il));
  82. }
  83.       else if (Ll == '.' && ii + lI < i1)
  84. {
  85.   write (lL, _ + lI, ++Il);
  86. }
  87.       else if (iL || !Il)
  88. write (lL, _ + lI - 1, 4 - 3);
  89.       gettimeofday (&l, 0);
  90.       II =
  91. ((II =
  92.   l1 (IL,) + (l1 (l, u) -= l1 (IL, u)) - l1 (l,) + (l1 (l,) -=
  93.           l1 (IL,))) <
  94.  0) ? 1 + II - l1 (l,) + 1e6 + (--l1 (l,)) : II;
  95.       usleep ((II += l1 (l,) * 1e6 - SPEED * 1e3) < 0 ? -II : +0);
  96.       if (Ll == 'q' && !iL)
  97. break;
  98.       FD_ZERO (&I);
  99.       FD_SET (lL, &I);
  100.       memset (&*&IL, ll, sizeof (l));
  101.       if ((Ll = select (lL + 1, &I, 0, 0, &IL)));
  102.       {
  103. if (read (lL, &L, ll + 1))
  104.   {
  105.     if (!*L)
  106.       {
  107.  ll++;
  108.       }
  109.     else if (*L == ll[_])
  110.       {
  111.  ll--;
  112.       }
  113.     else if (*(&(*L)) == 1[_])
  114.       {
  115.  break;
  116.       }
  117.   }
  118. else
  119.   {
  120.     break;
  121.   }
  122.       }
  123.       O0 (o, O);
  124.       O0 (O, o);
  125.       if (o < 0)
  126. {
  127.   o *= -1;
  128.   Oo *= -1;
  129. }
  130.       if (o > i1)
  131. {
  132.   o = i1 + i1 - o;
  133.   Oo *= -1;
  134. }
  135.       if (o >= (Ii += ll) && O < 1 && oO < 0 && o < Ii + lI)
  136. {
  137.   O = 2;
  138.   oO = ~--oO;
  139.   Oo += ll * 4e-1;
  140. }
  141.       if (O < 0)
  142. {
  143.   O = iI;
  144.   LL++;
  145. }
  146.       if (o >= (ii += Il) && O > iI - 1 && oO > 0 && o < ii + lI)
  147. {
  148.   O = iI - 2;
  149.   oO = ~--oO;
  150.   Oo += Il * 4e-1;
  151. }
  152.       if (+O > +iI)
  153. {
  154.   O -= O;
  155.   i++;
  156. }
  157.     }
  158.   endwin ();
  159.   return (0);
  160. }


 
un coup de indent , et en 2 secondes c'est très lisible  :sarcastic:

Reply

Marsh Posté le 25-02-2004 à 20:18:01    

cedricbrun a écrit :


 
c'est ça ton code illisible ??  

Code :
  1. #include <unistd.h>
  2. #include <curses.h>
  3. #include <sys/socket.h>
  4. #include <netinet/in.h>
  5. #include <netdb.h>
  6. #include <sys/time.h>
  7. #define o0(M,W) mvprintw(W,M?M-1:M,"%s%s ",M?" ":"",_)
  8. #define O0(M,W) M##M=(M+=W##M)-W##M
  9. #define l1(M,W) M.tv_##W##sec
  10. #define L1(m,M,l,L,o,O) for(L=l;L--;)((char*)(m))[o]=((char*)(M))[O]
  11. #define I1 lL,(struct sockaddr*)&il
  12. #define i1 COLS
  13. #define j LINES
  14. #define L_ ((j%2)?j:j-1)
  15. fd_set I;
  16. struct socka ddr_in il;
  17. struct host ent *LI;
  18. struct timeval IL, l;
  19. char L[9], _[1 << 9];
  20. void
  21. ___ (int __)
  22. {
  23.   _[__--] = +0;
  24.   if (++__)
  25.     ___ (--__);
  26.   _[__] = '=';
  27. }
  28. double o, oo = +0, Oo = +0.2;
  29. long O, OO = 0, oO = 1, ii, iI, Ii, Ll, lL,
  30.   II = sizeof (il), Il, ll, LL = 0, i = 0, li, lI;
  31. int
  32. main (int iL, char *Li[])
  33. {
  34.   initscr ();
  35.   cbreak ();
  36.   noecho ();
  37.   nonl ();
  38.   ___ (lI = i1 / 4);
  39.   _[0] = '[';
  40.   _[lI - 1] = ']';
  41.   L1 (&il, &_, II, O, +O, +lI);
  42.   il.sin_port = htons ((unsigned long) (PORT & 0xffff));
  43.   lL = l_;
  44.   if (iL = !--iL)
  45.     {
  46.       il.sin_addr.s_addr = 0;
  47.       bind (I1, II);
  48.       listen (lL, 5);
  49.       lL = accept (I1, &II);
  50.     }
  51.   else
  52.     {
  53.       oO -= 2;
  54.       LI = gethostbyname (Li[1]);
  55.       L1 (&(il.sin_addr), (*LI).h_addr_list[0], LI->h_length, iI, iI, iI);
  56.       (*(&il)).sin_family = (&(*LI))->h_addrtype;
  57.       connect (I1, II);
  58.     }
  59.   ii = Ii = (o = i1 * 0.5) - lI / 2;
  60.   iI = L_ - 1;
  61.   O = li = L_ * 0.5;
  62.   while (_)
  63.     {
  64.       mvaddch (+OO, oo, ' ');
  65.       o0 (ii, iI);
  66.       o0 (Ii, Il -= Il);
  67.       mvprintw (li - 1, Il, "%d\n\n%d", i, LL);
  68.       mvhline (li, +0, '-', i1);
  69.       mvaddch (O, o, '*');
  70.       move (li, Il);
  71.       refresh ();
  72.       timeout (+SPEED);
  73.       gettimeofday (&IL, +0);
  74.       Ll = getch ();
  75.       timeout (0);
  76.       while (getch () != ERR);
  77.       if (Ll == 'q' && iL)
  78. write (lL, _ + 1, 1);
  79.       if (ii > (ll = 0) && Ll == ',')
  80. {
  81.   write (lL, _, -(--Il));
  82. }
  83.       else if (Ll == '.' && ii + lI < i1)
  84. {
  85.   write (lL, _ + lI, ++Il);
  86. }
  87.       else if (iL || !Il)
  88. write (lL, _ + lI - 1, 4 - 3);
  89.       gettimeofday (&l, 0);
  90.       II =
  91. ((II =
  92.   l1 (IL,) + (l1 (l, u) -= l1 (IL, u)) - l1 (l,) + (l1 (l,) -=
  93.           l1 (IL,))) <
  94.  0) ? 1 + II - l1 (l,) + 1e6 + (--l1 (l,)) : II;
  95.       usleep ((II += l1 (l,) * 1e6 - SPEED * 1e3) < 0 ? -II : +0);
  96.       if (Ll == 'q' && !iL)
  97. break;
  98.       FD_ZERO (&I);
  99.       FD_SET (lL, &I);
  100.       memset (&*&IL, ll, sizeof (l));
  101.       if ((Ll = select (lL + 1, &I, 0, 0, &IL)));
  102.       {
  103. if (read (lL, &L, ll + 1))
  104.   {
  105.     if (!*L)
  106.       {
  107.  ll++;
  108.       }
  109.     else if (*L == ll[_])
  110.       {
  111.  ll--;
  112.       }
  113.     else if (*(&(*L)) == 1[_])
  114.       {
  115.  break;
  116.       }
  117.   }
  118. else
  119.   {
  120.     break;
  121.   }
  122.       }
  123.       O0 (o, O);
  124.       O0 (O, o);
  125.       if (o < 0)
  126. {
  127.   o *= -1;
  128.   Oo *= -1;
  129. }
  130.       if (o > i1)
  131. {
  132.   o = i1 + i1 - o;
  133.   Oo *= -1;
  134. }
  135.       if (o >= (Ii += ll) && O < 1 && oO < 0 && o < Ii + lI)
  136. {
  137.   O = 2;
  138.   oO = ~--oO;
  139.   Oo += ll * 4e-1;
  140. }
  141.       if (O < 0)
  142. {
  143.   O = iI;
  144.   LL++;
  145. }
  146.       if (o >= (ii += Il) && O > iI - 1 && oO > 0 && o < ii + lI)
  147. {
  148.   O = iI - 2;
  149.   oO = ~--oO;
  150.   Oo += Il * 4e-1;
  151. }
  152.       if (+O > +iI)
  153. {
  154.   O -= O;
  155.   i++;
  156. }
  157.     }
  158.   endwin ();
  159.   return (0);
  160. }


 
un coup de indent , et en 2 secondes c'est très lisible  :sarcastic:  


C'est de l'ascii art ?  
 
En se mettant assez loin ca ressemble à... une grosse merde :whistle:


Message édité par WhatDe le 25-02-2004 à 20:19:02
Reply

Marsh Posté le 25-02-2004 à 20:18:41    

et reste plus qu'a precompiler pour virer les macros

Reply

Marsh Posté le 26-02-2004 à 14:56:41    

cedricbrun a écrit :


 
c'est ça ton code illisible ??  

Code :
  1. #include <unistd.h>
  2. #include <curses.h>
  3. #include <sys/socket.h>
  4. #include <netinet/in.h>
  5. #include <netdb.h>
  6. #include <sys/time.h>
  7. #define o0(M,W) mvprintw(W,M?M-1:M,"%s%s ",M?" ":"",_)
  8. #define O0(M,W) M##M=(M+=W##M)-W##M
  9. #define l1(M,W) M.tv_##W##sec
  10. #define L1(m,M,l,L,o,O) for(L=l;L--;)((char*)(m))[o]=((char*)(M))[O]
  11. #define I1 lL,(struct sockaddr*)&il
  12. #define i1 COLS
  13. #define j LINES
  14. #define L_ ((j%2)?j:j-1)
  15. fd_set I;
  16. struct socka ddr_in il;
  17. struct host ent *LI;
  18. struct timeval IL, l;
  19. char L[9], _[1 << 9];
  20. void
  21. ___ (int __)
  22. {
  23.   _[__--] = +0;
  24.   if (++__)
  25.     ___ (--__);
  26.   _[__] = '=';
  27. }
  28. double o, oo = +0, Oo = +0.2;
  29. long O, OO = 0, oO = 1, ii, iI, Ii, Ll, lL,
  30.   II = sizeof (il), Il, ll, LL = 0, i = 0, li, lI;
  31. int
  32. main (int iL, char *Li[])
  33. {
  34.   initscr ();
  35.   cbreak ();
  36.   noecho ();
  37.   nonl ();
  38.   ___ (lI = i1 / 4);
  39.   _[0] = '[';
  40.   _[lI - 1] = ']';
  41.   L1 (&il, &_, II, O, +O, +lI);
  42.   il.sin_port = htons ((unsigned long) (PORT & 0xffff));
  43.   lL = l_;
  44.   if (iL = !--iL)
  45.     {
  46.       il.sin_addr.s_addr = 0;
  47.       bind (I1, II);
  48.       listen (lL, 5);
  49.       lL = accept (I1, &II);
  50.     }
  51.   else
  52.     {
  53.       oO -= 2;
  54.       LI = gethostbyname (Li[1]);
  55.       L1 (&(il.sin_addr), (*LI).h_addr_list[0], LI->h_length, iI, iI, iI);
  56.       (*(&il)).sin_family = (&(*LI))->h_addrtype;
  57.       connect (I1, II);
  58.     }
  59.   ii = Ii = (o = i1 * 0.5) - lI / 2;
  60.   iI = L_ - 1;
  61.   O = li = L_ * 0.5;
  62.   while (_)
  63.     {
  64.       mvaddch (+OO, oo, ' ');
  65.       o0 (ii, iI);
  66.       o0 (Ii, Il -= Il);
  67.       mvprintw (li - 1, Il, "%d\n\n%d", i, LL);
  68.       mvhline (li, +0, '-', i1);
  69.       mvaddch (O, o, '*');
  70.       move (li, Il);
  71.       refresh ();
  72.       timeout (+SPEED);
  73.       gettimeofday (&IL, +0);
  74.       Ll = getch ();
  75.       timeout (0);
  76.       while (getch () != ERR);
  77.       if (Ll == 'q' && iL)
  78. write (lL, _ + 1, 1);
  79.       if (ii > (ll = 0) && Ll == ',')
  80. {
  81.   write (lL, _, -(--Il));
  82. }
  83.       else if (Ll == '.' && ii + lI < i1)
  84. {
  85.   write (lL, _ + lI, ++Il);
  86. }
  87.       else if (iL || !Il)
  88. write (lL, _ + lI - 1, 4 - 3);
  89.       gettimeofday (&l, 0);
  90.       II =
  91. ((II =
  92.   l1 (IL,) + (l1 (l, u) -= l1 (IL, u)) - l1 (l,) + (l1 (l,) -=
  93.           l1 (IL,))) <
  94.  0) ? 1 + II - l1 (l,) + 1e6 + (--l1 (l,)) : II;
  95.       usleep ((II += l1 (l,) * 1e6 - SPEED * 1e3) < 0 ? -II : +0);
  96.       if (Ll == 'q' && !iL)
  97. break;
  98.       FD_ZERO (&I);
  99.       FD_SET (lL, &I);
  100.       memset (&*&IL, ll, sizeof (l));
  101.       if ((Ll = select (lL + 1, &I, 0, 0, &IL)));
  102.       {
  103. if (read (lL, &L, ll + 1))
  104.   {
  105.     if (!*L)
  106.       {
  107.  ll++;
  108.       }
  109.     else if (*L == ll[_])
  110.       {
  111.  ll--;
  112.       }
  113.     else if (*(&(*L)) == 1[_])
  114.       {
  115.  break;
  116.       }
  117.   }
  118. else
  119.   {
  120.     break;
  121.   }
  122.       }
  123.       O0 (o, O);
  124.       O0 (O, o);
  125.       if (o < 0)
  126. {
  127.   o *= -1;
  128.   Oo *= -1;
  129. }
  130.       if (o > i1)
  131. {
  132.   o = i1 + i1 - o;
  133.   Oo *= -1;
  134. }
  135.       if (o >= (Ii += ll) && O < 1 && oO < 0 && o < Ii + lI)
  136. {
  137.   O = 2;
  138.   oO = ~--oO;
  139.   Oo += ll * 4e-1;
  140. }
  141.       if (O < 0)
  142. {
  143.   O = iI;
  144.   LL++;
  145. }
  146.       if (o >= (ii += Il) && O > iI - 1 && oO > 0 && o < ii + lI)
  147. {
  148.   O = iI - 2;
  149.   oO = ~--oO;
  150.   Oo += Il * 4e-1;
  151. }
  152.       if (+O > +iI)
  153. {
  154.   O -= O;
  155.   i++;
  156. }
  157.     }
  158.   endwin ();
  159.   return (0);
  160. }


 
un coup de indent , et en 2 secondes c'est très lisible  :sarcastic:  


 
 
Je dis pas que c'est illisible. Seulement, essaie de retoucher un code comme ça. Tu codes que pour toi c'est ça ?  :o


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 26-02-2004 à 14:56:41   

Reply

Marsh Posté le 26-02-2004 à 21:02:10    

ça c'est du vrai code de champion
Enfin on s'est quand même écarté du sujet...
 

Code :
  1. #include <stdio.h>
  2. #define l11l 0xFFFF
  3. #define ll1 for
  4. #define ll111 if
  5. #define l1l1 unsigned
  6. #define l111 struct
  7. #define lll11 short
  8. #define ll11l long
  9. #define ll1ll putchar
  10. #define l1l1l(l) l=malloc(sizeof(l111 llll1));l->lll1l=1-1;l->ll1l1=1-1;
  11. #define l1ll1 *lllll++=l1ll%10000;l1ll/=10000;
  12. #define l1lll ll111(!l1->lll1l){l1l1l(l1->lll1l);l1->lll1l->ll1l1=l1;}\
  13. lllll=(l1=l1->lll1l)->lll;ll=1-1;
  14. #define llll 1000
  15.                                                      l111 llll1 {
  16.                                                      l111 llll1 *
  17.       lll1l,*ll1l1        ;l1l1                      lll11 lll [
  18.       llll];};main      (){l111 llll1                *ll11,*l1l,*
  19.       l1, *ll1l, *    malloc ( ) ; l1l1              ll11l l1ll ;
  20.       ll11l l11,ll  ,l;l1l1 lll11 *lll1,*            lllll; ll1(l
  21.       =1-1 ;l< 14; ll1ll("\t\"8)>l\"9!.)>vl"         [l]^'L'),++l
  22.       );scanf("%d",&l);l1l1l(l1l) l1l1l(ll11         ) (l1=l1l)->
  23.       lll[l1l->lll[1-1]     =1]=l11l;ll1(l11         =1+1;l11<=l;
  24.       ++l11){l1=ll11;         lll1 = (ll1l=(         ll11=l1l))->
  25.       lll; lllll =(            l1l=l1)->lll;         ll=(l1ll=1-1
  26.       );ll1(;ll1l->             lll1l||l11l!=        *lll1;){l1ll
  27.       +=l11**lll1++             ;l1ll1 ll111         (++ll>llll){
  28.       l1lll lll1=(              ll1l =ll1l->         lll1l)->lll;
  29.       }}ll1(;l1ll;              ){l1ll1 ll111        (++ll>=llll)
  30.       { l1lll} } *              lllll=l11l;}
  31.       ll1(l=(ll=1-              1);(l<llll)&&
  32.       (l1->lll[ l]              !=l11l);++l);        ll1 (;l1;l1=
  33.       l1->ll1l1,l=              llll){ll1(--l        ;l>=1-1;--l,
  34.       ++ll)printf(              (ll)?((ll%19)        ?"%04d":(ll=
  35.       19,"\n%04d" )              ):"%4d",l1->         lll[l] ) ; }
  36.                                                      ll1ll(10); }

Reply

Marsh Posté le 26-02-2004 à 22:38:03    

[:tozwarrior]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed